Merge vk-gl-cts/master into vk-gl-cts/vk_khr_ray_tracing
authorAlexander Galazin <alexander.galazin@arm.com>
Fri, 17 Jul 2020 17:39:03 +0000 (19:39 +0200)
committerAlexander Galazin <alexander.galazin@arm.com>
Fri, 17 Jul 2020 17:39:03 +0000 (19:39 +0200)
Change-Id: Ibd8787ecac0466bc8446e193bdda66a73ca0896d

20 files changed:
1  2 
android/cts/master/vk-master-2020-03-01.txt
android/cts/master/vk-master.txt
external/fetch_sources.py
external/vulkancts/framework/vulkan/vkBasicTypes.inl
external/vulkancts/framework/vulkan/vkDeviceFeatures.inl
external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDecl.inl
external/vulkancts/framework/vulkan/vkDeviceFeaturesForContextDefs.inl
external/vulkancts/framework/vulkan/vkDeviceFeaturesForDefaultDeviceDefs.inl
external/vulkancts/framework/vulkan/vkDeviceProperties.inl
external/vulkancts/framework/vulkan/vkDevicePropertiesForContextDecl.inl
external/vulkancts/framework/vulkan/vkDevicePropertiesForContextDefs.inl
external/vulkancts/framework/vulkan/vkDevicePropertiesForDefaultDeviceDefs.inl
external/vulkancts/framework/vulkan/vkExtensionFunctions.inl
external/vulkancts/framework/vulkan/vkGetStructureTypeImpl.inl
external/vulkancts/framework/vulkan/vkStrUtil.inl
external/vulkancts/framework/vulkan/vkStrUtilImpl.inl
external/vulkancts/framework/vulkan/vkStructTypes.inl
external/vulkancts/framework/vulkan/vkVulkan_c.inl
external/vulkancts/mustpass/master/vk-default.txt
external/vulkancts/scripts/src/vulkan_core.h

Simple merge
Simple merge
index e8abeb8926330bbf6fb65d8c2402430ba7182a6e,3a1c7bec52300c67a67d58aef94c3c04071bfdc5..19ea859edb19ea92d219e3278892a02beb0ec321
@@@ -3439,11 -3405,12 +3442,12 @@@ VK_DEFINE_PLATFORM_TYPE(CAMetalLayer
  #define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
  #define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 1
  #define VK_QCOM_render_pass_store_ops_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
 +#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 10
 +#define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1
 +#define VK_KHR_RAY_QUERY_SPEC_VERSION 1
+ #define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
  #define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
  #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 3
 -#define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 2
 -#define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
 -#define VK_KHR_RAY_TRACING_SPEC_VERSION 8
  #define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1
  #define VK_GGP_STREAM_DESCRIPTOR_SURFACE_SPEC_VERSION 1
  #define VK_GGP_FRAME_TOKEN_SPEC_VERSION 1
index 9722a12330a77c4d58b89bab7473b3eb23a5bd72,3b5fb100c3618fe668ed46814889e5f84f81f81f..68c645f4b7c351106af13b73733f39e6f126b1e3
@@@ -223,67 -223,66 +225,70 @@@ template<> void initFromBlob<VkPhysical
  template<> void initFromBlob<VkPhysicalDevicePrivateDataFeaturesEXT>(VkPhysicalDevicePrivateDataFeaturesEXT&, const AllBlobs&) {}
  template<> void initFromBlob<VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT>(VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT&, const AllBlobs&) {}
  template<> void initFromBlob<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>(VkPhysicalDeviceDiagnosticsConfigFeaturesNV&, const AllBlobs&) {}
 -template<> void initFromBlob<VkPhysicalDeviceRayTracingFeaturesKHR>(VkPhysicalDeviceRayTracingFeaturesKHR&, const AllBlobs&) {}
 +template<> void initFromBlob<VkPhysicalDeviceAccelerationStructureFeaturesKHR>(VkPhysicalDeviceAccelerationStructureFeaturesKHR&, const AllBlobs&) {}
 +template<> void initFromBlob<VkPhysicalDeviceRayTracingPipelineFeaturesKHR>(VkPhysicalDeviceRayTracingPipelineFeaturesKHR&, const AllBlobs&) {}
 +template<> void initFromBlob<VkPhysicalDeviceRayQueryFeaturesKHR>(VkPhysicalDeviceRayQueryFeaturesKHR&, const AllBlobs&) {}
+ template<> void initFromBlob<VkPhysicalDeviceFragmentDensityMapFeatures2EXT>(VkPhysicalDeviceFragmentDensityMapFeatures2EXT&, const AllBlobs&) {}
  
  
--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, 63}; }
--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, 62}; }
- 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, 61}; }
- 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, 60}; }
- 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, 59}; }
- 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, 58}; }
- 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, 57}; }
- template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoherentMemoryFeaturesAMD>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, DECL_AMD_COHERENT_MEMORY_EXTENSION_NAME, 0, 56}; }
- 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, 55}; }
- 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, 54}; }
- 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, 53}; }
- 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, 52}; }
- 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, 51}; }
- 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, 50}; }
- 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, 49}; }
- 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, 48}; }
- 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, 47}; }
- 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, 46}; }
- template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, DECL_NV_DIAGNOSTICS_CONFIG_EXTENSION_NAME, 0, 45}; }
- 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, 44}; }
- 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, 43}; }
- 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, 42}; }
 -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, 61}; }
 -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, 60}; }
 -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, 59}; }
 -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, 58}; }
 -template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoherentMemoryFeaturesAMD>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, DECL_AMD_COHERENT_MEMORY_EXTENSION_NAME, 0, 57}; }
 -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, 56}; }
 -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, 55}; }
 -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, 54}; }
 -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, 53}; }
 -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, 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<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, 50}; }
 -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, 49}; }
 -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, 48}; }
 -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, 47}; }
 -template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, DECL_NV_DIAGNOSTICS_CONFIG_EXTENSION_NAME, 0, 46}; }
 -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, 45}; }
 -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, 44}; }
 -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, 43}; }
 -template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentDensityMapFeatures2EXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_2_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION, 42}; }
--template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION, 41}; }
--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, 40}; }
--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, 39}; }
--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, 38}; }
--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, 37}; }
--template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceInlineUniformBlockFeaturesEXT>(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, 36}; }
--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, 35}; }
--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, 34}; }
--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, 33}; }
--template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMultiviewFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 32}; }
--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, 31}; }
--template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT>(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, 30}; }
--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, 29}; }
--template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePrivateDataFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT, VK_EXT_PRIVATE_DATA_EXTENSION_NAME, VK_EXT_PRIVATE_DATA_SPEC_VERSION, 28}; }
--template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceProtectedMemoryFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 27}; }
- 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, 26}; }
- 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, 25}; }
- 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, 24}; }
- 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, 23}; }
- 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, 22}; }
- 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, 21}; }
- 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, 20}; }
- 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, 19}; }
- 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, 18}; }
- template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>(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, 17}; }
- 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, 16}; }
- 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, 15}; }
- 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, 14}; }
- 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, 13}; }
- 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, 12}; }
- 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, 11}; }
- 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, 10}; }
- template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT>(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, 9}; }
- 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, 8}; }
 -template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceRayTracingFeaturesKHR>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR, VK_KHR_RAY_TRACING_EXTENSION_NAME, VK_KHR_RAY_TRACING_SPEC_VERSION, 26}; }
++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, 65}; }
++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, 64}; }
++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, 63}; }
++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, 62}; }
++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, 61}; }
++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, 60}; }
++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, 59}; }
++template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoherentMemoryFeaturesAMD>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, DECL_AMD_COHERENT_MEMORY_EXTENSION_NAME, 0, 58}; }
++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, 57}; }
++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, 56}; }
++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, 55}; }
++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, 54}; }
++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, 53}; }
++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, 52}; }
++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, 51}; }
++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, 50}; }
++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, 49}; }
++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, 48}; }
++template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDiagnosticsConfigFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, DECL_NV_DIAGNOSTICS_CONFIG_EXTENSION_NAME, 0, 47}; }
++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, 46}; }
++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, 45}; }
++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, 44}; }
++template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentDensityMapFeatures2EXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_2_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION, 43}; }
++template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION, 42}; }
++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, 41}; }
++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, 40}; }
++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, 39}; }
++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, 38}; }
++template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceInlineUniformBlockFeaturesEXT>(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, 37}; }
++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, 36}; }
++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, 35}; }
++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, 34}; }
++template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMultiviewFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 33}; }
++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, 32}; }
++template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT>(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, 31}; }
++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, 30}; }
++template<> FeatureDesc makeFeatureDesc<VkPhysicalDevicePrivateDataFeaturesEXT>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT, VK_EXT_PRIVATE_DATA_EXTENSION_NAME, VK_EXT_PRIVATE_DATA_SPEC_VERSION, 29}; }
++template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceProtectedMemoryFeatures>(void) { return FeatureDesc{VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 28}; }
++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, 27}; }
++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, 26}; }
+ 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, 25}; }
+ 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, 24}; }
+ 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, 23}; }
+ 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, 22}; }
+ 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, 21}; }
+ 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, 20}; }
+ 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, 19}; }
+ template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>(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, 18}; }
+ 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, 17}; }
+ 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, 16}; }
+ 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, 15}; }
+ 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, 14}; }
+ 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, 13}; }
+ 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, 12}; }
+ 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, 11}; }
+ template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT>(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, 10}; }
+ 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, 9}; }
+ template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT>(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, 8}; }
  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, 7}; }
  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, 6}; }
  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, 5}; }
