Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.2.0
authorAlexander Galazin <alexander.galazin@arm.com>
Tue, 8 Oct 2019 17:58:13 +0000 (19:58 +0200)
committerAlexander Galazin <alexander.galazin@arm.com>
Tue, 8 Oct 2019 18:00:46 +0000 (20:00 +0200)
Change-Id: I3a4a19f9d8bba49c51d01cc6f07fda4ceb496b45

18 files changed:
1  2 
AndroidGen.mk
android/cts/master/vk-master.txt
external/vulkancts/framework/vulkan/vkBasicTypes.inl
external/vulkancts/framework/vulkan/vkDeviceExtensions.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/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/modules/vulkan/vktTestPackage.cpp
external/vulkancts/mustpass/master/vk-default-no-waivers.txt
external/vulkancts/mustpass/master/vk-default.txt
external/vulkancts/scripts/src/extensions_data.txt
external/vulkancts/scripts/src/vulkan_core.h

diff --cc AndroidGen.mk
Simple merge
Simple merge
@@@ -440,7 -395,10 +440,8 @@@ enum VkStructureTyp
        VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT                                                           = 1000178000,
        VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT                                                            = 1000178001,
        VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT                           = 1000178002,
 -      VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR                                      = 1000180000,
        VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD                                                     = 1000183000,
+       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR                                                     = 1000181000,
        VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT                                                                         = 1000184000,
        VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD                                            = 1000185000,
        VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD                                          = 1000189000,
@@@ -3131,8 -2814,8 +3132,9 @@@ VK_DEFINE_PLATFORM_TYPE(CAMetalLayer
  #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
  #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
  #define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
 +#define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1
  #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
+ #define VK_KHR_SHADER_CLOCK_SPEC_VERSION 1
  #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1
  #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
  #define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
@@@ -47,17 -47,8 +47,18 @@@ static const char* s_allowedDeviceKhrEx
        "VK_KHR_vulkan_memory_model",
        "VK_KHR_uniform_buffer_standard_layout",
        "VK_KHR_imageless_framebuffer",
 -      "VK_KHR_pipeline_executable_properties",
 +      "VK_KHR_shader_subgroup_extended_types",
 +      "VK_EXT_sampler_filter_minmax",
 +      "VK_EXT_shader_viewport_index_layer",
 +      "VK_EXT_descriptor_indexing",
 +      "VK_EXT_scalar_block_layout",
 +      "VK_KHR_buffer_device_address",
 +      "VK_EXT_host_query_reset",
 +      "VK_KHR_separate_depth_stencil_layouts",
        "VK_KHR_timeline_semaphore",
 +      "VK_KHR_spirv_1_4",
 +      "VK_EXT_separate_stencil_usage",
 +      "VK_KHR_pipeline_executable_properties",
+       "VK_KHR_shader_clock",
  };
  
  
  namespace vk
  {
 -#define DECL_PROTECTED_MEMORY_EXTENSION_NAME "not_existent_feature"
 -#define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
 -#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
 -#define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
 +#define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
 +#define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
 +#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
 +#define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
 +#define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
 +#define DECL_AMD_COHERENT_MEMORY_EXTENSION_NAME "not_existent_feature"
 +#define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
  #define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
 -#define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
 +#define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
 +#define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
 +#define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
 +#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
  #define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
 +#define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
 +#define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
 +#define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
 +#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
 +#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
 +#define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
  #define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
 +#define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
  #define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
 -#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
 -#define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
 -#define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
 +#define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
 +#define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
 +#define VK_NV_MESH_SHADER_EXTENSION_NAME  "VK_NV_mesh_shader"
 +#define VK_KHR_MULTIVIEW_EXTENSION_NAME   "VK_KHR_multiview"
 +#define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
 +#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
 +#define DECL_PROTECTED_MEMORY_EXTENSION_NAME "not_existent_feature"
  #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
 -#define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
 +#define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
 +#define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
 +#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
  #define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
 -#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
 -#define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
 -#define VK_NV_MESH_SHADER_EXTENSION_NAME  "VK_NV_mesh_shader"
 -#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
+ #define VK_KHR_SHADER_CLOCK_EXTENSION_NAME    "VK_KHR_shader_clock"
 +#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
 +#define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
 +#define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
  #define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
 -#define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
 +#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
 +#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
 +#define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
 +#define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
 +#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
  #define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
 -#define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
 -#define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
 -#define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
 -#define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
 -#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
 -#define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
 -#define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
 -#define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
 -#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
 -#define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
 +#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
  #define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
 -#define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
 -#define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
 -#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
 -#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
 -#define VK_KHR_MULTIVIEW_EXTENSION_NAME   "VK_KHR_multiview"
 -#define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
  #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
 -#define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
 +#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
 +#define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
 +#define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
  
  
- 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, 50); }
- 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, 49); }
- 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, 48); }
- 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, 47); }
- 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, 46); }
- template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoherentMemoryFeaturesAMD>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, DECL_AMD_COHERENT_MEMORY_EXTENSION_NAME, 0, 45); }
- 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, 44); }
- 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, 43); }
- 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, 42); }
- 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, 41); }
- 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, 40); }
- 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, 39); }
- 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, 38); }
- 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, 37); }
- 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, 36); }
- 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, 35); }
- 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, 34); }
- 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, 33); }
- 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, 32); }
- 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, 31); }
- 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, 30); }
- 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, 29); }
- 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, 28); }
- 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, 27); }
- 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, 26); }
- template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMultiviewFeatures>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 25); }
- 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, 24); }
- 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, 23); }
- template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceProtectedMemoryFeatures>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 22); }
- 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, 21); }
- 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, 20); }
- 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, 19); }
- 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, 18); }
- 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, 17); }
 -template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceProtectedMemoryFeatures>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 42); }
 -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, 41); }
 -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, 40); }
 -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, 39); }
 -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, 38); }
 -template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceFloat16Int8FeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR, VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME, VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION, 37); }
 -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, 36); }
 -template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceImagelessFramebufferFeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR, VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME, VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION, 35); }
 -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, 34); }
 -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, 33); }
 -template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceDescriptorIndexingFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION, 32); }
 -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, 31); }
 -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, 30); }
 -template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice8BitStorageFeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR, VK_KHR_8BIT_STORAGE_EXTENSION_NAME, VK_KHR_8BIT_STORAGE_SPEC_VERSION, 29); }
 -template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceShaderAtomicInt64FeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR, VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME, VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION, 28); }
 -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, 27); }
 -template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION, 26); }
 -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, 25); }
 -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, 24); }
 -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, 23); }
 -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, 22); }
 -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, 21); }
 -template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceTimelineSemaphoreFeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR, VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME, VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION, 20); }
 -template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceVulkanMemoryModelFeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR, VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME, VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION, 19); }
 -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, 18); }
 -template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceScalarBlockLayoutFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT, VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME, VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION, 17); }
 -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, 16); }
 -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, 15); }
 -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, 14); }
 -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, 13); }
 -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, 12); }
 -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, 11); }
 -template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT, VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME, VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION, 10); }
 -template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION, 9); }
 -template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceHostQueryResetFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT, VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, VK_EXT_HOST_QUERY_RESET_SPEC_VERSION, 8); }
 -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, 7); }
 -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, 6); }
 -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, 5); }
 -template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMultiviewFeatures>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 4); }
 -template<> FeatureDesc makeFeatureDesc<VkPhysicalDevice16BitStorageFeatures>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR, VK_KHR_16BIT_STORAGE_EXTENSION_NAME, VK_KHR_16BIT_STORAGE_SPEC_VERSION, 3); }
 -template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceVariablePointersFeatures>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR, VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME, VK_KHR_VARIABLE_POINTERS_SPEC_VERSION, 2); }
 -template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceSamplerYcbcrConversionFeatures>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR, VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME, VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION, 1); }
++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, 51); }
++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, 50); }
++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, 49); }
++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, 48); }
++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, 47); }
++template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceCoherentMemoryFeaturesAMD>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, DECL_AMD_COHERENT_MEMORY_EXTENSION_NAME, 0, 46); }
++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, 45); }
++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, 44); }
++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, 43); }
++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, 42); }
++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, 41); }
++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, 40); }
++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, 39); }
++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, 38); }
++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, 37); }
++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, 36); }
++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, 35); }
++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, 34); }
++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, 33); }
++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, 32); }
++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, 31); }
++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, 30); }
++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, 29); }
++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, 28); }
++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, 27); }
++template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceMultiviewFeatures>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION, 26); }
++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, 25); }
++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, 24); }
++template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceProtectedMemoryFeatures>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0, 23); }
++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, 22); }
++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, 21); }
++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, 20); }
++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, 19); }
++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, 18); }
++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, 17); }
 +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, 16); }
 +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, 15); }
 +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, 14); }
 +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, 13); }
 +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, 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<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); }
 +template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceVariablePointersFeatures>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME, VK_KHR_VARIABLE_POINTERS_SPEC_VERSION, 4); }
 +template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION, 3); }
 +template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceVulkanMemoryModelFeatures>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES, VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME, VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION, 2); }
 +template<> FeatureDesc makeFeatureDesc<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>(void) { return FeatureDesc(VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT, VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME, VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION, 1); }
  
  
  static const FeatureStructMapItem featureStructCreatorMap[] =
  {
 -      { createFeatureStructWrapper<VkPhysicalDeviceProtectedMemoryFeatures>, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0 },
 -      { createFeatureStructWrapper<VkPhysicalDeviceShaderDrawParametersFeatures>, VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME, VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceTransformFeedbackFeaturesEXT>, VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceCornerSampledImageFeaturesNV>, VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME, VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceConditionalRenderingFeaturesEXT>, VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME, VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceFloat16Int8FeaturesKHR>, VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME, VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceDepthClipEnableFeaturesEXT>, VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME, VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceImagelessFramebufferFeaturesKHR>, VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME, VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceInlineUniformBlockFeaturesEXT>, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDevice16BitStorageFeatures>, VK_KHR_16BIT_STORAGE_EXTENSION_NAME, VK_KHR_16BIT_STORAGE_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDevice8BitStorageFeatures>, VK_KHR_8BIT_STORAGE_EXTENSION_NAME, VK_KHR_8BIT_STORAGE_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT>, VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME, VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceDescriptorIndexingFeaturesEXT>, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceShadingRateImageFeaturesNV>, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDevice8BitStorageFeaturesKHR>, VK_KHR_8BIT_STORAGE_EXTENSION_NAME, VK_KHR_8BIT_STORAGE_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceShaderAtomicInt64FeaturesKHR>, VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME, VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceShaderClockFeaturesKHR>, VK_KHR_SHADER_CLOCK_EXTENSION_NAME, VK_KHR_SHADER_CLOCK_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT>, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>, VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME, VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceMeshShaderFeaturesNV>, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV>, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceShaderImageFootprintFeaturesNV>, VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME, VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceExclusiveScissorFeaturesNV>, VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME, VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceTimelineSemaphoreFeaturesKHR>, VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME, VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceVulkanMemoryModelFeaturesKHR>, VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME, VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceScalarBlockLayoutFeaturesEXT>, VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME, VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceMemoryPriorityFeaturesEXT>, VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME, VK_EXT_MEMORY_PRIORITY_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceBufferDeviceAddressFeatures>, VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>, VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceCoherentMemoryFeaturesAMD>, DECL_AMD_COHERENT_MEMORY_EXTENSION_NAME, 0 },
 +      { createFeatureStructWrapper<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>, VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME, VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceConditionalRenderingFeaturesEXT>, VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME, VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceCooperativeMatrixFeaturesNV>, VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME, VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceCornerSampledImageFeaturesNV>, VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME, VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceCoverageReductionModeFeaturesNV>, VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME, VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME, VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceDepthClipEnableFeaturesEXT>, VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME, VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceDescriptorIndexingFeatures>, VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME, VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceExclusiveScissorFeaturesNV>, VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME, VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>, VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV>, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME, VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>, VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME, VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>, VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME, VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR>, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceHostQueryResetFeaturesEXT>, VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, VK_EXT_HOST_QUERY_RESET_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceHostQueryResetFeatures>, VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME, VK_EXT_HOST_QUERY_RESET_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceImagelessFramebufferFeatures>, VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME, VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceIndexTypeUint8FeaturesEXT>, VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME, VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>, VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME, VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceInlineUniformBlockFeaturesEXT>, VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME, VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceLineRasterizationFeaturesEXT>, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, VK_EXT_LINE_RASTERIZATION_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceMemoryPriorityFeaturesEXT>, VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME, VK_EXT_MEMORY_PRIORITY_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceMeshShaderFeaturesNV>, VK_NV_MESH_SHADER_EXTENSION_NAME, VK_NV_MESH_SHADER_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceMultiviewFeatures>, VK_KHR_MULTIVIEW_EXTENSION_NAME, VK_KHR_MULTIVIEW_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDevice16BitStorageFeatures>, VK_KHR_16BIT_STORAGE_EXTENSION_NAME, VK_KHR_16BIT_STORAGE_SPEC_VERSION },
 -      { createFeatureStructWrapper<VkPhysicalDeviceVariablePointersFeatures>, VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME, VK_KHR_VARIABLE_POINTERS_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDevicePerformanceQueryFeaturesKHR>, VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME, VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME, VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceProtectedMemoryFeatures>, DECL_PROTECTED_MEMORY_EXTENSION_NAME, 0 },
 +      { createFeatureStructWrapper<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME, VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION },
        { createFeatureStructWrapper<VkPhysicalDeviceSamplerYcbcrConversionFeatures>, VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME, VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceScalarBlockLayoutFeatures>, VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME, VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures>, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME, VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceShaderAtomicInt64Features>, VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME, VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION },
++      { createFeatureStructWrapper<VkPhysicalDeviceShaderClockFeaturesKHR>, VK_KHR_SHADER_CLOCK_EXTENSION_NAME, VK_KHR_SHADER_CLOCK_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>, VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME, VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceShaderDrawParametersFeatures>, VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME, VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceShaderFloat16Int8Features>, VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME, VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceShaderImageFootprintFeaturesNV>, VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME, VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>, VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME, VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures>, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME, VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceShadingRateImageFeaturesNV>, VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME, VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT>, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>, VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME, VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceTimelineSemaphoreFeatures>, VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME, VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceTransformFeedbackFeaturesEXT>, VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceUniformBufferStandardLayoutFeatures>, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME, VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceVariablePointersFeatures>, VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME, VK_KHR_VARIABLE_POINTERS_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT>, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME, VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceVulkanMemoryModelFeatures>, VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME, VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION },
 +      { createFeatureStructWrapper<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>, VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME, VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION },
  };
  } // vk
  