index d9f149f0fbfc7a5c8bb13bbfdd570df4956b088f,c70ae5654464b6eda5e51f62c02f697f8fd8fb3c..348193318cd651972df23607ff2a1bafbdb5b759
@@@ -45,36 -46,37 +47,38 @@@ namespace v
  #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
  
  
- 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, 38); }
- 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, 37); }
- 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, 36); }
- 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, 35); }
- 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, 34); }
- 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, 33); }
- 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, 32); }
- 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, 31); }
- 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, 30); }
- template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDriverProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES, DECL_DRIVER_EXTENSION_NAME, 0, 29); }
- 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, 28); }
- 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, 27); }
- 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, 26); }
- template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceInlineUniformBlockPropertiesEXT>(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, 25); }
- 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, 24); }
- template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMaintenance3Properties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, VK_KHR_MAINTENANCE3_EXTENSION_NAME, VK_KHR_MAINTENANCE3_SPEC_VERSION, 23); }
- template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMemoryProperties2>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2, DECL_2_MEMORY_EXTENSION_NAME, 0, 22); }
- 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, 21); }
- template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMultiviewProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 20); }
- 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, 19); }
- 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, 18); }
- template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePointClippingProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES, DECL_POINT_CLIPPING_EXTENSION_NAME, 0, 17); }
- template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceProtectedMemoryProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 16); }
- 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, 15); }
- 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, 14); }
- 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, 13); }
- 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, 12); }
- 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, 11); }
- 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, 10); }
- template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceShaderCorePropertiesAMD>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD, DECL_AMD_SHADER_CORE_EXTENSION_NAME, 0, 9); }
++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, 40); }
+ 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, 39); }
+ 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, 38); }
+ 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, 37); }
+ 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, 36); }
+ 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, 35); }
+ 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, 34); }
+ 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, 33); }
+ 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, 32); }
+ template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceDriverProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES, DECL_DRIVER_EXTENSION_NAME, 0, 31); }
+ 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, 30); }
+ 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, 29); }
+ 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, 28); }
+ template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceFragmentDensityMapProperties2EXT>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_2_EXT, VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION, 27); }
+ template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceInlineUniformBlockPropertiesEXT>(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, 26); }
+ 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, 25); }
+ template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMaintenance3Properties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, VK_KHR_MAINTENANCE3_EXTENSION_NAME, VK_KHR_MAINTENANCE3_SPEC_VERSION, 24); }
+ template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMemoryProperties2>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2, DECL_2_MEMORY_EXTENSION_NAME, 0, 23); }
+ 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, 22); }
+ template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceMultiviewProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 21); }
+ 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, 20); }
+ 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, 19); }
+ template<> PropertyDesc makePropertyDesc<VkPhysicalDevicePointClippingProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES, DECL_POINT_CLIPPING_EXTENSION_NAME, 0, 18); }
+ template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceProtectedMemoryProperties>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 17); }
+ 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, 16); }
 -template<> PropertyDesc makePropertyDesc<VkPhysicalDeviceRayTracingPropertiesKHR>(void) { return PropertyDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR, VK_KHR_RAY_TRACING_EXTENSION_NAME, VK_KHR_RAY_TRACING_SPEC_VERSION, 15); }
 -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, 14); }