@@@ -1,53 -1,45 +1,54 @@@
  /* WARNING: This is auto-generated file. Do not modify, since changes will
   * be lost! Modify the generating script instead.
   */
 -const vk::VkPhysicalDeviceProtectedMemoryFeatures&                                            getProtectedMemoryFeatures                                      (void) const;
 -const vk::VkPhysicalDeviceShaderDrawParametersFeatures&                                       getShaderDrawParametersFeatures                         (void) const;
 -const vk::VkPhysicalDeviceTransformFeedbackFeaturesEXT&                                       getTransformFeedbackFeatures                            (void) const;
 -const vk::VkPhysicalDeviceCornerSampledImageFeaturesNV&                                       getCornerSampledImageFeatures                           (void) const;
 -const vk::VkPhysicalDeviceConditionalRenderingFeaturesEXT&                            getConditionalRenderingFeatures                         (void) const;
 -const vk::VkPhysicalDeviceFloat16Int8FeaturesKHR&                                             getFloat16Int8Features                                          (void) const;
 -const vk::VkPhysicalDeviceDepthClipEnableFeaturesEXT&                                 getDepthClipEnableFeatures                                      (void) const;
 -const vk::VkPhysicalDeviceImagelessFramebufferFeaturesKHR&                            getImagelessFramebufferFeatures                         (void) const;
 -const vk::VkPhysicalDeviceInlineUniformBlockFeaturesEXT&                              getInlineUniformBlockFeatures                           (void) const;
 -const vk::VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT&                  getBlendOperationAdvancedFeatures                       (void) const;
 -const vk::VkPhysicalDeviceDescriptorIndexingFeaturesEXT&                              getDescriptorIndexingFeatures                           (void) const;
 -const vk::VkPhysicalDeviceShadingRateImageFeaturesNV&                                 getShadingRateImageFeatures                                     (void) const;
 -const vk::VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&                       getRepresentativeFragmentTestFeatures           (void) const;
 -const vk::VkPhysicalDevice8BitStorageFeaturesKHR&                                             get8BitStorageFeatures                                          (void) const;
 -const vk::VkPhysicalDeviceShaderAtomicInt64FeaturesKHR&                                       getShaderAtomicInt64Features                            (void) const;
 -const vk::VkPhysicalDeviceShaderClockFeaturesKHR&                                             getShaderClockFeatures                                          (void) const;
 -const vk::VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT&                  getVertexAttributeDivisorFeatures                       (void) const;
 -const vk::VkPhysicalDeviceComputeShaderDerivativesFeaturesNV&                 getComputeShaderDerivativesFeatures                     (void) const;
 -const vk::VkPhysicalDeviceMeshShaderFeaturesNV&                                                       getMeshShaderFeatures                                           (void) const;
 -const vk::VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV&                        getFragmentShaderBarycentricFeatures            (void) const;
 -const vk::VkPhysicalDeviceShaderImageFootprintFeaturesNV&                             getShaderImageFootprintFeatures                         (void) const;
 -const vk::VkPhysicalDeviceExclusiveScissorFeaturesNV&                                 getExclusiveScissorFeatures                                     (void) const;
 -const vk::VkPhysicalDeviceTimelineSemaphoreFeaturesKHR&                                       getTimelineSemaphoreFeatures                            (void) const;
 -const vk::VkPhysicalDeviceVulkanMemoryModelFeaturesKHR&                                       getVulkanMemoryModelFeatures                            (void) const;
 -const vk::VkPhysicalDeviceFragmentDensityMapFeaturesEXT&                              getFragmentDensityMapFeatures                           (void) const;
 -const vk::VkPhysicalDeviceScalarBlockLayoutFeaturesEXT&                                       getScalarBlockLayoutFeatures                            (void) const;
 -const vk::VkPhysicalDeviceMemoryPriorityFeaturesEXT&                                  getMemoryPriorityFeatures                                       (void) const;
 -const vk::VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& getDedicatedAllocationImageAliasingFeatures     (void) const;
 -const vk::VkPhysicalDeviceBufferDeviceAddressFeaturesEXT&                             getBufferDeviceAddressFeatures                          (void) const;
 -const vk::VkPhysicalDeviceCooperativeMatrixFeaturesNV&                                        getCooperativeMatrixFeatures                            (void) const;
 -const vk::VkPhysicalDeviceCoverageReductionModeFeaturesNV&                            getCoverageReductionModeFeatures                        (void) const;
 -const vk::VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&                 getFragmentShaderInterlockFeatures                      (void) const;
 -const vk::VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&                                        getYcbcrImageArraysFeatures                                     (void) const;
 -const vk::VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR&             getUniformBufferStandardLayoutFeatures          (void) const;
 -const vk::VkPhysicalDeviceHostQueryResetFeaturesEXT&                                  getHostQueryResetFeatures                                       (void) const;
 -const vk::VkPhysicalDeviceIndexTypeUint8FeaturesEXT&                                  getIndexTypeUint8Features                                       (void) const;
 -const vk::VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT&  getShaderDemoteToHelperInvocationFeatures       (void) const;
 -const vk::VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&            getPipelineExecutablePropertiesFeatures         (void) const;
 -const vk::VkPhysicalDeviceMultiviewFeatures&                                                  getMultiviewFeatures                                            (void) const;
 -const vk::VkPhysicalDevice16BitStorageFeatures&                                                       get16BitStorageFeatures                                         (void) const;
 -const vk::VkPhysicalDeviceVariablePointersFeatures&                                           getVariablePointersFeatures                                     (void) const;
 -const vk::VkPhysicalDeviceSamplerYcbcrConversionFeatures&                             getSamplerYcbcrConversionFeatures                       (void) const;
 +const vk::VkPhysicalDevice16BitStorageFeatures&                                                       get16BitStorageFeatures                                                 (void) const;
 +const vk::VkPhysicalDevice8BitStorageFeatures&                                                        get8BitStorageFeatures                                                  (void) const;
 +const vk::VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT&                  getBlendOperationAdvancedFeaturesEXT                    (void) const;
 +const vk::VkPhysicalDeviceBufferDeviceAddressFeatures&                                        getBufferDeviceAddressFeatures                                  (void) const;
 +const vk::VkPhysicalDeviceBufferDeviceAddressFeaturesEXT&                             getBufferDeviceAddressFeaturesEXT                               (void) const;
 +const vk::VkPhysicalDeviceCoherentMemoryFeaturesAMD&                                  getCoherentMemoryFeaturesAMD                                    (void) const;
 +const vk::VkPhysicalDeviceComputeShaderDerivativesFeaturesNV&                 getComputeShaderDerivativesFeatures                             (void) const;
 +const vk::VkPhysicalDeviceConditionalRenderingFeaturesEXT&                            getConditionalRenderingFeaturesEXT                              (void) const;
 +const vk::VkPhysicalDeviceCooperativeMatrixFeaturesNV&                                        getCooperativeMatrixFeatures                                    (void) const;
 +const vk::VkPhysicalDeviceCornerSampledImageFeaturesNV&                                       getCornerSampledImageFeatures                                   (void) const;
 +const vk::VkPhysicalDeviceCoverageReductionModeFeaturesNV&                            getCoverageReductionModeFeatures                                (void) const;
 +const vk::VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& getDedicatedAllocationImageAliasingFeatures             (void) const;
 +const vk::VkPhysicalDeviceDepthClipEnableFeaturesEXT&                                 getDepthClipEnableFeaturesEXT                                   (void) const;
 +const vk::VkPhysicalDeviceDescriptorIndexingFeatures&                                 getDescriptorIndexingFeatures                                   (void) const;
 +const vk::VkPhysicalDeviceExclusiveScissorFeaturesNV&                                 getExclusiveScissorFeatures                                             (void) const;
 +const vk::VkPhysicalDeviceFragmentDensityMapFeaturesEXT&                              getFragmentDensityMapFeaturesEXT                                (void) const;
 +const vk::VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV&                        getFragmentShaderBarycentricFeatures                    (void) const;
 +const vk::VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&                 getFragmentShaderInterlockFeaturesEXT                   (void) const;
 +const vk::VkPhysicalDeviceHostQueryResetFeatures&                                             getHostQueryResetFeatures                                               (void) const;
 +const vk::VkPhysicalDeviceImagelessFramebufferFeatures&                                       getImagelessFramebufferFeatures                                 (void) const;
 +const vk::VkPhysicalDeviceIndexTypeUint8FeaturesEXT&                                  getIndexTypeUint8FeaturesEXT                                    (void) const;
 +const vk::VkPhysicalDeviceInlineUniformBlockFeaturesEXT&                              getInlineUniformBlockFeaturesEXT                                (void) const;
 +const vk::VkPhysicalDeviceLineRasterizationFeaturesEXT&                                       getLineRasterizationFeaturesEXT                                 (void) const;
 +const vk::VkPhysicalDeviceMemoryPriorityFeaturesEXT&                                  getMemoryPriorityFeaturesEXT                                    (void) const;
 +const vk::VkPhysicalDeviceMeshShaderFeaturesNV&                                                       getMeshShaderFeatures                                                   (void) const;
 +const vk::VkPhysicalDeviceMultiviewFeatures&                                                  getMultiviewFeatures                                                    (void) const;
 +const vk::VkPhysicalDevicePerformanceQueryFeaturesKHR&                                        getPerformanceQueryFeatures                                             (void) const;
 +const vk::VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&            getPipelineExecutablePropertiesFeatures                 (void) const;
 +const vk::VkPhysicalDeviceProtectedMemoryFeatures&                                            getProtectedMemoryFeatures                                              (void) const;
 +const vk::VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&                       getRepresentativeFragmentTestFeatures                   (void) const;
 +const vk::VkPhysicalDeviceSamplerYcbcrConversionFeatures&                             getSamplerYcbcrConversionFeatures                               (void) const;
 +const vk::VkPhysicalDeviceScalarBlockLayoutFeatures&                                  getScalarBlockLayoutFeatures                                    (void) const;
 +const vk::VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures&                        getSeparateDepthStencilLayoutsFeatures                  (void) const;
 +const vk::VkPhysicalDeviceShaderAtomicInt64Features&                                  getShaderAtomicInt64Features                                    (void) const;
++const vk::VkPhysicalDeviceShaderClockFeaturesKHR&                                             getShaderClockFeatures                                                  (void) const;
 +const vk::VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT&  getShaderDemoteToHelperInvocationFeaturesEXT    (void) const;
 +const vk::VkPhysicalDeviceShaderDrawParametersFeatures&                                       getShaderDrawParametersFeatures                                 (void) const;
 +const vk::VkPhysicalDeviceShaderFloat16Int8Features&                                  getShaderFloat16Int8Features                                    (void) const;
 +const vk::VkPhysicalDeviceShaderImageFootprintFeaturesNV&                             getShaderImageFootprintFeatures                                 (void) const;
 +const vk::VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL&                       getShaderIntegerFunctions2FeaturesINTEL                 (void) const;
 +const vk::VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures&                        getShaderSubgroupExtendedTypesFeatures                  (void) const;
 +const vk::VkPhysicalDeviceShadingRateImageFeaturesNV&                                 getShadingRateImageFeatures                                             (void) const;
 +const vk::VkPhysicalDeviceSubgroupSizeControlFeaturesEXT&                             getSubgroupSizeControlFeaturesEXT                               (void) const;
 +const vk::VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT&                            getTexelBufferAlignmentFeaturesEXT                              (void) const;
 +const vk::VkPhysicalDeviceTimelineSemaphoreFeatures&                                  getTimelineSemaphoreFeatures                                    (void) const;
 +const vk::VkPhysicalDeviceTransformFeedbackFeaturesEXT&                                       getTransformFeedbackFeaturesEXT                                 (void) const;
 +const vk::VkPhysicalDeviceUniformBufferStandardLayoutFeatures&                        getUniformBufferStandardLayoutFeatures                  (void) const;
 +const vk::VkPhysicalDeviceVariablePointersFeatures&                                           getVariablePointersFeatures                                             (void) const;
 +const vk::VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT&                  getVertexAttributeDivisorFeaturesEXT                    (void) const;
 +const vk::VkPhysicalDeviceVulkanMemoryModelFeatures&                                  getVulkanMemoryModelFeatures                                    (void) const;
 +const vk::VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&                                        getYcbcrImageArraysFeaturesEXT                                  (void) const;