++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, 15); }
++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, 14); }
+ 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, 13); }
+ 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, 12); }
+ 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, 11); }
+ 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, 10); }
+ 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, 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<VkPhysicalDeviceSubgroupSizeControlPropertiesEXT>(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, 6); }
index b9536cde455b268f40137c0c4650ee388373399c,42589ea5d0366792d5228e78f7f60e1d54d5ffe2..596876e1635074d645c340773470948723529a5f
@@@ -796,12 -789,15 +796,16 @@@ void getInstanceExtensionFunctions (deU
        {
                return;
        }
 -      if (extName == "VK_KHR_deferred_host_operations")
++      if (extName == "VK_EXT_fragment_density_map2")
+       {
+               return;
+       }
 -      if (extName == "VK_KHR_pipeline_library")
 +      if (extName == "VK_KHR_android_surface")
        {
 +              functions.push_back("vkCreateAndroidSurfaceKHR");
                return;
        }
 -      if (extName == "VK_KHR_ray_tracing")
 +      if (extName == "VK_ANDROID_external_memory_android_hardware_buffer")
        {
                return;
        }
@@@ -1796,39 -1780,30 +1800,43 @@@ void getDeviceExtensionFunctions (deUin
        {
                return;
        }
 -      if (extName == "VK_EXT_fragment_density_map2")
 +      if (extName == "VK_KHR_acceleration_structure")
        {
 +              functions.push_back("vkCreateAccelerationStructureKHR");
 +              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("vkGetDeviceAccelerationStructureCompatibilityKHR");
 +              functions.push_back("vkGetAccelerationStructureBuildSizesKHR");
                return;
        }
 -      if (extName == "VK_KHR_android_surface")
 +      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_ANDROID_external_memory_android_hardware_buffer")
 +      if (extName == "VK_KHR_ray_query")
        {
 -              functions.push_back("vkGetAndroidHardwareBufferPropertiesANDROID");
 -              functions.push_back("vkGetMemoryAndroidHardwareBufferANDROID");
                return;
        }
 -      if (extName == "VK_KHR_deferred_host_operations")
++      if (extName == "VK_EXT_fragment_density_map2")
+       {
 -              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_library")
 +      if (extName == "VK_KHR_android_surface")
        {
                return;
        }
index 0fa943e615dfb42c317b2432bde49cfda29b9bc2,906a29660284b401b707ca287858238cae75e9fe..d78969e88336c6083ef6fb883f026931ed16c4b8
@@@ -1896,139 -1891,149 +1896,149 @@@ template<> VkStructureType getStructure
        return VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV;
  }
  
 -template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMapFeatures2EXT> (void)
 +template<> VkStructureType getStructureType<VkAccelerationStructureGeometryTrianglesDataKHR> (void)
  {
 -      return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_2_EXT;
 +      return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR;
  }
  
 -template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMapProperties2EXT> (void)
 +template<> VkStructureType getStructureType<VkAccelerationStructureGeometryAabbsDataKHR> (void)
  {
 -      return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_2_EXT;
 +      return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR;
  }
  
 -template<> VkStructureType getStructureType<VkAndroidSurfaceCreateInfoKHR> (void)
 +template<> VkStructureType getStructureType<VkAccelerationStructureGeometryInstancesDataKHR> (void)
  {
 -      return VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR;
 +      return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR;
  }
  
 -template<> VkStructureType getStructureType<VkAndroidHardwareBufferUsageANDROID> (void)
 +template<> VkStructureType getStructureType<VkAccelerationStructureGeometryKHR> (void)
  {
 -      return VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID;
 +      return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR;
  }
  
 -template<> VkStructureType getStructureType<VkAndroidHardwareBufferPropertiesANDROID> (void)
 +template<> VkStructureType getStructureType<VkAccelerationStructureBuildGeometryInfoKHR> (void)
  {
 -      return VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID;
 +      return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR;
  }
  
 -template<> VkStructureType getStructureType<VkAndroidHardwareBufferFormatPropertiesANDROID> (void)
 +template<> VkStructureType getStructureType<VkAccelerationStructureCreateInfoKHR> (void)
  {
 -      return VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID;
 +      return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR;
  }
  
 -template<> VkStructureType getStructureType<VkImportAndroidHardwareBufferInfoANDROID> (void)
 +template<> VkStructureType getStructureType<VkPhysicalDeviceAccelerationStructureFeaturesKHR> (void)
  {
 -      return VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
 +      return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR;
  }
  
 -template<> VkStructureType getStructureType<VkMemoryGetAndroidHardwareBufferInfoANDROID> (void)
 +template<> VkStructureType getStructureType<VkPhysicalDeviceAccelerationStructurePropertiesKHR> (void)
  {
 -      return VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
 +      return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR;
  }
  
 -template<> VkStructureType getStructureType<VkExternalFormatANDROID> (void)
 +template<> VkStructureType getStructureType<VkAccelerationStructureDeviceAddressInfoKHR> (void)
  {
 -      return VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID;
 +      return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR;
  }
  
 -template<> VkStructureType getStructureType<VkDeferredOperationInfoKHR> (void)
 +template<> VkStructureType getStructureType<VkAccelerationStructureVersionInfoKHR> (void)
  {
 -      return VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR;
 +      return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR;
  }
  
 -template<> VkStructureType getStructureType<VkPipelineLibraryCreateInfoKHR> (void)
 +template<> VkStructureType getStructureType<VkCopyAccelerationStructureToMemoryInfoKHR> (void)
  {
 -      return VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR;
 +      return VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR;
  }
  
 -template<> VkStructureType getStructureType<VkRayTracingShaderGroupCreateInfoKHR> (void)
 +template<> VkStructureType getStructureType<VkCopyMemoryToAccelerationStructureInfoKHR> (void)
  {
 -      return VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR;
 +      return VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR;
  }
  
 -template<> VkStructureType getStructureType<VkRayTracingPipelineInterfaceCreateInfoKHR> (void)
 +template<> VkStructureType getStructureType<VkCopyAccelerationStructureInfoKHR> (void)
  {
 -      return VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR;
 +      return VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR;
  }
  
 -template<> VkStructureType getStructureType<VkRayTracingPipelineCreateInfoKHR> (void)
 +template<> VkStructureType getStructureType<VkAccelerationStructureBuildSizesInfoKHR> (void)
  {
 -      return VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR;
 +      return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR;
  }
  
 -template<> VkStructureType getStructureType<VkAccelerationStructureGeometryTrianglesDataKHR> (void)
 +template<> VkStructureType getStructureType<VkRayTracingShaderGroupCreateInfoKHR> (void)
  {
 -      return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR;
 +      return VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR;
  }
  
 -template<> VkStructureType getStructureType<VkAccelerationStructureGeometryAabbsDataKHR> (void)
 +template<> VkStructureType getStructureType<VkRayTracingPipelineInterfaceCreateInfoKHR> (void)
  {
 -      return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR;
 +      return VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR;
  }
  
 -template<> VkStructureType getStructureType<VkAccelerationStructureGeometryInstancesDataKHR> (void)
 +template<> VkStructureType getStructureType<VkRayTracingPipelineCreateInfoKHR> (void)
  {
 -      return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR;
 +      return VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR;
  }
  
 -template<> VkStructureType getStructureType<VkAccelerationStructureGeometryKHR> (void)
 +template<> VkStructureType getStructureType<VkPhysicalDeviceRayTracingPipelineFeaturesKHR> (void)
  {
 -      return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR;
 +      return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR;
  }
  
 -template<> VkStructureType getStructureType<VkAccelerationStructureBuildGeometryInfoKHR> (void)
 +template<> VkStructureType getStructureType<VkPhysicalDeviceRayTracingPipelinePropertiesKHR> (void)
  {
 -      return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR;
 +      return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR;
  }
  
 -template<> VkStructureType getStructureType<VkAccelerationStructureCreateGeometryTypeInfoKHR> (void)
 +template<> VkStructureType getStructureType<VkPhysicalDeviceRayQueryFeaturesKHR> (void)
  {
 -      return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_GEOMETRY_TYPE_INFO_KHR;
 +      return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR;
  }
  
 -template<> VkStructureType getStructureType<VkAccelerationStructureCreateInfoKHR> (void)
++template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMapFeatures2EXT> (void)
+ {
 -      return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR;
++      return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_2_EXT;
+ }
 -template<> VkStructureType getStructureType<VkAccelerationStructureMemoryRequirementsInfoKHR> (void)
++template<> VkStructureType getStructureType<VkPhysicalDeviceFragmentDensityMapProperties2EXT> (void)
+ {
 -      return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_KHR;
++      return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_2_EXT;
+ }
 -template<> VkStructureType getStructureType<VkPhysicalDeviceRayTracingFeaturesKHR> (void)
 +template<> VkStructureType getStructureType<VkAndroidSurfaceCreateInfoKHR> (void)
  {
 -      return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR;
 +      return VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR;
  }
  
 -template<> VkStructureType getStructureType<VkPhysicalDeviceRayTracingPropertiesKHR> (void)
 +template<> VkStructureType getStructureType<VkAndroidHardwareBufferUsageANDROID> (void)
  {
 -      return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR;
 +      return VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID;
  }
  
 -template<> VkStructureType getStructureType<VkAccelerationStructureDeviceAddressInfoKHR> (void)
 +template<> VkStructureType getStructureType<VkAndroidHardwareBufferPropertiesANDROID> (void)
  {
 -      return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR;
 +      return VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID;
  }
  
 -template<> VkStructureType getStructureType<VkAccelerationStructureVersionKHR> (void)
 +template<> VkStructureType getStructureType<VkAndroidHardwareBufferFormatPropertiesANDROID> (void)
  {
 -      return VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_KHR;
 +      return VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID;
  }
  
 -template<> VkStructureType getStructureType<VkCopyAccelerationStructureToMemoryInfoKHR> (void)
 +template<> VkStructureType getStructureType<VkImportAndroidHardwareBufferInfoANDROID> (void)
  {
 -      return VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR;
 +      return VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
  }
  
 -template<> VkStructureType getStructureType<VkCopyMemoryToAccelerationStructureInfoKHR> (void)
 +template<> VkStructureType getStructureType<VkMemoryGetAndroidHardwareBufferInfoANDROID> (void)
  {
 -      return VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR;
 +      return VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID;
  }
  
 -template<> VkStructureType getStructureType<VkCopyAccelerationStructureInfoKHR> (void)
 +template<> VkStructureType getStructureType<VkExternalFormatANDROID> (void)
  {
 -      return VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR;
 +      return VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID;
  }
  
  template<> VkStructureType getStructureType<VkImagePipeSurfaceCreateInfoFUCHSIA> (void)
index 733c588ebf452dfe6b31aa212ba15dc976444d89,39eb554f76568ec36f61206249a44eda4509cd62..876cc25e21b2ee1e7091c9afd2c1d69fe704d7e9
@@@ -913,22 -920,6 +913,24 @@@ std::ostream&    operator<<      (std::ostream
  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 VkPhysicalDeviceFragmentDensityMapFeatures2EXT& value);
++std::ostream& operator<<      (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapProperties2EXT& 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 VkImagePipeSurfaceCreateInfoFUCHSIA& value);
  std::ostream& operator<<      (std::ostream& s, const VkStreamDescriptorSurfaceCreateInfoGGP& value);
  std::ostream& operator<<      (std::ostream& s, const VkPresentFrameTokenGGP& value);
index f0e6cedc89b171ea23e696f0923397f31549a327,5176817c5fbb617c62b6050da08050587e6524a8..ae2c417b4219a320015525e02dfb68d93a4b7ea9
@@@ -9982,13 -9869,44 +9985,36 @@@ std::ostream& operator<< (std::ostream
        return s;
  }
  
 -std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateGeometryTypeInfoKHR& value)
++std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapFeatures2EXT& value)
+ {
 -      s << "VkAccelerationStructureCreateGeometryTypeInfoKHR = {\n";
++      s << "VkPhysicalDeviceFragmentDensityMapFeatures2EXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
 -      s << "\tgeometryType = " << value.geometryType << '\n';
 -      s << "\tmaxPrimitiveCount = " << value.maxPrimitiveCount << '\n';
 -      s << "\tindexType = " << value.indexType << '\n';
 -      s << "\tmaxVertexCount = " << value.maxVertexCount << '\n';
 -      s << "\tvertexFormat = " << value.vertexFormat << '\n';
 -      s << "\tallowsTransforms = " << value.allowsTransforms << '\n';
++      s << "\tfragmentDensityMapDeferred = " << value.fragmentDensityMapDeferred << '\n';
+       s << '}';
+       return s;
+ }
 -std::ostream& operator<< (std::ostream& s, const VkAccelerationStructureCreateInfoKHR& value)