@@@ -1,53 -1,45 +1,54 @@@
  /* WARNING: This is auto-generated file. Do not modify, since changes will
   * be lost! Modify the generating script instead.
   */
 -const vk::VkPhysicalDeviceProtectedMemoryFeatures&                                            Context::getProtectedMemoryFeatures                                             (void) const { return m_device->getProtectedMemoryFeatures();                                   }
 -const vk::VkPhysicalDeviceShaderDrawParametersFeatures&                                       Context::getShaderDrawParametersFeatures                                (void) const { return m_device->getShaderDrawParametersFeatures();                              }
 -const vk::VkPhysicalDeviceTransformFeedbackFeaturesEXT&                                       Context::getTransformFeedbackFeatures                                   (void) const { return m_device->getTransformFeedbackFeatures();                                 }
 -const vk::VkPhysicalDeviceCornerSampledImageFeaturesNV&                                       Context::getCornerSampledImageFeatures                                  (void) const { return m_device->getCornerSampledImageFeatures();                                }
 -const vk::VkPhysicalDeviceConditionalRenderingFeaturesEXT&                            Context::getConditionalRenderingFeatures                                (void) const { return m_device->getConditionalRenderingFeatures();                              }
 -const vk::VkPhysicalDeviceFloat16Int8FeaturesKHR&                                             Context::getFloat16Int8Features                                                 (void) const { return m_device->getFloat16Int8Features();                                               }
 -const vk::VkPhysicalDeviceDepthClipEnableFeaturesEXT&                                 Context::getDepthClipEnableFeatures                                             (void) const { return m_device->getDepthClipEnableFeatures();                                   }
 -const vk::VkPhysicalDeviceImagelessFramebufferFeaturesKHR&                            Context::getImagelessFramebufferFeatures                                (void) const { return m_device->getImagelessFramebufferFeatures();                              }
 -const vk::VkPhysicalDeviceInlineUniformBlockFeaturesEXT&                              Context::getInlineUniformBlockFeatures                                  (void) const { return m_device->getInlineUniformBlockFeatures();                                }
 -const vk::VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT&                  Context::getBlendOperationAdvancedFeatures                              (void) const { return m_device->getBlendOperationAdvancedFeatures();                    }
 -const vk::VkPhysicalDeviceDescriptorIndexingFeaturesEXT&                              Context::getDescriptorIndexingFeatures                                  (void) const { return m_device->getDescriptorIndexingFeatures();                                }
 -const vk::VkPhysicalDeviceShadingRateImageFeaturesNV&                                 Context::getShadingRateImageFeatures                                    (void) const { return m_device->getShadingRateImageFeatures();                                  }
 -const vk::VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&                       Context::getRepresentativeFragmentTestFeatures                  (void) const { return m_device->getRepresentativeFragmentTestFeatures();                }
 -const vk::VkPhysicalDevice8BitStorageFeaturesKHR&                                             Context::get8BitStorageFeatures                                                 (void) const { return m_device->get8BitStorageFeatures();                                               }
 -const vk::VkPhysicalDeviceShaderAtomicInt64FeaturesKHR&                                       Context::getShaderAtomicInt64Features                                   (void) const { return m_device->getShaderAtomicInt64Features();                                 }
 -const vk::VkPhysicalDeviceShaderClockFeaturesKHR&                                             Context::getShaderClockFeatures                                                 (void) const { return m_device->getShaderClockFeatures();                                               }
 -const vk::VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT&                  Context::getVertexAttributeDivisorFeatures                              (void) const { return m_device->getVertexAttributeDivisorFeatures();                    }
 +const vk::VkPhysicalDevice16BitStorageFeatures&                                                       Context::get16BitStorageFeatures                                                (void) const { return m_device->get16BitStorageFeatures();                                              }
 +const vk::VkPhysicalDevice8BitStorageFeatures&                                                        Context::get8BitStorageFeatures                                                 (void) const { return m_device->get8BitStorageFeatures();                                               }
 +const vk::VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT&                  Context::getBlendOperationAdvancedFeaturesEXT                   (void) const { return m_device->getBlendOperationAdvancedFeaturesEXT();                 }
 +const vk::VkPhysicalDeviceBufferDeviceAddressFeatures&                                        Context::getBufferDeviceAddressFeatures                                 (void) const { return m_device->getBufferDeviceAddressFeatures();                               }
 +const vk::VkPhysicalDeviceBufferDeviceAddressFeaturesEXT&                             Context::getBufferDeviceAddressFeaturesEXT                              (void) const { return m_device->getBufferDeviceAddressFeaturesEXT();                    }
 +const vk::VkPhysicalDeviceCoherentMemoryFeaturesAMD&                                  Context::getCoherentMemoryFeaturesAMD                                   (void) const { return m_device->getCoherentMemoryFeaturesAMD();                                 }
  const vk::VkPhysicalDeviceComputeShaderDerivativesFeaturesNV&                 Context::getComputeShaderDerivativesFeatures                    (void) const { return m_device->getComputeShaderDerivativesFeatures();                  }
 -const vk::VkPhysicalDeviceMeshShaderFeaturesNV&                                                       Context::getMeshShaderFeatures                                                  (void) const { return m_device->getMeshShaderFeatures();                                                }
 -const vk::VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV&                        Context::getFragmentShaderBarycentricFeatures                   (void) const { return m_device->getFragmentShaderBarycentricFeatures();                 }
 -const vk::VkPhysicalDeviceShaderImageFootprintFeaturesNV&                             Context::getShaderImageFootprintFeatures                                (void) const { return m_device->getShaderImageFootprintFeatures();                              }
 -const vk::VkPhysicalDeviceExclusiveScissorFeaturesNV&                                 Context::getExclusiveScissorFeatures                                    (void) const { return m_device->getExclusiveScissorFeatures();                                  }
 -const vk::VkPhysicalDeviceTimelineSemaphoreFeaturesKHR&                                       Context::getTimelineSemaphoreFeatures                                   (void) const { return m_device->getTimelineSemaphoreFeatures();                                 }
 -const vk::VkPhysicalDeviceVulkanMemoryModelFeaturesKHR&                                       Context::getVulkanMemoryModelFeatures                                   (void) const { return m_device->getVulkanMemoryModelFeatures();                                 }
 -const vk::VkPhysicalDeviceFragmentDensityMapFeaturesEXT&                              Context::getFragmentDensityMapFeatures                                  (void) const { return m_device->getFragmentDensityMapFeatures();                                }
 -const vk::VkPhysicalDeviceScalarBlockLayoutFeaturesEXT&                                       Context::getScalarBlockLayoutFeatures                                   (void) const { return m_device->getScalarBlockLayoutFeatures();                                 }
 -const vk::VkPhysicalDeviceMemoryPriorityFeaturesEXT&                                  Context::getMemoryPriorityFeatures                                              (void) const { return m_device->getMemoryPriorityFeatures();                                    }
 -const vk::VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& Context::getDedicatedAllocationImageAliasingFeatures    (void) const { return m_device->getDedicatedAllocationImageAliasingFeatures();  }
 -const vk::VkPhysicalDeviceBufferDeviceAddressFeaturesEXT&                             Context::getBufferDeviceAddressFeatures                                 (void) const { return m_device->getBufferDeviceAddressFeatures();                               }
 +const vk::VkPhysicalDeviceConditionalRenderingFeaturesEXT&                            Context::getConditionalRenderingFeaturesEXT                             (void) const { return m_device->getConditionalRenderingFeaturesEXT();                   }
  const vk::VkPhysicalDeviceCooperativeMatrixFeaturesNV&                                        Context::getCooperativeMatrixFeatures                                   (void) const { return m_device->getCooperativeMatrixFeatures();                                 }
 +const vk::VkPhysicalDeviceCornerSampledImageFeaturesNV&                                       Context::getCornerSampledImageFeatures                                  (void) const { return m_device->getCornerSampledImageFeatures();                                }
  const vk::VkPhysicalDeviceCoverageReductionModeFeaturesNV&                            Context::getCoverageReductionModeFeatures                               (void) const { return m_device->getCoverageReductionModeFeatures();                             }
 -const vk::VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&                 Context::getFragmentShaderInterlockFeatures                             (void) const { return m_device->getFragmentShaderInterlockFeatures();                   }
 -const vk::VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&                                        Context::getYcbcrImageArraysFeatures                                    (void) const { return m_device->getYcbcrImageArraysFeatures();                                  }
 -const vk::VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR&             Context::getUniformBufferStandardLayoutFeatures                 (void) const { return m_device->getUniformBufferStandardLayoutFeatures();               }
 -const vk::VkPhysicalDeviceHostQueryResetFeaturesEXT&                                  Context::getHostQueryResetFeatures                                              (void) const { return m_device->getHostQueryResetFeatures();                                    }
 -const vk::VkPhysicalDeviceIndexTypeUint8FeaturesEXT&                                  Context::getIndexTypeUint8Features                                              (void) const { return m_device->getIndexTypeUint8Features();                                    }
 -const vk::VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT&  Context::getShaderDemoteToHelperInvocationFeatures              (void) const { return m_device->getShaderDemoteToHelperInvocationFeatures();    }
 -const vk::VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&            Context::getPipelineExecutablePropertiesFeatures                (void) const { return m_device->getPipelineExecutablePropertiesFeatures();              }
 +const vk::VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV& Context::getDedicatedAllocationImageAliasingFeatures    (void) const { return m_device->getDedicatedAllocationImageAliasingFeatures();  }
 +const vk::VkPhysicalDeviceDepthClipEnableFeaturesEXT&                                 Context::getDepthClipEnableFeaturesEXT                                  (void) const { return m_device->getDepthClipEnableFeaturesEXT();                                }
 +const vk::VkPhysicalDeviceDescriptorIndexingFeatures&                                 Context::getDescriptorIndexingFeatures                                  (void) const { return m_device->getDescriptorIndexingFeatures();                                }
 +const vk::VkPhysicalDeviceExclusiveScissorFeaturesNV&                                 Context::getExclusiveScissorFeatures                                    (void) const { return m_device->getExclusiveScissorFeatures();                                  }
 +const vk::VkPhysicalDeviceFragmentDensityMapFeaturesEXT&                              Context::getFragmentDensityMapFeaturesEXT                               (void) const { return m_device->getFragmentDensityMapFeaturesEXT();                             }
 +const vk::VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV&                        Context::getFragmentShaderBarycentricFeatures                   (void) const { return m_device->getFragmentShaderBarycentricFeatures();                 }
 +const vk::VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&                 Context::getFragmentShaderInterlockFeaturesEXT                  (void) const { return m_device->getFragmentShaderInterlockFeaturesEXT();                }
 +const vk::VkPhysicalDeviceHostQueryResetFeatures&                                             Context::getHostQueryResetFeatures                                              (void) const { return m_device->getHostQueryResetFeatures();                                    }
 +const vk::VkPhysicalDeviceImagelessFramebufferFeatures&                                       Context::getImagelessFramebufferFeatures                                (void) const { return m_device->getImagelessFramebufferFeatures();                              }
 +const vk::VkPhysicalDeviceIndexTypeUint8FeaturesEXT&                                  Context::getIndexTypeUint8FeaturesEXT                                   (void) const { return m_device->getIndexTypeUint8FeaturesEXT();                                 }
 +const vk::VkPhysicalDeviceInlineUniformBlockFeaturesEXT&                              Context::getInlineUniformBlockFeaturesEXT                               (void) const { return m_device->getInlineUniformBlockFeaturesEXT();                             }
 +const vk::VkPhysicalDeviceLineRasterizationFeaturesEXT&                                       Context::getLineRasterizationFeaturesEXT                                (void) const { return m_device->getLineRasterizationFeaturesEXT();                              }
 +const vk::VkPhysicalDeviceMemoryPriorityFeaturesEXT&                                  Context::getMemoryPriorityFeaturesEXT                                   (void) const { return m_device->getMemoryPriorityFeaturesEXT();                                 }
 +const vk::VkPhysicalDeviceMeshShaderFeaturesNV&                                                       Context::getMeshShaderFeatures                                                  (void) const { return m_device->getMeshShaderFeatures();                                                }
  const vk::VkPhysicalDeviceMultiviewFeatures&                                                  Context::getMultiviewFeatures                                                   (void) const { return m_device->getMultiviewFeatures();                                                 }
 -const vk::VkPhysicalDevice16BitStorageFeatures&                                                       Context::get16BitStorageFeatures                                                (void) const { return m_device->get16BitStorageFeatures();                                              }
 -const vk::VkPhysicalDeviceVariablePointersFeatures&                                           Context::getVariablePointersFeatures                                    (void) const { return m_device->getVariablePointersFeatures();                                  }
 +const vk::VkPhysicalDevicePerformanceQueryFeaturesKHR&                                        Context::getPerformanceQueryFeatures                                    (void) const { return m_device->getPerformanceQueryFeatures();                                  }
 +const vk::VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&            Context::getPipelineExecutablePropertiesFeatures                (void) const { return m_device->getPipelineExecutablePropertiesFeatures();              }
 +const vk::VkPhysicalDeviceProtectedMemoryFeatures&                                            Context::getProtectedMemoryFeatures                                             (void) const { return m_device->getProtectedMemoryFeatures();                                   }
 +const vk::VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&                       Context::getRepresentativeFragmentTestFeatures                  (void) const { return m_device->getRepresentativeFragmentTestFeatures();                }
  const vk::VkPhysicalDeviceSamplerYcbcrConversionFeatures&                             Context::getSamplerYcbcrConversionFeatures                              (void) const { return m_device->getSamplerYcbcrConversionFeatures();                    }
 +const vk::VkPhysicalDeviceScalarBlockLayoutFeatures&                                  Context::getScalarBlockLayoutFeatures                                   (void) const { return m_device->getScalarBlockLayoutFeatures();                                 }
 +const vk::VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures&                        Context::getSeparateDepthStencilLayoutsFeatures                 (void) const { return m_device->getSeparateDepthStencilLayoutsFeatures();               }
 +const vk::VkPhysicalDeviceShaderAtomicInt64Features&                                  Context::getShaderAtomicInt64Features                                   (void) const { return m_device->getShaderAtomicInt64Features();                                 }