++std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceFragmentDensityMapProperties2EXT& value)
+ {
 -      s << "VkAccelerationStructureCreateInfoKHR = {\n";
++      s << "VkPhysicalDeviceFragmentDensityMapProperties2EXT = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
 -      s << "\tcompactedSize = " << value.compactedSize << '\n';
 -      s << "\ttype = " << value.type << '\n';
 -      s << "\tflags = " << getBuildAccelerationStructureFlagsKHRStr(value.flags) << '\n';
 -      s << "\tmaxGeometryCount = " << value.maxGeometryCount << '\n';
 -      s << "\tpGeometryInfos = " << value.pGeometryInfos << '\n';
 -      s << "\tdeviceAddress = " << value.deviceAddress << '\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 VkAccelerationStructureMemoryRequirementsInfoKHR& value)
 +std::ostream& operator<< (std::ostream& s, const VkAndroidSurfaceCreateInfoKHR& value)
  {
 -      s << "VkAccelerationStructureMemoryRequirementsInfoKHR = {\n";
 +      s << "VkAndroidSurfaceCreateInfoKHR = {\n";
        s << "\tsType = " << value.sType << '\n';
        s << "\tpNext = " << value.pNext << '\n';
 -      s << "\ttype = " << value.type << '\n';
 -      s << "\tbuildType = " << value.buildType << '\n';
 -      s << "\taccelerationStructure = " << value.accelerationStructure << '\n';
 +      s << "\tflags = " << getAndroidSurfaceCreateFlagsKHRStr(value.flags) << '\n';
 +      s << "\twindow = " << value.window << '\n';
        s << '}';
        return s;
  }
index 54ded3bdbaf631081ae6ddc122eec07cccafa727,a887840f9ae9a764cad05d9690e577ea8810ccf9..08af84513650f9536a0661e186ea0ff0754ec2a9
@@@ -4718,157 -4878,6 +4718,174 @@@ struct VkCopyAccelerationStructureInfoK
        VkCopyAccelerationStructureModeKHR      mode;
  };
  
 +struct VkAccelerationStructureBuildSizesInfoKHR
 +{
 +      VkStructureType sType;
 +      const void*             pNext;
 +      VkDeviceSize    accelerationStructureSize;
 +      VkDeviceSize    updateScratchSize;
 +      VkDeviceSize    buildScratchSize;
 +};
 +
 +struct VkRayTracingShaderGroupCreateInfoKHR
 +{
 +      VkStructureType                                 sType;
 +      const void*                                             pNext;
 +      VkRayTracingShaderGroupTypeKHR  type;
 +      deUint32                                                generalShader;
 +      deUint32                                                closestHitShader;
 +      deUint32                                                anyHitShader;
 +      deUint32                                                intersectionShader;
 +      const void*                                             pShaderGroupCaptureReplayHandle;
 +};
 +
 +struct VkRayTracingPipelineInterfaceCreateInfoKHR
 +{
 +      VkStructureType sType;
 +      const void*             pNext;
 +      deUint32                maxPipelineRayPayloadSize;
 +      deUint32                maxPipelineRayHitAttributeSize;
 +};
 +
 +struct VkRayTracingPipelineCreateInfoKHR
 +{
 +      VkStructureType                                                                         sType;
 +      const void*                                                                                     pNext;
 +      VkPipelineCreateFlags                                                           flags;
 +      deUint32                                                                                        stageCount;
 +      const VkPipelineShaderStageCreateInfo*                          pStages;
 +      deUint32                                                                                        groupCount;
 +      const VkRayTracingShaderGroupCreateInfoKHR*                     pGroups;
 +      deUint32                                                                                        maxPipelineRayRecursionDepth;
 +      const VkPipelineLibraryCreateInfoKHR*                           pLibraryInfo;
 +      const VkRayTracingPipelineInterfaceCreateInfoKHR*       pLibraryInterface;
 +      const VkPipelineDynamicStateCreateInfo*                         pDynamicState;
 +      VkPipelineLayout                                                                        layout;
 +      VkPipeline                                                                                      basePipelineHandle;
 +      deInt32                                                                                         basePipelineIndex;
 +};
 +
 +struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR
 +{
 +      VkStructureType sType;
 +      void*                   pNext;
 +      VkBool32                rayTracingPipeline;
 +      VkBool32                rayTracingPipelineShaderGroupHandleCaptureReplay;
 +      VkBool32                rayTracingPipelineShaderGroupHandleCaptureReplayMixed;
 +      VkBool32                rayTracingPipelineTraceRaysIndirect;
 +      VkBool32                rayTraversalPrimitiveCulling;
 +};
 +
 +struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR
 +{
 +      VkStructureType sType;
 +      void*                   pNext;
 +      deUint32                shaderGroupHandleSize;
 +      deUint32                maxRayRecursionDepth;
 +      deUint32                maxShaderGroupStride;
 +      deUint32                shaderGroupBaseAlignment;
 +      deUint32                shaderGroupHandleCaptureReplaySize;
 +      deUint32                maxRayDispatchInvocationCount;
 +      deUint32                shaderGroupHandleAlignment;
 +      deUint32                maxRayHitAttributeSize;
 +};
 +
 +struct VkStridedDeviceAddressRegionKHR
 +{
 +      VkDeviceAddress deviceAddress;
 +      VkDeviceSize    stride;
 +      VkDeviceSize    size;
 +};
 +
 +struct VkTraceRaysIndirectCommandKHR
 +{
 +      deUint32        width;
 +      deUint32        height;
 +      deUint32        depth;
 +};
 +
 +struct VkPhysicalDeviceRayQueryFeaturesKHR
 +{
 +      VkStructureType sType;
 +      void*                   pNext;
 +      VkBool32                rayQuery;
 +};
 +
++struct VkPhysicalDeviceFragmentDensityMapFeatures2EXT
++{
++      VkStructureType sType;
++      void*                   pNext;
++      VkBool32                fragmentDensityMapDeferred;
++};
++
++struct VkPhysicalDeviceFragmentDensityMapProperties2EXT
++{
++      VkStructureType sType;
++      void*                   pNext;
++      VkBool32                subsampledLoads;
++      VkBool32                subsampledCoarseReconstructionEarlyAccess;
++      deUint32                maxSubsampledArrayLayers;
++      deUint32                maxDescriptorSetSubsampledSamplers;
++};
++
 +struct VkAndroidSurfaceCreateInfoKHR
 +{
 +      VkStructureType                                         sType;
 +      const void*                                                     pNext;
 +      VkAndroidSurfaceCreateFlagsKHR          flags;
 +      struct pt::AndroidNativeWindowPtr       window;
 +};
 +
 +struct VkAndroidHardwareBufferUsageANDROID
 +{
 +      VkStructureType sType;
 +      void*                   pNext;
 +      deUint64                androidHardwareBufferUsage;
 +};
 +
 +struct VkAndroidHardwareBufferPropertiesANDROID
 +{
 +      VkStructureType sType;
 +      void*                   pNext;
 +      VkDeviceSize    allocationSize;
 +      deUint32                memoryTypeBits;
 +};
 +
 +struct VkAndroidHardwareBufferFormatPropertiesANDROID
 +{
 +      VkStructureType                                 sType;
 +      void*                                                   pNext;
 +      VkFormat                                                format;
 +      deUint64                                                externalFormat;
 +      VkFormatFeatureFlags                    formatFeatures;
 +      VkComponentMapping                              samplerYcbcrConversionComponents;
 +      VkSamplerYcbcrModelConversion   suggestedYcbcrModel;
 +      VkSamplerYcbcrRange                             suggestedYcbcrRange;
 +      VkChromaLocation                                suggestedXChromaOffset;
 +      VkChromaLocation                                suggestedYChromaOffset;
 +};
 +
 +struct VkImportAndroidHardwareBufferInfoANDROID
 +{
 +      VkStructureType                                         sType;
 +      const void*                                                     pNext;
 +      struct pt::AndroidHardwareBufferPtr     buffer;
 +};
 +
 +struct VkMemoryGetAndroidHardwareBufferInfoANDROID
 +{
 +      VkStructureType sType;
 +      const void*             pNext;
 +      VkDeviceMemory  memory;
 +};
 +
 +struct VkExternalFormatANDROID
 +{
 +      VkStructureType sType;
 +      void*                   pNext;
 +      deUint64                externalFormat;
 +};
 +
  struct VkImagePipeSurfaceCreateInfoFUCHSIA
  {
        VkStructureType                                                 sType;
index 937265b1488b61d679bf18bec55251ab36a93084,15793f8a18a1135442887bc7f08e4436206dbf2b..ec9ef4f36190912f7916a58270f8fb45c335aedc
@@@ -10957,426 -10920,25 +10960,445 @@@ typedef struct VkDeviceDiagnosticsConfi
  
  
  
 +#define VK_KHR_acceleration_structure 1
 +#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 10
 +#define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
 +
 +typedef enum VkBuildAccelerationStructureModeKHR {
 +    VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0,
 +    VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1,
 +    VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
 +} VkBuildAccelerationStructureModeKHR;
 +
 +typedef enum VkAccelerationStructureBuildTypeKHR {
 +    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_MAX_ENUM_KHR = 0x7FFFFFFF
 +} VkAccelerationStructureBuildTypeKHR;
 +
 +typedef enum VkAccelerationStructureCompatibilityKHR {
 +    VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0,
 +    VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1,
 +    VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 0x7FFFFFFF
 +} VkAccelerationStructureCompatibilityKHR;
 +
 +typedef enum VkAccelerationStructureCreateFlagBitsKHR {
 +    VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001,
 +    VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
 +} VkAccelerationStructureCreateFlagBitsKHR;
 +typedef VkFlags VkAccelerationStructureCreateFlagsKHR;
 +typedef union VkDeviceOrHostAddressKHR {
 +    VkDeviceAddress    deviceAddress;
 +    void*              hostAddress;
 +} VkDeviceOrHostAddressKHR;
 +
 +typedef union VkDeviceOrHostAddressConstKHR {
 +    VkDeviceAddress    deviceAddress;
 +    const void*        hostAddress;
 +} VkDeviceOrHostAddressConstKHR;
 +
 +typedef struct VkAccelerationStructureBuildRangeInfoKHR {
 +    deUint32    primitiveCount;
 +    deUint32    primitiveOffset;
 +    deUint32    firstVertex;
 +    deUint32    transformOffset;
 +} VkAccelerationStructureBuildRangeInfoKHR;
 +
 +typedef struct VkAccelerationStructureGeometryTrianglesDataKHR {
 +    VkStructureType                  sType;
 +    const void*                      pNext;
 +    VkFormat                         vertexFormat;
 +    VkDeviceOrHostAddressConstKHR    vertexData;
 +    VkDeviceSize                     vertexStride;
 +    deUint32                         maxVertex;
 +    VkIndexType                      indexType;
 +    VkDeviceOrHostAddressConstKHR    indexData;
 +    VkDeviceOrHostAddressConstKHR    transformData;
 +} VkAccelerationStructureGeometryTrianglesDataKHR;
 +
 +typedef struct VkAccelerationStructureGeometryAabbsDataKHR {
 +    VkStructureType                  sType;
 +    const void*                      pNext;
 +    VkDeviceOrHostAddressConstKHR    data;
 +    VkDeviceSize                     stride;
 +} VkAccelerationStructureGeometryAabbsDataKHR;
 +
 +typedef struct VkAccelerationStructureGeometryInstancesDataKHR {
 +    VkStructureType                  sType;
 +    const void*                      pNext;
 +    VkBool32                         arrayOfPointers;
 +    VkDeviceOrHostAddressConstKHR    data;
 +} VkAccelerationStructureGeometryInstancesDataKHR;
 +
 +typedef union VkAccelerationStructureGeometryDataKHR {
 +    VkAccelerationStructureGeometryTrianglesDataKHR    triangles;
 +    VkAccelerationStructureGeometryAabbsDataKHR        aabbs;
 +    VkAccelerationStructureGeometryInstancesDataKHR    instances;
 +} VkAccelerationStructureGeometryDataKHR;
 +
 +typedef struct VkAccelerationStructureGeometryKHR {
 +    VkStructureType                           sType;
 +    const void*                               pNext;
 +    VkGeometryTypeKHR                         geometryType;
 +    VkAccelerationStructureGeometryDataKHR    geometry;
 +    VkGeometryFlagsKHR                        flags;
 +} VkAccelerationStructureGeometryKHR;
 +
 +typedef struct VkAccelerationStructureBuildGeometryInfoKHR {
 +    VkStructureType                                     sType;
 +    const void*                                         pNext;
 +    VkAccelerationStructureTypeKHR                      type;
 +    VkBuildAccelerationStructureFlagsKHR                flags;
 +    VkBuildAccelerationStructureModeKHR                 mode;
 +    VkAccelerationStructureKHR                          srcAccelerationStructure;
 +    VkAccelerationStructureKHR                          dstAccelerationStructure;
 +    deUint32                                            geometryCount;
 +    const VkAccelerationStructureGeometryKHR*           pGeometries;
 +    const VkAccelerationStructureGeometryKHR* const*    ppGeometries;
 +    VkDeviceOrHostAddressKHR                            scratchData;
 +} VkAccelerationStructureBuildGeometryInfoKHR;
 +
 +typedef struct VkAccelerationStructureCreateInfoKHR {
 +    VkStructureType                          sType;
 +    const void*                              pNext;
 +    VkAccelerationStructureCreateFlagsKHR    createFlags;
 +    VkBuffer                                 buffer;
 +    VkDeviceSize                             offset;
 +    VkDeviceSize                             size;
 +    VkAccelerationStructureTypeKHR           type;
 +    VkDeviceAddress                          deviceAddress;
 +} VkAccelerationStructureCreateInfoKHR;
 +
 +typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR {
 +    VkStructureType    sType;
 +    void*              pNext;
 +    VkBool32           accelerationStructure;
 +    VkBool32           accelerationStructureCaptureReplay;
 +    VkBool32           accelerationStructureIndirectBuild;
 +    VkBool32           accelerationStructureHostCommands;
 +    VkBool32           descriptorBindingAccelerationStructureUpdateAfterBind;
 +} VkPhysicalDeviceAccelerationStructureFeaturesKHR;
 +
 +typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR {
 +    VkStructureType    sType;
 +    void*              pNext;
 +    deUint64           maxGeometryCount;
 +    deUint64           maxInstanceCount;
 +    deUint64           maxPrimitiveCount;
 +    deUint32           maxPerStageDescriptorAccelerationStructures;
 +    deUint32           maxPerStageDescriptorUpdateAfterBindAccelerationStructures;
 +    deUint32           maxDescriptorSetAccelerationStructures;
 +    deUint32           maxDescriptorSetUpdateAfterBindAccelerationStructures;
 +    deUint32           minAccelerationStructureScratchOffsetAlignment;
 +} VkPhysicalDeviceAccelerationStructurePropertiesKHR;
 +
 +typedef struct VkAccelerationStructureDeviceAddressInfoKHR {
 +    VkStructureType               sType;
 +    const void*                   pNext;
 +    VkAccelerationStructureKHR    accelerationStructure;
 +} VkAccelerationStructureDeviceAddressInfoKHR;
 +
 +typedef struct VkAccelerationStructureVersionInfoKHR {
 +    VkStructureType    sType;
 +    const void*        pNext;
 +    const deUint8*     pVersionData;
 +} VkAccelerationStructureVersionInfoKHR;
 +
 +typedef struct VkCopyAccelerationStructureToMemoryInfoKHR {
 +    VkStructureType                       sType;
 +    const void*                           pNext;
 +    VkAccelerationStructureKHR            src;
 +    VkDeviceOrHostAddressKHR              dst;
 +    VkCopyAccelerationStructureModeKHR    mode;
 +} VkCopyAccelerationStructureToMemoryInfoKHR;
 +
 +typedef struct VkCopyMemoryToAccelerationStructureInfoKHR {
 +    VkStructureType                       sType;
 +    const void*                           pNext;
 +    VkDeviceOrHostAddressConstKHR         src;
 +    VkAccelerationStructureKHR            dst;
 +    VkCopyAccelerationStructureModeKHR    mode;
 +} VkCopyMemoryToAccelerationStructureInfoKHR;
 +
 +typedef struct VkCopyAccelerationStructureInfoKHR {
 +    VkStructureType                       sType;
 +    const void*                           pNext;
 +    VkAccelerationStructureKHR            src;
 +    VkAccelerationStructureKHR            dst;
 +    VkCopyAccelerationStructureModeKHR    mode;
 +} VkCopyAccelerationStructureInfoKHR;
 +
 +typedef struct VkAccelerationStructureBuildSizesInfoKHR {
 +    VkStructureType    sType;
 +    const void*        pNext;
 +    VkDeviceSize       accelerationStructureSize;
 +    VkDeviceSize       updateScratchSize;
 +    VkDeviceSize       buildScratchSize;
 +} VkAccelerationStructureBuildSizesInfoKHR;
 +
 +typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice                                           device, const VkAccelerationStructureCreateInfoKHR*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkAccelerationStructureKHR*                        pAccelerationStructure);
 +typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer                                    commandBuffer, deUint32 infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
 +typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresIndirectKHR)(VkCommandBuffer                  commandBuffer, deUint32                                           infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress*             pIndirectDeviceAddresses, const deUint32*                    pIndirectStrides, const deUint32* const*             ppMaxPrimitiveCounts);
 +typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructuresKHR)(VkDevice                                           device, VkDeferredOperationKHR deferredOperation, deUint32 infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
 +typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo);
 +typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
 +typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
 +typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, deUint32 accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType  queryType, deUintptr       dataSize, void* pData, deUintptr stride);
 +typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
 +typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
 +typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
 +typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
 +typedef void (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
 +typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureBuildSizesKHR)(VkDevice                                            device, VkAccelerationStructureBuildTypeKHR                 buildType, const VkAccelerationStructureBuildGeometryInfoKHR*  pBuildInfo, const deUint32* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR*           pSizeInfo);
 +
 +#ifndef VK_NO_PROTOTYPES
 +VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR(
 +    VkDevice                                    device,
 +    const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
 +    const VkAllocationCallbacks*                pAllocator,
 +    VkAccelerationStructureKHR*                 pAccelerationStructure);
 +
 +VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresKHR(
 +    VkCommandBuffer                             commandBuffer,
 +    deUint32                                    infoCount,
 +    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
 +    const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
 +
 +VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresIndirectKHR(
 +    VkCommandBuffer                             commandBuffer,
 +    deUint32                                    infoCount,
 +    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
 +    const VkDeviceAddress*                      pIndirectDeviceAddresses,
 +    const deUint32*                             pIndirectStrides,
 +    const deUint32* const*                      ppMaxPrimitiveCounts);
 +
 +VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructuresKHR(
 +    VkDevice                                    device,
 +    VkDeferredOperationKHR                      deferredOperation,
 +    deUint32                                    infoCount,
 +    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
 +    const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
 +
 +VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR(
 +    VkDevice                                    device,
 +    VkDeferredOperationKHR                      deferredOperation,
 +    const VkCopyAccelerationStructureInfoKHR*   pInfo);
 +
 +VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR(
 +    VkDevice                                    device,
 +    VkDeferredOperationKHR                      deferredOperation,
 +    const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
 +
 +VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR(
 +    VkDevice                                    device,
 +    VkDeferredOperationKHR                      deferredOperation,
 +    const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
 +
 +VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR(
 +    VkDevice                                    device,
 +    deUint32                                    accelerationStructureCount,
 +    const VkAccelerationStructureKHR*           pAccelerationStructures,
 +    VkQueryType                                 queryType,
 +    deUintptr                                      dataSize,
 +    void*                                       pData,
 +    deUintptr                                      stride);
 +
 +VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR(
 +    VkCommandBuffer                             commandBuffer,
 +    const VkCopyAccelerationStructureInfoKHR*   pInfo);
 +
 +VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR(
 +    VkCommandBuffer                             commandBuffer,
 +    const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
 +
 +VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR(
 +    VkCommandBuffer                             commandBuffer,
 +    const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
 +
 +VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR(
 +    VkDevice                                    device,
 +    const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
 +
 +VKAPI_ATTR void VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR(
 +    VkDevice                                    device,
 +    const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
 +    VkAccelerationStructureCompatibilityKHR*    pCompatibility);
 +
 +VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureBuildSizesKHR(
 +    VkDevice                                    device,
 +    VkAccelerationStructureBuildTypeKHR         buildType,
 +    const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
 +    const deUint32*                             pMaxPrimitiveCounts,
 +    VkAccelerationStructureBuildSizesInfoKHR*   pSizeInfo);
 +#endif
 +
 +
 +#define VK_KHR_ray_tracing_pipeline 1
 +#define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1
 +#define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
 +
 +typedef enum VkShaderGroupShaderKHR {
 +    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_MAX_ENUM_KHR = 0x7FFFFFFF
 +} VkShaderGroupShaderKHR;
 +typedef struct VkRayTracingShaderGroupCreateInfoKHR {
 +    VkStructureType                   sType;
 +    const void*                       pNext;
 +    VkRayTracingShaderGroupTypeKHR    type;
 +    deUint32                          generalShader;
 +    deUint32                          closestHitShader;
 +    deUint32                          anyHitShader;
 +    deUint32                          intersectionShader;
 +    const void*                       pShaderGroupCaptureReplayHandle;
 +} VkRayTracingShaderGroupCreateInfoKHR;
 +
 +typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR {
 +    VkStructureType    sType;
 +    const void*        pNext;
 +    deUint32           maxPipelineRayPayloadSize;
 +    deUint32           maxPipelineRayHitAttributeSize;
 +} VkRayTracingPipelineInterfaceCreateInfoKHR;
 +
 +typedef struct VkRayTracingPipelineCreateInfoKHR {
 +    VkStructureType                                      sType;
 +    const void*                                          pNext;
 +    VkPipelineCreateFlags                                flags;
 +    deUint32                                             stageCount;
 +    const VkPipelineShaderStageCreateInfo*               pStages;
 +    deUint32                                             groupCount;
 +    const VkRayTracingShaderGroupCreateInfoKHR*          pGroups;
 +    deUint32                                             maxPipelineRayRecursionDepth;
 +    const VkPipelineLibraryCreateInfoKHR*                pLibraryInfo;
 +    const VkRayTracingPipelineInterfaceCreateInfoKHR*    pLibraryInterface;
 +    const VkPipelineDynamicStateCreateInfo*              pDynamicState;
 +    VkPipelineLayout                                     layout;
 +    VkPipeline                                           basePipelineHandle;
 +    deInt32                                              basePipelineIndex;
 +} VkRayTracingPipelineCreateInfoKHR;
 +
 +typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR {
 +    VkStructureType    sType;
 +    void*              pNext;
 +    VkBool32           rayTracingPipeline;
 +    VkBool32           rayTracingPipelineShaderGroupHandleCaptureReplay;
 +    VkBool32           rayTracingPipelineShaderGroupHandleCaptureReplayMixed;
 +    VkBool32           rayTracingPipelineTraceRaysIndirect;
 +    VkBool32           rayTraversalPrimitiveCulling;
 +} VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
 +
 +typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR {
 +    VkStructureType    sType;
 +    void*              pNext;
 +    deUint32           shaderGroupHandleSize;
 +    deUint32           maxRayRecursionDepth;
 +    deUint32           maxShaderGroupStride;
 +    deUint32           shaderGroupBaseAlignment;
 +    deUint32           shaderGroupHandleCaptureReplaySize;
 +    deUint32           maxRayDispatchInvocationCount;
 +    deUint32           shaderGroupHandleAlignment;
 +    deUint32           maxRayHitAttributeSize;
 +} VkPhysicalDeviceRayTracingPipelinePropertiesKHR;
 +
 +typedef struct VkStridedDeviceAddressRegionKHR {
 +    VkDeviceAddress    deviceAddress;
 +    VkDeviceSize       stride;
 +    VkDeviceSize       size;
 +} VkStridedDeviceAddressRegionKHR;
 +
 +typedef struct VkTraceRaysIndirectCommandKHR {
 +    deUint32    width;
 +    deUint32    height;
 +    deUint32    depth;
 +} VkTraceRaysIndirectCommandKHR;
 +
 +typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, deUint32 width, deUint32 height, deUint32 depth);
 +typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, deUint32 createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
 +typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, deUint32 firstGroup, deUint32 groupCount, deUintptr dataSize, void* pData);
 +typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress);
 +typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice device, VkPipeline pipeline, deUint32 group, VkShaderGroupShaderKHR groupShader);
 +typedef void (VKAPI_PTR *PFN_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer commandBuffer, deUint32 pipelineStackSize);
 +
 +#ifndef VK_NO_PROTOTYPES
 +VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR(
 +    VkCommandBuffer                             commandBuffer,
 +    const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
 +    const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
 +    const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
 +    const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
 +    deUint32                                    width,
 +    deUint32                                    height,
 +    deUint32                                    depth);
 +
 +VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR(
 +    VkDevice                                    device,
 +    VkDeferredOperationKHR                      deferredOperation,
 +    VkPipelineCache                             pipelineCache,
 +    deUint32                                    createInfoCount,
 +    const VkRayTracingPipelineCreateInfoKHR*    pCreateInfos,
 +    const VkAllocationCallbacks*                pAllocator,
 +    VkPipeline*                                 pPipelines);
 +
 +VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
 +    VkDevice                                    device,
 +    VkPipeline                                  pipeline,
 +    deUint32                                    firstGroup,
 +    deUint32                                    groupCount,
 +    deUintptr                                      dataSize,
 +    void*                                       pData);
 +
 +VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR(
 +    VkCommandBuffer                             commandBuffer,
 +    const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
 +    const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
 +    const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
 +    const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
 +    VkDeviceAddress                             indirectDeviceAddress);
 +
 +VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetRayTracingShaderGroupStackSizeKHR(
 +    VkDevice                                    device,
 +    VkPipeline                                  pipeline,
 +    deUint32                                    group,
 +    VkShaderGroupShaderKHR                      groupShader);
 +
 +VKAPI_ATTR void VKAPI_CALL vkCmdSetRayTracingPipelineStackSizeKHR(
 +    VkCommandBuffer                             commandBuffer,
 +    deUint32                                    pipelineStackSize);
 +#endif
 +
 +
 +#define VK_KHR_ray_query 1
 +#define VK_KHR_RAY_QUERY_SPEC_VERSION     1
 +#define VK_KHR_RAY_QUERY_EXTENSION_NAME   "VK_KHR_ray_query"
 +typedef struct VkPhysicalDeviceRayQueryFeaturesKHR {
 +    VkStructureType    sType;
 +    void*              pNext;
 +    VkBool32           rayQuery;
 +} VkPhysicalDeviceRayQueryFeaturesKHR;
 +
 +
+ #define VK_EXT_fragment_density_map2 1
+ #define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
+ #define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
+ typedef struct VkPhysicalDeviceFragmentDensityMapFeatures2EXT {
+     VkStructureType    sType;
+     void*              pNext;
+     VkBool32           fragmentDensityMapDeferred;
+ } VkPhysicalDeviceFragmentDensityMapFeatures2EXT;
+ typedef struct VkPhysicalDeviceFragmentDensityMapProperties2EXT {
+     VkStructureType    sType;
+     void*              pNext;
+     VkBool32           subsampledLoads;
+     VkBool32           subsampledCoarseReconstructionEarlyAccess;
+     deUint32           maxSubsampledArrayLayers;
+     deUint32           maxDescriptorSetSubsampledSamplers;
+ } VkPhysicalDeviceFragmentDensityMapProperties2EXT;
  #ifdef __cplusplus
  }
  #endif
index b4e25ccf9170dbad3bbc7a60a29c878f393b9d88,04a26c32ad3d922b6ee77f95e20914b072088904..4e337a553b785fa1b49e7c4413f9e3beed15d5db
@@@ -10954,426 -10917,25 +10957,445 @@@ typedef struct VkDeviceDiagnosticsConfi
  
  
  
 +#define VK_KHR_acceleration_structure 1
 +#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 10
 +#define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
 +
 +typedef enum VkBuildAccelerationStructureModeKHR {
 +    VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0,
 +    VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1,
 +    VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
 +} VkBuildAccelerationStructureModeKHR;
 +
 +typedef enum VkAccelerationStructureBuildTypeKHR {
 +    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_MAX_ENUM_KHR = 0x7FFFFFFF
 +} VkAccelerationStructureBuildTypeKHR;
 +
 +typedef enum VkAccelerationStructureCompatibilityKHR {
 +    VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0,
 +    VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1,
 +    VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 0x7FFFFFFF
 +} VkAccelerationStructureCompatibilityKHR;
 +
 +typedef enum VkAccelerationStructureCreateFlagBitsKHR {
 +    VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001,
 +    VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
 +} VkAccelerationStructureCreateFlagBitsKHR;
 +typedef VkFlags VkAccelerationStructureCreateFlagsKHR;
 +typedef union VkDeviceOrHostAddressKHR {
 +    VkDeviceAddress    deviceAddress;
 +    void*              hostAddress;
 +} VkDeviceOrHostAddressKHR;
 +
 +typedef union VkDeviceOrHostAddressConstKHR {
 +    VkDeviceAddress    deviceAddress;
 +    const void*        hostAddress;
 +} VkDeviceOrHostAddressConstKHR;
 +
 +typedef struct VkAccelerationStructureBuildRangeInfoKHR {
 +    uint32_t    primitiveCount;
 +    uint32_t    primitiveOffset;
 +    uint32_t    firstVertex;
 +    uint32_t    transformOffset;
 +} VkAccelerationStructureBuildRangeInfoKHR;
 +
 +typedef struct VkAccelerationStructureGeometryTrianglesDataKHR {
 +    VkStructureType                  sType;
 +    const void*                      pNext;
 +    VkFormat                         vertexFormat;
 +    VkDeviceOrHostAddressConstKHR    vertexData;
 +    VkDeviceSize                     vertexStride;
 +    uint32_t                         maxVertex;
 +    VkIndexType                      indexType;
 +    VkDeviceOrHostAddressConstKHR    indexData;
 +    VkDeviceOrHostAddressConstKHR    transformData;
 +} VkAccelerationStructureGeometryTrianglesDataKHR;
 +
 +typedef struct VkAccelerationStructureGeometryAabbsDataKHR {
 +    VkStructureType                  sType;
 +    const void*                      pNext;
 +    VkDeviceOrHostAddressConstKHR    data;
 +    VkDeviceSize                     stride;
 +} VkAccelerationStructureGeometryAabbsDataKHR;
 +
 +typedef struct VkAccelerationStructureGeometryInstancesDataKHR {
 +    VkStructureType                  sType;
 +    const void*                      pNext;
 +    VkBool32                         arrayOfPointers;
 +    VkDeviceOrHostAddressConstKHR    data;
 +} VkAccelerationStructureGeometryInstancesDataKHR;
 +
 +typedef union VkAccelerationStructureGeometryDataKHR {
 +    VkAccelerationStructureGeometryTrianglesDataKHR    triangles;
 +    VkAccelerationStructureGeometryAabbsDataKHR        aabbs;
 +    VkAccelerationStructureGeometryInstancesDataKHR    instances;
 +} VkAccelerationStructureGeometryDataKHR;
 +
 +typedef struct VkAccelerationStructureGeometryKHR {
 +    VkStructureType                           sType;
 +    const void*                               pNext;
 +    VkGeometryTypeKHR                         geometryType;
 +    VkAccelerationStructureGeometryDataKHR    geometry;
 +    VkGeometryFlagsKHR                        flags;
 +} VkAccelerationStructureGeometryKHR;
 +
 +typedef 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;
 +} VkAccelerationStructureBuildGeometryInfoKHR;
 +
 +typedef struct VkAccelerationStructureCreateInfoKHR {
 +    VkStructureType                          sType;
 +    const void*                              pNext;
 +    VkAccelerationStructureCreateFlagsKHR    createFlags;
 +    VkBuffer                                 buffer;
 +    VkDeviceSize                             offset;
 +    VkDeviceSize                             size;
 +    VkAccelerationStructureTypeKHR           type;
 +    VkDeviceAddress                          deviceAddress;
 +} VkAccelerationStructureCreateInfoKHR;
 +
 +typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR {
 +    VkStructureType    sType;
 +    void*              pNext;
 +    VkBool32           accelerationStructure;
 +    VkBool32           accelerationStructureCaptureReplay;
 +    VkBool32           accelerationStructureIndirectBuild;
 +    VkBool32           accelerationStructureHostCommands;
 +    VkBool32           descriptorBindingAccelerationStructureUpdateAfterBind;
 +} VkPhysicalDeviceAccelerationStructureFeaturesKHR;
 +
 +typedef 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;
 +} VkPhysicalDeviceAccelerationStructurePropertiesKHR;
 +
 +typedef struct VkAccelerationStructureDeviceAddressInfoKHR {
 +    VkStructureType               sType;
 +    const void*                   pNext;
 +    VkAccelerationStructureKHR    accelerationStructure;
 +} VkAccelerationStructureDeviceAddressInfoKHR;
 +
 +typedef struct VkAccelerationStructureVersionInfoKHR {
 +    VkStructureType    sType;
 +    const void*        pNext;
 +    const uint8_t*     pVersionData;
 +} VkAccelerationStructureVersionInfoKHR;
 +
 +typedef struct VkCopyAccelerationStructureToMemoryInfoKHR {
 +    VkStructureType                       sType;
 +    const void*                           pNext;
 +    VkAccelerationStructureKHR            src;
 +    VkDeviceOrHostAddressKHR              dst;
 +    VkCopyAccelerationStructureModeKHR    mode;
 +} VkCopyAccelerationStructureToMemoryInfoKHR;
 +
 +typedef struct VkCopyMemoryToAccelerationStructureInfoKHR {
 +    VkStructureType                       sType;
 +    const void*                           pNext;
 +    VkDeviceOrHostAddressConstKHR         src;
 +    VkAccelerationStructureKHR            dst;
 +    VkCopyAccelerationStructureModeKHR    mode;
 +} VkCopyMemoryToAccelerationStructureInfoKHR;
 +
 +typedef struct VkCopyAccelerationStructureInfoKHR {
 +    VkStructureType                       sType;
 +    const void*                           pNext;
 +    VkAccelerationStructureKHR            src;
 +    VkAccelerationStructureKHR            dst;
 +    VkCopyAccelerationStructureModeKHR    mode;
 +} VkCopyAccelerationStructureInfoKHR;
 +
 +typedef struct VkAccelerationStructureBuildSizesInfoKHR {
 +    VkStructureType    sType;
 +    const void*        pNext;
 +    VkDeviceSize       accelerationStructureSize;
 +    VkDeviceSize       updateScratchSize;
 +    VkDeviceSize       buildScratchSize;
 +} VkAccelerationStructureBuildSizesInfoKHR;
 +
 +typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice                                           device, const VkAccelerationStructureCreateInfoKHR*        pCreateInfo, const VkAllocationCallbacks*       pAllocator, VkAccelerationStructureKHR*                        pAccelerationStructure);
 +typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer                                    commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
 +typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresIndirectKHR)(VkCommandBuffer                  commandBuffer, uint32_t                                           infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress*             pIndirectDeviceAddresses, const uint32_t*                    pIndirectStrides, const uint32_t* const*             ppMaxPrimitiveCounts);
 +typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructuresKHR)(VkDevice                                           device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
 +typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo);
 +typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
 +typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
 +typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType  queryType, size_t       dataSize, void* pData, size_t stride);
 +typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
 +typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
 +typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
 +typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
 +typedef void (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
 +typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureBuildSizesKHR)(VkDevice                                            device, VkAccelerationStructureBuildTypeKHR                 buildType, const VkAccelerationStructureBuildGeometryInfoKHR*  pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR*           pSizeInfo);
 +
 +#ifndef VK_NO_PROTOTYPES
 +VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR(
 +    VkDevice                                    device,
 +    const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
 +    const VkAllocationCallbacks*                pAllocator,
 +    VkAccelerationStructureKHR*                 pAccelerationStructure);
 +
 +VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresKHR(
 +    VkCommandBuffer                             commandBuffer,
 +    uint32_t                                    infoCount,
 +    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
 +    const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
 +
 +VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresIndirectKHR(
 +    VkCommandBuffer                             commandBuffer,
 +    uint32_t                                    infoCount,
 +    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
 +    const VkDeviceAddress*                      pIndirectDeviceAddresses,
 +    const uint32_t*                             pIndirectStrides,
 +    const uint32_t* const*                      ppMaxPrimitiveCounts);
 +
 +VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructuresKHR(
 +    VkDevice                                    device,
 +    VkDeferredOperationKHR                      deferredOperation,
 +    uint32_t                                    infoCount,
 +    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
 +    const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
 +
 +VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR(
 +    VkDevice                                    device,
 +    VkDeferredOperationKHR                      deferredOperation,
 +    const VkCopyAccelerationStructureInfoKHR*   pInfo);
 +
 +VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR(
 +    VkDevice                                    device,
 +    VkDeferredOperationKHR                      deferredOperation,
 +    const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
 +
 +VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR(
 +    VkDevice                                    device,
 +    VkDeferredOperationKHR                      deferredOperation,
 +    const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
 +
 +VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR(
 +    VkDevice                                    device,
 +    uint32_t                                    accelerationStructureCount,
 +    const VkAccelerationStructureKHR*           pAccelerationStructures,
 +    VkQueryType                                 queryType,
 +    size_t                                      dataSize,
 +    void*                                       pData,
 +    size_t                                      stride);
 +
 +VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR(
 +    VkCommandBuffer                             commandBuffer,
 +    const VkCopyAccelerationStructureInfoKHR*   pInfo);
 +
 +VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR(
 +    VkCommandBuffer                             commandBuffer,
 +    const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
 +
 +VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR(
 +    VkCommandBuffer                             commandBuffer,
 +    const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
 +
 +VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR(
 +    VkDevice                                    device,
 +    const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
 +
 +VKAPI_ATTR void VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR(
 +    VkDevice                                    device,
 +    const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
 +    VkAccelerationStructureCompatibilityKHR*    pCompatibility);
 +
 +VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureBuildSizesKHR(
 +    VkDevice                                    device,
 +    VkAccelerationStructureBuildTypeKHR         buildType,
 +    const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
 +    const uint32_t*                             pMaxPrimitiveCounts,
 +    VkAccelerationStructureBuildSizesInfoKHR*   pSizeInfo);
 +#endif
 +
 +
 +#define VK_KHR_ray_tracing_pipeline 1
 +#define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1
 +#define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
 +
 +typedef enum VkShaderGroupShaderKHR {
 +    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_MAX_ENUM_KHR = 0x7FFFFFFF
 +} VkShaderGroupShaderKHR;
 +typedef struct VkRayTracingShaderGroupCreateInfoKHR {
 +    VkStructureType                   sType;
 +    const void*                       pNext;
 +    VkRayTracingShaderGroupTypeKHR    type;
 +    uint32_t                          generalShader;
 +    uint32_t                          closestHitShader;
 +    uint32_t                          anyHitShader;
 +    uint32_t                          intersectionShader;
 +    const void*                       pShaderGroupCaptureReplayHandle;
 +} VkRayTracingShaderGroupCreateInfoKHR;
 +
 +typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR {
 +    VkStructureType    sType;
 +    const void*        pNext;
 +    uint32_t           maxPipelineRayPayloadSize;
 +    uint32_t           maxPipelineRayHitAttributeSize;
 +} VkRayTracingPipelineInterfaceCreateInfoKHR;
 +
 +typedef struct VkRayTracingPipelineCreateInfoKHR {
 +    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;
 +} VkRayTracingPipelineCreateInfoKHR;
 +
 +typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR {
 +    VkStructureType    sType;
 +    void*              pNext;
 +    VkBool32           rayTracingPipeline;
 +    VkBool32           rayTracingPipelineShaderGroupHandleCaptureReplay;
 +    VkBool32           rayTracingPipelineShaderGroupHandleCaptureReplayMixed;
 +    VkBool32           rayTracingPipelineTraceRaysIndirect;
 +    VkBool32           rayTraversalPrimitiveCulling;
 +} VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
 +
 +typedef 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;
 +} VkPhysicalDeviceRayTracingPipelinePropertiesKHR;
 +
 +typedef struct VkStridedDeviceAddressRegionKHR {
 +    VkDeviceAddress    deviceAddress;
 +    VkDeviceSize       stride;
 +    VkDeviceSize       size;
 +} VkStridedDeviceAddressRegionKHR;
 +
 +typedef struct VkTraceRaysIndirectCommandKHR {
 +    uint32_t    width;
 +    uint32_t    height;
 +    uint32_t    depth;
 +} VkTraceRaysIndirectCommandKHR;
 +
 +typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth);
 +typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
 +typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
 +typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress);
 +typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader);
 +typedef void (VKAPI_PTR *PFN_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer commandBuffer, uint32_t pipelineStackSize);
 +
 +#ifndef VK_NO_PROTOTYPES
 +VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR(
 +    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 VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR(
 +    VkDevice                                    device,
 +    VkDeferredOperationKHR                      deferredOperation,
 +    VkPipelineCache                             pipelineCache,
 +    uint32_t                                    createInfoCount,
 +    const VkRayTracingPipelineCreateInfoKHR*    pCreateInfos,
 +    const VkAllocationCallbacks*                pAllocator,
 +    VkPipeline*                                 pPipelines);
 +
 +VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
 +    VkDevice                                    device,
 +    VkPipeline                                  pipeline,
 +    uint32_t                                    firstGroup,
 +    uint32_t                                    groupCount,
 +    size_t                                      dataSize,
 +    void*                                       pData);
 +
 +VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR(
 +    VkCommandBuffer                             commandBuffer,
 +    const VkStridedDeviceAddressRegionKHR*      pRaygenShaderBindingTable,
 +    const VkStridedDeviceAddressRegionKHR*      pMissShaderBindingTable,
 +    const VkStridedDeviceAddressRegionKHR*      pHitShaderBindingTable,
 +    const VkStridedDeviceAddressRegionKHR*      pCallableShaderBindingTable,
 +    VkDeviceAddress                             indirectDeviceAddress);
 +
 +VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetRayTracingShaderGroupStackSizeKHR(
 +    VkDevice                                    device,
 +    VkPipeline                                  pipeline,
 +    uint32_t                                    group,
 +    VkShaderGroupShaderKHR                      groupShader);
 +
 +VKAPI_ATTR void VKAPI_CALL vkCmdSetRayTracingPipelineStackSizeKHR(
 +    VkCommandBuffer                             commandBuffer,
 +    uint32_t                                    pipelineStackSize);
 +#endif
 +
 +
 +#define VK_KHR_ray_query 1
 +#define VK_KHR_RAY_QUERY_SPEC_VERSION     1
 +#define VK_KHR_RAY_QUERY_EXTENSION_NAME   "VK_KHR_ray_query"
 +typedef struct VkPhysicalDeviceRayQueryFeaturesKHR {
 +    VkStructureType    sType;
 +    void*              pNext;
 +    VkBool32           rayQuery;
 +} VkPhysicalDeviceRayQueryFeaturesKHR;
 +
 +
+ #define VK_EXT_fragment_density_map2 1
+ #define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
+ #define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
+ typedef struct VkPhysicalDeviceFragmentDensityMapFeatures2EXT {
+     VkStructureType    sType;
+     void*              pNext;
+     VkBool32           fragmentDensityMapDeferred;
+ } VkPhysicalDeviceFragmentDensityMapFeatures2EXT;
+ typedef struct VkPhysicalDeviceFragmentDensityMapProperties2EXT {
+     VkStructureType    sType;
+     void*              pNext;
+     VkBool32           subsampledLoads;
+     VkBool32           subsampledCoarseReconstructionEarlyAccess;
+     uint32_t           maxSubsampledArrayLayers;
+     uint32_t           maxDescriptorSetSubsampledSamplers;
+ } VkPhysicalDeviceFragmentDensityMapProperties2EXT;
  #ifdef __cplusplus
  }
  #endif