++const vk::VkPhysicalDeviceShaderClockFeaturesKHR&                                             Context::getShaderClockFeatures                                                 (void) const { return m_device->getShaderClockFeatures();                                               }
 +const vk::VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT&  Context::getShaderDemoteToHelperInvocationFeaturesEXT   (void) const { return m_device->getShaderDemoteToHelperInvocationFeaturesEXT(); }
 +const vk::VkPhysicalDeviceShaderDrawParametersFeatures&                                       Context::getShaderDrawParametersFeatures                                (void) const { return m_device->getShaderDrawParametersFeatures();                              }
 +const vk::VkPhysicalDeviceShaderFloat16Int8Features&                                  Context::getShaderFloat16Int8Features                                   (void) const { return m_device->getShaderFloat16Int8Features();                                 }
 +const vk::VkPhysicalDeviceShaderImageFootprintFeaturesNV&                             Context::getShaderImageFootprintFeatures                                (void) const { return m_device->getShaderImageFootprintFeatures();                              }
 +const vk::VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL&                       Context::getShaderIntegerFunctions2FeaturesINTEL                (void) const { return m_device->getShaderIntegerFunctions2FeaturesINTEL();              }
 +const vk::VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures&                        Context::getShaderSubgroupExtendedTypesFeatures                 (void) const { return m_device->getShaderSubgroupExtendedTypesFeatures();               }
 +const vk::VkPhysicalDeviceShadingRateImageFeaturesNV&                                 Context::getShadingRateImageFeatures                                    (void) const { return m_device->getShadingRateImageFeatures();                                  }
 +const vk::VkPhysicalDeviceSubgroupSizeControlFeaturesEXT&                             Context::getSubgroupSizeControlFeaturesEXT                              (void) const { return m_device->getSubgroupSizeControlFeaturesEXT();                    }
 +const vk::VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT&                            Context::getTexelBufferAlignmentFeaturesEXT                             (void) const { return m_device->getTexelBufferAlignmentFeaturesEXT();                   }
 +const vk::VkPhysicalDeviceTimelineSemaphoreFeatures&                                  Context::getTimelineSemaphoreFeatures                                   (void) const { return m_device->getTimelineSemaphoreFeatures();                                 }
 +const vk::VkPhysicalDeviceTransformFeedbackFeaturesEXT&                                       Context::getTransformFeedbackFeaturesEXT                                (void) const { return m_device->getTransformFeedbackFeaturesEXT();                              }
 +const vk::VkPhysicalDeviceUniformBufferStandardLayoutFeatures&                        Context::getUniformBufferStandardLayoutFeatures                 (void) const { return m_device->getUniformBufferStandardLayoutFeatures();               }
 +const vk::VkPhysicalDeviceVariablePointersFeatures&                                           Context::getVariablePointersFeatures                                    (void) const { return m_device->getVariablePointersFeatures();                                  }
 +const vk::VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT&                  Context::getVertexAttributeDivisorFeaturesEXT                   (void) const { return m_device->getVertexAttributeDivisorFeaturesEXT();                 }
 +const vk::VkPhysicalDeviceVulkanMemoryModelFeatures&                                  Context::getVulkanMemoryModelFeatures                                   (void) const { return m_device->getVulkanMemoryModelFeatures();                                 }
 +const vk::VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&                                        Context::getYcbcrImageArraysFeaturesEXT                                 (void) const { return m_device->getYcbcrImageArraysFeaturesEXT();                               }
@@@ -1,53 -1,45 +1,54 @@@
  /* WARNING: This is auto-generated file. Do not modify, since changes will
   * be lost! Modify the generating script instead.
   */
 -const VkPhysicalDeviceProtectedMemoryFeatures&                                                getProtectedMemoryFeatures                                      (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceProtectedMemoryFeatures>();                                               }
 -const VkPhysicalDeviceShaderDrawParametersFeatures&                                   getShaderDrawParametersFeatures                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderDrawParametersFeatures>();                                  }
 -const VkPhysicalDeviceTransformFeedbackFeaturesEXT&                                   getTransformFeedbackFeatures                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceTransformFeedbackFeaturesEXT>();                                  }
 -const VkPhysicalDeviceCornerSampledImageFeaturesNV&                                   getCornerSampledImageFeatures                           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceCornerSampledImageFeaturesNV>();                                  }
 -const VkPhysicalDeviceConditionalRenderingFeaturesEXT&                                getConditionalRenderingFeatures                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceConditionalRenderingFeaturesEXT>();                               }
 -const VkPhysicalDeviceFloat16Int8FeaturesKHR&                                         getFloat16Int8Features                                          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFloat16Int8FeaturesKHR>();                                                }
 -const VkPhysicalDeviceDepthClipEnableFeaturesEXT&                                     getDepthClipEnableFeatures                                      (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDepthClipEnableFeaturesEXT>();                                    }
 -const VkPhysicalDeviceImagelessFramebufferFeaturesKHR&                                getImagelessFramebufferFeatures                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceImagelessFramebufferFeaturesKHR>();                               }
 -const VkPhysicalDeviceInlineUniformBlockFeaturesEXT&                          getInlineUniformBlockFeatures                           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceInlineUniformBlockFeaturesEXT>();                                 }
 -const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT&                      getBlendOperationAdvancedFeatures                       (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT>();                             }
 -const VkPhysicalDeviceDescriptorIndexingFeaturesEXT&                          getDescriptorIndexingFeatures                           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDescriptorIndexingFeaturesEXT>();                                 }
 -const VkPhysicalDeviceShadingRateImageFeaturesNV&                                     getShadingRateImageFeatures                                     (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShadingRateImageFeaturesNV>();                                    }
 -const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&                   getRepresentativeFragmentTestFeatures           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>();                  }
 -const VkPhysicalDevice8BitStorageFeaturesKHR&                                         get8BitStorageFeatures                                          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevice8BitStorageFeaturesKHR>();                                                }
 -const VkPhysicalDeviceShaderAtomicInt64FeaturesKHR&                                   getShaderAtomicInt64Features                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderAtomicInt64FeaturesKHR>();                                  }
 -const VkPhysicalDeviceShaderClockFeaturesKHR&                                         getShaderClockFeatures                                          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderClockFeaturesKHR>();                                                }
 -const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT&                      getVertexAttributeDivisorFeatures                       (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT>();                             }
 -const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV&                     getComputeShaderDerivativesFeatures                     (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>();                    }
 -const VkPhysicalDeviceMeshShaderFeaturesNV&                                                   getMeshShaderFeatures                                           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceMeshShaderFeaturesNV>();                                                  }
 -const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV&                    getFragmentShaderBarycentricFeatures            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV>();                   }
 -const VkPhysicalDeviceShaderImageFootprintFeaturesNV&                         getShaderImageFootprintFeatures                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderImageFootprintFeaturesNV>();                                }
 -const VkPhysicalDeviceExclusiveScissorFeaturesNV&                                     getExclusiveScissorFeatures                                     (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceExclusiveScissorFeaturesNV>();                                    }
 -const VkPhysicalDeviceTimelineSemaphoreFeaturesKHR&                                   getTimelineSemaphoreFeatures                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceTimelineSemaphoreFeaturesKHR>();                                  }
 -const VkPhysicalDeviceVulkanMemoryModelFeaturesKHR&                                   getVulkanMemoryModelFeatures                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceVulkanMemoryModelFeaturesKHR>();                                  }
 -const VkPhysicalDeviceFragmentDensityMapFeaturesEXT&                          getFragmentDensityMapFeatures                           (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>();                                 }
 -const VkPhysicalDeviceScalarBlockLayoutFeaturesEXT&                                   getScalarBlockLayoutFeatures                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceScalarBlockLayoutFeaturesEXT>();                                  }
 -const VkPhysicalDeviceMemoryPriorityFeaturesEXT&                                      getMemoryPriorityFeatures                                       (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceMemoryPriorityFeaturesEXT>();                                             }
 -const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV&     getDedicatedAllocationImageAliasingFeatures     (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>();    }
 -const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT&                         getBufferDeviceAddressFeatures                          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>();                                }
 -const VkPhysicalDeviceCooperativeMatrixFeaturesNV&                                    getCooperativeMatrixFeatures                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceCooperativeMatrixFeaturesNV>();                                   }
 -const VkPhysicalDeviceCoverageReductionModeFeaturesNV&                                getCoverageReductionModeFeatures                        (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceCoverageReductionModeFeaturesNV>();                               }
 -const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&                     getFragmentShaderInterlockFeatures                      (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>();                    }
 -const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&                                    getYcbcrImageArraysFeatures                                     (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>();                                   }
 -const VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR&         getUniformBufferStandardLayoutFeatures          (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR>();                }
 -const VkPhysicalDeviceHostQueryResetFeaturesEXT&                                      getHostQueryResetFeatures                                       (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceHostQueryResetFeaturesEXT>();                                             }
 -const VkPhysicalDeviceIndexTypeUint8FeaturesEXT&                                      getIndexTypeUint8Features                                       (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceIndexTypeUint8FeaturesEXT>();                                             }
 -const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT&      getShaderDemoteToHelperInvocationFeatures       (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>();             }
 -const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&                getPipelineExecutablePropertiesFeatures         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>();               }
 -const VkPhysicalDeviceMultiviewFeatures&                                                      getMultiviewFeatures                                            (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceMultiviewFeatures>();                                                             }
 -const VkPhysicalDevice16BitStorageFeatures&                                                   get16BitStorageFeatures                                         (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevice16BitStorageFeatures>();                                                  }
 -const VkPhysicalDeviceVariablePointersFeatures&                                               getVariablePointersFeatures                                     (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceVariablePointersFeatures>();                                              }
 -const VkPhysicalDeviceSamplerYcbcrConversionFeatures&                         getSamplerYcbcrConversionFeatures                       (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceSamplerYcbcrConversionFeatures>();                                }
 +const VkPhysicalDevice16BitStorageFeatures&                                                   get16BitStorageFeatures                                                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevice16BitStorageFeatures>();                                                  }
 +const VkPhysicalDevice8BitStorageFeatures&                                                    get8BitStorageFeatures                                                  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevice8BitStorageFeatures>();                                                   }
 +const VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT&                      getBlendOperationAdvancedFeaturesEXT                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT>();                             }
 +const VkPhysicalDeviceBufferDeviceAddressFeatures&                                    getBufferDeviceAddressFeatures                                  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceBufferDeviceAddressFeatures>();                                   }
 +const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT&                         getBufferDeviceAddressFeaturesEXT                               (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT>();                                }
 +const VkPhysicalDeviceCoherentMemoryFeaturesAMD&                                      getCoherentMemoryFeaturesAMD                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceCoherentMemoryFeaturesAMD>();                                             }
 +const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV&                     getComputeShaderDerivativesFeatures                             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV>();                    }
 +const VkPhysicalDeviceConditionalRenderingFeaturesEXT&                                getConditionalRenderingFeaturesEXT                              (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceConditionalRenderingFeaturesEXT>();                               }
 +const VkPhysicalDeviceCooperativeMatrixFeaturesNV&                                    getCooperativeMatrixFeatures                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceCooperativeMatrixFeaturesNV>();                                   }
 +const VkPhysicalDeviceCornerSampledImageFeaturesNV&                                   getCornerSampledImageFeatures                                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceCornerSampledImageFeaturesNV>();                                  }
 +const VkPhysicalDeviceCoverageReductionModeFeaturesNV&                                getCoverageReductionModeFeatures                                (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceCoverageReductionModeFeaturesNV>();                               }
 +const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV&     getDedicatedAllocationImageAliasingFeatures             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>();    }
 +const VkPhysicalDeviceDepthClipEnableFeaturesEXT&                                     getDepthClipEnableFeaturesEXT                                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDepthClipEnableFeaturesEXT>();                                    }
 +const VkPhysicalDeviceDescriptorIndexingFeatures&                                     getDescriptorIndexingFeatures                                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceDescriptorIndexingFeatures>();                                    }
 +const VkPhysicalDeviceExclusiveScissorFeaturesNV&                                     getExclusiveScissorFeatures                                             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceExclusiveScissorFeaturesNV>();                                    }
 +const VkPhysicalDeviceFragmentDensityMapFeaturesEXT&                          getFragmentDensityMapFeaturesEXT                                (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentDensityMapFeaturesEXT>();                                 }
 +const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV&                    getFragmentShaderBarycentricFeatures                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV>();                   }
 +const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT&                     getFragmentShaderInterlockFeaturesEXT                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT>();                    }
 +const VkPhysicalDeviceHostQueryResetFeatures&                                         getHostQueryResetFeatures                                               (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceHostQueryResetFeatures>();                                                }
 +const VkPhysicalDeviceImagelessFramebufferFeatures&                                   getImagelessFramebufferFeatures                                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceImagelessFramebufferFeatures>();                                  }
 +const VkPhysicalDeviceIndexTypeUint8FeaturesEXT&                                      getIndexTypeUint8FeaturesEXT                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceIndexTypeUint8FeaturesEXT>();                                             }
 +const VkPhysicalDeviceInlineUniformBlockFeaturesEXT&                          getInlineUniformBlockFeaturesEXT                                (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceInlineUniformBlockFeaturesEXT>();                                 }
 +const VkPhysicalDeviceLineRasterizationFeaturesEXT&                                   getLineRasterizationFeaturesEXT                                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceLineRasterizationFeaturesEXT>();                                  }
 +const VkPhysicalDeviceMemoryPriorityFeaturesEXT&                                      getMemoryPriorityFeaturesEXT                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceMemoryPriorityFeaturesEXT>();                                             }
 +const VkPhysicalDeviceMeshShaderFeaturesNV&                                                   getMeshShaderFeatures                                                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceMeshShaderFeaturesNV>();                                                  }
 +const VkPhysicalDeviceMultiviewFeatures&                                                      getMultiviewFeatures                                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceMultiviewFeatures>();                                                             }
 +const VkPhysicalDevicePerformanceQueryFeaturesKHR&                                    getPerformanceQueryFeatures                                             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePerformanceQueryFeaturesKHR>();                                   }
 +const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR&                getPipelineExecutablePropertiesFeatures                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>();               }
 +const VkPhysicalDeviceProtectedMemoryFeatures&                                                getProtectedMemoryFeatures                                              (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceProtectedMemoryFeatures>();                                               }
 +const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV&                   getRepresentativeFragmentTestFeatures                   (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV>();                  }
 +const VkPhysicalDeviceSamplerYcbcrConversionFeatures&                         getSamplerYcbcrConversionFeatures                               (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceSamplerYcbcrConversionFeatures>();                                }
 +const VkPhysicalDeviceScalarBlockLayoutFeatures&                                      getScalarBlockLayoutFeatures                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceScalarBlockLayoutFeatures>();                                             }
 +const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures&                    getSeparateDepthStencilLayoutsFeatures                  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures>();                   }
 +const VkPhysicalDeviceShaderAtomicInt64Features&                                      getShaderAtomicInt64Features                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderAtomicInt64Features>();                                             }
++const VkPhysicalDeviceShaderClockFeaturesKHR&                                         getShaderClockFeatures                                                  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderClockFeaturesKHR>();                                                }
 +const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT&      getShaderDemoteToHelperInvocationFeaturesEXT    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT>();             }
 +const VkPhysicalDeviceShaderDrawParametersFeatures&                                   getShaderDrawParametersFeatures                                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderDrawParametersFeatures>();                                  }
 +const VkPhysicalDeviceShaderFloat16Int8Features&                                      getShaderFloat16Int8Features                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderFloat16Int8Features>();                                             }
 +const VkPhysicalDeviceShaderImageFootprintFeaturesNV&                         getShaderImageFootprintFeatures                                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderImageFootprintFeaturesNV>();                                }
 +const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL&                   getShaderIntegerFunctions2FeaturesINTEL                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>();                  }
 +const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures&                    getShaderSubgroupExtendedTypesFeatures                  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures>();                   }
 +const VkPhysicalDeviceShadingRateImageFeaturesNV&                                     getShadingRateImageFeatures                                             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceShadingRateImageFeaturesNV>();                                    }
 +const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT&                         getSubgroupSizeControlFeaturesEXT                               (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT>();                                }
 +const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT&                                getTexelBufferAlignmentFeaturesEXT                              (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT>();                               }
 +const VkPhysicalDeviceTimelineSemaphoreFeatures&                                      getTimelineSemaphoreFeatures                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceTimelineSemaphoreFeatures>();                                             }
 +const VkPhysicalDeviceTransformFeedbackFeaturesEXT&                                   getTransformFeedbackFeaturesEXT                                 (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceTransformFeedbackFeaturesEXT>();                                  }
 +const VkPhysicalDeviceUniformBufferStandardLayoutFeatures&                    getUniformBufferStandardLayoutFeatures                  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceUniformBufferStandardLayoutFeatures>();                   }
 +const VkPhysicalDeviceVariablePointersFeatures&                                               getVariablePointersFeatures                                             (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceVariablePointersFeatures>();                                              }
 +const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT&                      getVertexAttributeDivisorFeaturesEXT                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT>();                             }
 +const VkPhysicalDeviceVulkanMemoryModelFeatures&                                      getVulkanMemoryModelFeatures                                    (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceVulkanMemoryModelFeatures>();                                             }
 +const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT&                                    getYcbcrImageArraysFeaturesEXT                                  (void) const { return m_deviceFeatures.getFeatureType<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT>();                                   }
@@@ -1346,15 -1201,10 +1346,20 @@@ template<> VkStructureType getStructure
        return VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV;
  }
  
 +template<> VkStructureType getStructureType<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV> (void)
 +{
 +      return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV;
 +}
 +
 +template<> VkStructureType getStructureType<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV> (void)
 +{
 +      return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV;
 +}
++
+ template<> VkStructureType getStructureType<VkPhysicalDeviceShaderClockFeaturesKHR> (void)
+ {
+       return VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR;
+ }
  
  template<> VkStructureType getStructureType<VkDrmFormatModifierPropertiesListEXT> (void)
  {
@@@ -762,8 -698,7 +762,9 @@@ std::ostream&      operator<<      (std::ostream
  std::ostream& operator<<      (std::ostream& s, const VkPipelineColorBlendAdvancedStateCreateInfoEXT& value);
  std::ostream& operator<<      (std::ostream& s, const VkPipelineCoverageToColorStateCreateInfoNV& value);
  std::ostream& operator<<      (std::ostream& s, const VkPipelineCoverageModulationStateCreateInfoNV& value);
 +std::ostream& operator<<      (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV& value);
 +std::ostream& operator<<      (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV& value);
+ std::ostream& operator<<      (std::ostream& s, const VkPhysicalDeviceShaderClockFeaturesKHR& value);
  std::ostream& operator<<      (std::ostream& s, const VkDrmFormatModifierPropertiesEXT& value);
  std::ostream& operator<<      (std::ostream& s, const VkDrmFormatModifierPropertiesListEXT& value);
  std::ostream& operator<<      (std::ostream& s, const VkPhysicalDeviceImageDrmFormatModifierInfoEXT& value);
@@@ -448,7 -407,10 +448,8 @@@ const char* getStructureTypeName (VkStr
                case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:                                                             return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT";
                case VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT:                                                              return "VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT";
                case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:                             return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT";
 -              case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR:                                return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR";
                case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:                                               return "VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD";
+               case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:                                               return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR";
                case VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT:                                                                   return "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT";
                case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:                                              return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD";
                case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:                                    return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD";
@@@ -8068,27 -7320,17 +8069,38 @@@ std::ostream& operator<< (std::ostream
        return s;
  }
  
 +std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV& value)
 +{
 +      s << "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV = {\n";
 +      s << "\tsType = " << value.sType << '\n';
 +      s << "\tpNext = " << value.pNext << '\n';
 +      s << "\tshaderSMCount = " << value.shaderSMCount << '\n';
 +      s << "\tshaderWarpsPerSM = " << value.shaderWarpsPerSM << '\n';
 +      s << '}';
 +      return s;
 +}
 +
 +std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV& value)
 +{
 +      s << "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV = {\n";
 +      s << "\tsType = " << value.sType << '\n';
 +      s << "\tpNext = " << value.pNext << '\n';
 +      s << "\tshaderSMBuiltins = " << value.shaderSMBuiltins << '\n';
 +      s << '}';
 +      return s;
 +}
 +
+ std::ostream& operator<< (std::ostream& s, const VkPhysicalDeviceShaderClockFeaturesKHR& value)
+ {
+       s << "VkPhysicalDeviceShaderClockFeaturesKHR = {\n";
+       s << "\tsType = " << value.sType << '\n';
+       s << "\tpNext = " << value.pNext << '\n';
+       s << "\tshaderSubgroupClock = " << value.shaderSubgroupClock << '\n';
+       s << "\tshaderDeviceClock = " << value.shaderDeviceClock << '\n';
+       s << '}';
+       return s;
+ }
  std::ostream& operator<< (std::ostream& s, const VkDrmFormatModifierPropertiesEXT& value)
  {
        s << "VkDrmFormatModifierPropertiesEXT = {\n";
@@@ -3552,21 -3161,14 +3552,29 @@@ struct VkPipelineCoverageModulationStat
        const float*                                                                    pCoverageModulationTable;
  };
  
 +struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV
 +{
 +      VkStructureType sType;
 +      void*                   pNext;
 +      deUint32                shaderSMCount;
 +      deUint32                shaderWarpsPerSM;
 +};
 +
 +struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV
 +{
 +      VkStructureType sType;
 +      void*                   pNext;
 +      VkBool32                shaderSMBuiltins;
 +};
 +
+ struct VkPhysicalDeviceShaderClockFeaturesKHR
+ {
+       VkStructureType sType;
+       void*                   pNext;
+       VkBool32                shaderSubgroupClock;
+       VkBool32                shaderDeviceClock;
+ };
  struct VkDrmFormatModifierPropertiesEXT
  {
        deUint64                                drmFormatModifier;
@@@ -489,7 -445,10 +489,8 @@@ typedef enum VkStructureType 
      VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
      VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
      VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
 -    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000,
      VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
+     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
      VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000,
      VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
      VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
@@@ -58,23 -58,14 +58,24 @@@ VK_KHR_image_format_list                                   DEVICE 1_2
  VK_KHR_sampler_ycbcr_conversion                               DEVICE 1_1_0
  VK_KHR_bind_memory2                                                   DEVICE 1_1_0
  VK_KHR_maintenance3                                                   DEVICE 1_1_0
 -VK_KHR_driver_properties                                      DEVICE
 -VK_KHR_shader_float_controls                          DEVICE
 -VK_KHR_depth_stencil_resolve                          DEVICE
 -VK_KHR_draw_indirect_count                                    DEVICE
 -VK_KHR_shader_atomic_int64                                    DEVICE
 -VK_KHR_vulkan_memory_model                                    DEVICE
 -VK_KHR_uniform_buffer_standard_layout         DEVICE
 -VK_KHR_imageless_framebuffer                          DEVICE
 +VK_KHR_driver_properties                                      DEVICE 1_2_0
 +VK_KHR_shader_float_controls                          DEVICE 1_2_0
 +VK_KHR_depth_stencil_resolve                          DEVICE 1_2_0
 +VK_KHR_draw_indirect_count                                    DEVICE 1_2_0
 +VK_KHR_shader_atomic_int64                                    DEVICE 1_2_0
 +VK_KHR_vulkan_memory_model                                    DEVICE 1_2_0
 +VK_KHR_uniform_buffer_standard_layout         DEVICE 1_2_0
 +VK_KHR_imageless_framebuffer                          DEVICE 1_2_0
 +VK_KHR_shader_subgroup_extended_types         DEVICE 1_2_0
 +VK_EXT_sampler_filter_minmax                          DEVICE 1_2_0
 +VK_EXT_shader_viewport_index_layer                    DEVICE 1_2_0
 +VK_EXT_descriptor_indexing                                    DEVICE 1_2_0
 +VK_EXT_scalar_block_layout                                    DEVICE 1_2_0
 +VK_KHR_buffer_device_address                          DEVICE 1_2_0
 +VK_EXT_host_query_reset                                               DEVICE 1_2_0
 +VK_KHR_separate_depth_stencil_layouts         DEVICE 1_2_0
 +VK_KHR_timeline_semaphore                                     DEVICE 1_2_0
 +VK_KHR_spirv_1_4                                                      DEVICE 1_2_0
 +VK_EXT_separate_stencil_usage                                 DEVICE 1_2_0
  VK_KHR_pipeline_executable_properties                 DEVICE
 -VK_KHR_timeline_semaphore                                     DEVICE
+ VK_KHR_shader_clock                                                   DEVICE
index 463772c,47073a0..b2a2398
mode 100644,100755..100644
@@@ -486,7 -442,10 +486,8 @@@ typedef enum VkStructureType 
      VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
      VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
      VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
 -    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000,
      VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
+     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
      VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000,
      VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
      VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,