Extent extension dependency inspection to allow multiple sets of dependencies per...
authorAndreas Süßenbach <asuessenbach@nvidia.com>
Wed, 17 May 2023 08:23:27 +0000 (10:23 +0200)
committerGitHub <noreply@github.com>
Wed, 17 May 2023 08:23:27 +0000 (10:23 +0200)
README.md
VulkanHppGenerator.cpp
VulkanHppGenerator.hpp
tests/ExtensionInspection/ExtensionInspection.cpp
vulkan/vulkan_extension_inspection.hpp
vulkan/vulkansc_extension_inspection.hpp

index 9952d4b..e40ec1a 100644 (file)
--- a/README.md
+++ b/README.md
@@ -575,10 +575,10 @@ Some functions might provide information that depends on the vulkan version. As
        Gets all instance extensions specified for the current platform. Note, that not all of them might be supported by the actual instances.\r
 - `std::map<std::string, std::string> const & getDeprecatedExtensions();`\r
        Gets a map of all deprecated extensions to the extension or vulkan version that is supposed to replace that functionality.\r
-- `std::map<std::string, std::vector<std::string>> const & getExtensionDepends( std::string const & extension );`\r
-       Some extensions depends on other extensions. That dependencies might differ for different vulkan versions. This function gets a vector of extensions per vulkan version that the given extension depends on.\r
-- `std::pair<bool, std::vector<std::string> const &> getExtensionDepends( std::string const & version, std::string const & extension );`\r
-       The `first` member of the returned `std::pair` is true, if the given extension is specified for the given vulkan version, otherwise `false`. The `second` member of the returned `std::pair` is a vector of extensions, the given extension depends on for the given vulkan version.\r
+- `std::map<std::string, std::vector<std::vector<std::string>>> const & getExtensionDepends( std::string const & extension );`\r
+       Some extensions depends on other extensions. That dependencies might differ for different vulkan versions, and there might be different sets of dependencies for the very same vulkan version. This function gets a vector of vectors of extensions per vulkan version that the given extension depends on.\r
+- `std::pair<bool, std::vector<std::vector<std::string>> const &> getExtensionDepends( std::string const & version, std::string const & extension );`\r
+       The `first` member of the returned `std::pair` is true, if the given extension is specified for the given vulkan version, otherwise `false`. The `second` member of the returned `std::pair` is a vector of vectors of extensions, listing the separate sets of extensions the given extension depends on for the given vulkan version.\r
 - `std::map<std::string, std::string> const & getObsoletedExtensions();`\r
        Gets a map of all obsoleted extensions to the extension or vulkan version that has obsoleted that extension.\r
 - `std::map<std::string, std::string> const & getPromotedExtensions();`\r
index af7077c..9991af6 100644 (file)
@@ -137,10 +137,10 @@ namespace VULKAN_HPP_NAMESPACE
   //=== Extension inspection functions ===
   //======================================
 
-  std::set<std::string> const &                           getDeviceExtensions();
-  std::set<std::string> const &                           getInstanceExtensions();
-  std::map<std::string, std::string> const &              getDeprecatedExtensions();
-  std::map<std::string, std::vector<std::string>> const & getExtensionDepends( std::string const & extension );
+  std::set<std::string> const &                                        getDeviceExtensions();
+  std::set<std::string> const &                                        getInstanceExtensions();
+  std::map<std::string, std::string> const &                           getDeprecatedExtensions();
+  std::map<std::string, std::vector<std::vector<std::string>>> const & getExtensionDepends( std::string const & extension );
   ${getExtensionDependsByVersionDeclaration}
   std::map<std::string, std::string> const &              getObsoletedExtensions();
   std::map<std::string, std::string> const &              getPromotedExtensions();
@@ -175,10 +175,10 @@ namespace VULKAN_HPP_NAMESPACE
     return instanceExtensions;
   }
 
-  VULKAN_HPP_INLINE std::map<std::string, std::vector<std::string>> const & getExtensionDepends( std::string const & extension )
+  VULKAN_HPP_INLINE std::map<std::string, std::vector<std::vector<std::string>>> const & getExtensionDepends( std::string const & extension )
   {
-    static std::map<std::string, std::vector<std::string>> noDependencies;
-    static std::map<std::string, std::map<std::string, std::vector<std::string>>> dependencies = { ${extensionDependencies} };
+    static std::map<std::string, std::vector<std::vector<std::string>>> noDependencies;
+    static std::map<std::string, std::map<std::string, std::vector<std::vector<std::string>>>> dependencies = { ${extensionDependencies} };
     auto depIt = dependencies.find( extension );
     return ( depIt != dependencies.end() ) ? depIt->second : noDependencies;
   }
@@ -1189,14 +1189,17 @@ void VulkanHppGenerator::checkExtensionCorrectness() const
   for ( auto const & extension : m_extensions )
   {
     // check for existence of any depends, deprecation, obsoletion, or promotion
-    for ( auto const & dependsPerVersion : extension.depends )
+    for ( auto const & dependsByVersion : extension.depends )
     {
-      checkForError( isFeature( dependsPerVersion.first ),
+      checkForError( isFeature( dependsByVersion.first ),
                      extension.xmlLine,
-                     "extension <" + extension.name + "> lists an unknown feature <" + dependsPerVersion.first + ">" );
-      for ( auto const & depends : dependsPerVersion.second )
+                     "extension <" + extension.name + "> lists an unknown feature <" + dependsByVersion.first + ">" );
+      for ( auto const & dependsSet : dependsByVersion.second )
       {
-        checkForError( isExtension( depends ), extension.xmlLine, "extension <" + extension.name + "> lists an unknown depends <" + depends + ">" );
+        for ( auto const & depends : dependsSet )
+        {
+          checkForError( isExtension( depends ), extension.xmlLine, "extension <" + extension.name + "> lists an unknown depends <" + depends + ">" );
+        }
       }
     }
     if ( !extension.deprecatedBy.empty() )
@@ -5723,15 +5726,20 @@ std::string VulkanHppGenerator::generateExtensionDependencies() const
     if ( !extension.depends.empty() )
     {
       std::string dependsPerExtension = "{ \"" + extension.name + "\", { ";
-      for ( auto const & dependsPerVersion : extension.depends )
+      for ( auto const & dependsByVersion : extension.depends )
       {
-        dependsPerExtension += "{ \"" + dependsPerVersion.first + "\", { ";
-        if ( !dependsPerVersion.second.empty() )
+        dependsPerExtension += "{ \"" + dependsByVersion.first + "\", { ";
+        if ( !dependsByVersion.second.empty() )
         {
-          for ( auto const & depends : dependsPerVersion.second )
+          dependsPerExtension += " { ";
+          for ( auto const & dependsSet : dependsByVersion.second )
           {
-            dependsPerExtension += "\"" + depends + "\", ";
+            for ( auto const & depends : dependsSet )
+            {
+              dependsPerExtension += "\"" + depends + "\", ";
+            }
           }
+          dependsPerExtension += " }, ";
           assert( dependsPerExtension.ends_with( ", " ) );
           dependsPerExtension = dependsPerExtension.substr( 0, dependsPerExtension.length() - 2 );
         }
@@ -5767,15 +5775,15 @@ std::string VulkanHppGenerator::generateExtensionDependsByVersion( bool definiti
   if ( definition )
   {
     const std::string generateExtensionDependsTemplate =
-      R"(  VULKAN_HPP_INLINE std::pair<bool, std::vector<std::string> const &> getExtensionDepends( std::string const & version, std::string const & extension )
+      R"(  VULKAN_HPP_INLINE std::pair<bool, std::vector<std::vector<std::string>> const &> getExtensionDepends( std::string const & version, std::string const & extension )
     {
 #if !defined( NDEBUG )
       static std::set<std::string> versions = { ${versions} };
       assert( versions.find( version ) != versions.end() );
 #endif
-      static std::vector<std::string> noDependencies;
+      static std::vector<std::vector<std::string>> noDependencies;
 
-      std::map<std::string, std::vector<std::string>> const & dependencies = getExtensionDepends( extension );
+      std::map<std::string, std::vector<std::vector<std::string>>> const & dependencies = getExtensionDepends( extension );
       if ( dependencies.empty() )
       {
         return { true, noDependencies };
@@ -5808,7 +5816,7 @@ std::string VulkanHppGenerator::generateExtensionDependsByVersion( bool definiti
   }
   else
   {
-    return "std::pair<bool, std::vector<std::string> const &> getExtensionDepends( std::string const & version, std::string const & extension );";
+    return "std::pair<bool, std::vector<std::vector<std::string>> const &> getExtensionDepends( std::string const & version, std::string const & extension );";
   }
 }
 
@@ -11965,28 +11973,32 @@ void VulkanHppGenerator::readExtension( tinyxml2::XMLElement const * element )
         { "(VK_KHR_get_physical_device_properties2,VK_VERSION_1_1)+(VK_KHR_dynamic_rendering,VK_VERSION_1_3)",
           "VK_KHR_get_physical_device_properties2+VK_KHR_dynamic_rendering,VK_VERSION_1_1+VK_KHR_dynamic_rendering,VK_VERSION_1_3" }
       };
-      auto        canonicalIt = complexToCanonicalDepends.find( attribute.second );
-      std::string depends     = ( canonicalIt == complexToCanonicalDepends.end() ) ? attribute.second : canonicalIt->second;
-      checkForError( depends.find( '(' ) == std::string::npos, line, "encountered not-yet-handled complex attribute depends=\"" + depends + "\"" );
-
-      // for ease of handling, prepend the (optional) VK_VERSION_1_0
-      if ( !depends.starts_with( "VK_VERSION" ) )
+      auto                     canonicalIt = complexToCanonicalDepends.find( attribute.second );
+      std::string depends;
+      if ( canonicalIt == complexToCanonicalDepends.end() )
       {
-        depends = "VK_VERSION_1_0+" + depends;
+        depends = attribute.second;
+        std::erase_if( depends, []( char c ) { return ( c == '(' ) || ( c == ')' ); } );
+      }
+      else
+      {
+        depends = canonicalIt->second;
       }
 
       // first tokenize by ',', giving a vector of dependencies for different vulkan versions
       std::vector<std::string> allDependencies = tokenize( depends, "," );
       for ( auto dep : allDependencies )
       {
+        // for ease of handling, prepend the (optional) VK_VERSION_1_0
+        if ( !dep.starts_with( "VK_VERSION" ) )
+        {
+          assert( dep.find( "VK_VERSION" ) == std::string::npos );
+          dep = "VK_VERSION_1_0+" + dep;
+        }
+
         // then tokenize by '+', giving a vector of dependendies for the vulkan version listed as the first element here
-        std::vector<std::string> dependsPerVersion = tokenize( dep, "+" );
-        assert( dependsPerVersion[0].starts_with( "VK_VERSION_" ) );
-        assert( std::find_if( std::next( dependsPerVersion.begin() ),
-                              dependsPerVersion.end(),
-                              []( std::string const & d ) { return d.starts_with( "VK_VERSION_" ); } ) == dependsPerVersion.end() );
-        assert( extensionData.depends.find( dependsPerVersion[0] ) == extensionData.depends.end() );
-        extensionData.depends[dependsPerVersion[0]] = { std::next( dependsPerVersion.begin() ), dependsPerVersion.end() };
+        std::vector<std::string> dependsByVersion = tokenize( dep, "+" );
+        extensionData.depends[dependsByVersion[0]].push_back( { std::next( dependsByVersion.begin() ), dependsByVersion.end() } );
       }
     }
     else if ( attribute.first == "deprecatedby" )
index ee42971..942edd2 100644 (file)
@@ -244,17 +244,17 @@ private:
 
   struct ExtensionData
   {
-    std::string                                     deprecatedBy = {};
-    bool                                            isDeprecated = false;
-    std::string                                     name         = {};
-    std::string                                     number       = {};
-    std::string                                     obsoletedBy  = {};
-    std::string                                     platform     = {};
-    std::string                                     promotedTo   = {};
-    std::map<std::string, std::vector<std::string>> depends      = {};
-    std::vector<RequireData>                        requireData  = {};
-    std::string                                     type         = {};
-    int                                             xmlLine      = 0;
+    std::string                                                  deprecatedBy = {};
+    bool                                                         isDeprecated = false;
+    std::string                                                  name         = {};
+    std::string                                                  number       = {};
+    std::string                                                  obsoletedBy  = {};
+    std::string                                                  platform     = {};
+    std::string                                                  promotedTo   = {};
+    std::map<std::string, std::vector<std::vector<std::string>>> depends      = {};
+    std::vector<RequireData>                                     requireData  = {};
+    std::string                                                  type         = {};
+    int                                                          xmlLine      = 0;
   };
 
   struct ExternalTypeData
index 91aa1d4..3926f32 100644 (file)
@@ -49,18 +49,18 @@ int main( int /*argc*/, char ** /*argv*/ )
   std::set<std::string> const & deviceExtensions = vk::getDeviceExtensions();
   assert( deviceExtensions.find( VK_KHR_SWAPCHAIN_EXTENSION_NAME ) != deviceExtensions.end() );
 
-  std::map<std::string, std::vector<std::string>> depends = vk::getExtensionDepends( VK_KHR_SWAPCHAIN_EXTENSION_NAME );
+  std::map<std::string, std::vector<std::vector<std::string>>> depends = vk::getExtensionDepends( VK_KHR_SWAPCHAIN_EXTENSION_NAME );
   assert( ( depends.size() == 1 ) && ( depends.begin()->first == "VK_VERSION_1_0" ) && ( depends.begin()->second.size() == 1 ) &&
-          ( depends.begin()->second[0] == VK_KHR_SURFACE_EXTENSION_NAME ) );
+          ( depends.begin()->second[0].size() == 1 ) && ( depends.begin()->second[0][0] == VK_KHR_SURFACE_EXTENSION_NAME ) );
 
   auto [available0, deps0] = vk::getExtensionDepends( "VK_VERSION_1_0", VK_KHR_SURFACE_EXTENSION_NAME );
   assert( available0 && deps0.empty() );
 
   auto [available1, deps1] = vk::getExtensionDepends( "VK_VERSION_1_0", VK_KHR_SWAPCHAIN_EXTENSION_NAME );
-  assert( available1 && ( deps1.size() == 1 ) && ( deps1[0] == VK_KHR_SURFACE_EXTENSION_NAME ) );
+  assert( available1 && ( deps1.size() == 1 ) && ( deps1[0].size() == 1 ) && ( deps1[0][0] == VK_KHR_SURFACE_EXTENSION_NAME ) );
 
   auto [available2, deps2] = vk::getExtensionDepends( "VK_VERSION_1_1", VK_KHR_SWAPCHAIN_EXTENSION_NAME );
-  assert( available2 && ( deps2.size() == 1 ) && ( deps2[0] == VK_KHR_SURFACE_EXTENSION_NAME ) );
+  assert( available2 && ( deps2.size() == 1 ) && ( deps2[0].size() == 1 ) && ( deps2[0][0] == VK_KHR_SURFACE_EXTENSION_NAME ) );
 
   auto [available3, deps3] = vk::getExtensionDepends( "VK_VERSION_1_1", VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME );
   assert( !available3 );
index 5125ac6..19a7a5c 100644 (file)
@@ -18,13 +18,13 @@ namespace VULKAN_HPP_NAMESPACE
   //=== Extension inspection functions ===
   //======================================
 
-  std::set<std::string> const &                           getDeviceExtensions();
-  std::set<std::string> const &                           getInstanceExtensions();
-  std::map<std::string, std::string> const &              getDeprecatedExtensions();
-  std::map<std::string, std::vector<std::string>> const & getExtensionDepends( std::string const & extension );
-  std::pair<bool, std::vector<std::string> const &>       getExtensionDepends( std::string const & version, std::string const & extension );
-  std::map<std::string, std::string> const &              getObsoletedExtensions();
-  std::map<std::string, std::string> const &              getPromotedExtensions();
+  std::set<std::string> const &                                        getDeviceExtensions();
+  std::set<std::string> const &                                        getInstanceExtensions();
+  std::map<std::string, std::string> const &                           getDeprecatedExtensions();
+  std::map<std::string, std::vector<std::vector<std::string>>> const & getExtensionDepends( std::string const & extension );
+  std::pair<bool, std::vector<std::vector<std::string>> const &>       getExtensionDepends( std::string const & version, std::string const & extension );
+  std::map<std::string, std::string> const &                           getObsoletedExtensions();
+  std::map<std::string, std::string> const &                           getPromotedExtensions();
   VULKAN_HPP_CONSTEXPR_20 std::string getExtensionDeprecatedBy( std::string const & extension );
   VULKAN_HPP_CONSTEXPR_20 std::string getExtensionObsoletedBy( std::string const & extension );
   VULKAN_HPP_CONSTEXPR_20 std::string getExtensionPromotedTo( std::string const & extension );
@@ -464,359 +464,1438 @@ namespace VULKAN_HPP_NAMESPACE
     return instanceExtensions;
   }
 
-  VULKAN_HPP_INLINE std::map<std::string, std::vector<std::string>> const & getExtensionDepends( std::string const & extension )
+  VULKAN_HPP_INLINE std::map<std::string, std::vector<std::vector<std::string>>> const & getExtensionDepends( std::string const & extension )
   {
-    static std::map<std::string, std::vector<std::string>>                        noDependencies;
-    static std::map<std::string, std::map<std::string, std::vector<std::string>>> dependencies = {
-      { "VK_KHR_swapchain", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
-      { "VK_KHR_display", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
-      { "VK_KHR_display_swapchain", { { "VK_VERSION_1_0", { "VK_KHR_swapchain", "VK_KHR_display" } } } },
+    static std::map<std::string, std::vector<std::vector<std::string>>>                        noDependencies;
+    static std::map<std::string, std::map<std::string, std::vector<std::vector<std::string>>>> dependencies = {
+      { "VK_KHR_swapchain",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+      { "VK_KHR_display",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+      { "VK_KHR_display_swapchain",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+              "VK_KHR_display",
+            } } } } },
 #if defined( VK_USE_PLATFORM_XLIB_KHR )
-      { "VK_KHR_xlib_surface", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
+      { "VK_KHR_xlib_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
 #if defined( VK_USE_PLATFORM_XCB_KHR )
-      { "VK_KHR_xcb_surface", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
+      { "VK_KHR_xcb_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
 #endif /*VK_USE_PLATFORM_XCB_KHR*/
 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
-      { "VK_KHR_wayland_surface", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
+      { "VK_KHR_wayland_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
-      { "VK_KHR_android_surface", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
+      { "VK_KHR_android_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
 #if defined( VK_USE_PLATFORM_WIN32_KHR )
-      { "VK_KHR_win32_surface", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
+      { "VK_KHR_win32_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
-      { "VK_EXT_debug_marker", { { "VK_VERSION_1_0", { "VK_EXT_debug_report" } } } },
-      { "VK_KHR_video_queue", { { "VK_VERSION_1_1", { "VK_KHR_synchronization2" } } } },
-      { "VK_KHR_video_decode_queue", { { "VK_VERSION_1_0", { "VK_KHR_video_queue", "VK_KHR_synchronization2" } } } },
-      { "VK_EXT_transform_feedback", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
+      { "VK_EXT_debug_marker",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_debug_report",
+            } } } } },
+      { "VK_KHR_video_queue",
+        { { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_synchronization2",
+            } } } } },
+      { "VK_KHR_video_decode_queue",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_video_queue",
+              "VK_KHR_synchronization2",
+            } } } } },
+      { "VK_EXT_transform_feedback",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
 #if defined( VK_ENABLE_BETA_EXTENSIONS )
-      { "VK_EXT_video_encode_h264", { { "VK_VERSION_1_0", { "VK_KHR_video_encode_queue" } } } },
-      { "VK_EXT_video_encode_h265", { { "VK_VERSION_1_0", { "VK_KHR_video_encode_queue" } } } },
+      { "VK_EXT_video_encode_h264",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_video_encode_queue",
+            } } } } },
+      { "VK_EXT_video_encode_h265",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_video_encode_queue",
+            } } } } },
 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
-      { "VK_KHR_video_decode_h264", { { "VK_VERSION_1_0", { "VK_KHR_video_decode_queue" } } } },
-      { "VK_AMD_texture_gather_bias_lod", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_dynamic_rendering", { { "VK_VERSION_1_0", { "VK_KHR_depth_stencil_resolve", "VK_KHR_get_physical_device_properties2" } } } },
+      { "VK_KHR_video_decode_h264",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_video_decode_queue",
+            } } } } },
+      { "VK_AMD_texture_gather_bias_lod",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_dynamic_rendering",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_depth_stencil_resolve",
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
 #if defined( VK_USE_PLATFORM_GGP )
-      { "VK_GGP_stream_descriptor_surface", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
+      { "VK_GGP_stream_descriptor_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
 #endif /*VK_USE_PLATFORM_GGP*/
-      { "VK_NV_corner_sampled_image", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_multiview", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_NV_external_memory", { { "VK_VERSION_1_0", { "VK_NV_external_memory_capabilities" } } } },
+      { "VK_NV_corner_sampled_image",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_multiview",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_NV_external_memory",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_NV_external_memory_capabilities",
+            } } } } },
 #if defined( VK_USE_PLATFORM_WIN32_KHR )
-      { "VK_NV_external_memory_win32", { { "VK_VERSION_1_0", { "VK_NV_external_memory" } } } },
-      { "VK_NV_win32_keyed_mutex", { { "VK_VERSION_1_0", { "VK_NV_external_memory_win32" } } } },
+      { "VK_NV_external_memory_win32",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_NV_external_memory",
+            } } } } },
+      { "VK_NV_win32_keyed_mutex",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_NV_external_memory_win32",
+            } } } } },
 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
-      { "VK_KHR_device_group", { { "VK_VERSION_1_0", { "VK_KHR_device_group_creation" } } } },
+      { "VK_KHR_device_group",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_device_group_creation",
+            } } } } },
 #if defined( VK_USE_PLATFORM_VI_NN )
-      { "VK_NN_vi_surface", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
+      { "VK_NN_vi_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
 #endif /*VK_USE_PLATFORM_VI_NN*/
-      { "VK_EXT_texture_compression_astc_hdr", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_astc_decode_mode", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_pipeline_robustness", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_external_memory_capabilities", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_external_memory", { { "VK_VERSION_1_0", { "VK_KHR_external_memory_capabilities" } } } },
+      { "VK_EXT_texture_compression_astc_hdr",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_astc_decode_mode",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_pipeline_robustness",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_external_memory_capabilities",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_external_memory",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_memory_capabilities",
+            } } } } },
 #if defined( VK_USE_PLATFORM_WIN32_KHR )
-      { "VK_KHR_external_memory_win32", { { "VK_VERSION_1_0", { "VK_KHR_external_memory" } } } },
+      { "VK_KHR_external_memory_win32",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_memory",
+            } } } } },
 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
-      { "VK_KHR_external_memory_fd", { { "VK_VERSION_1_0", { "VK_KHR_external_memory" } }, { "VK_VERSION_1_1", {} } } },
+      { "VK_KHR_external_memory_fd",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_memory",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
 #if defined( VK_USE_PLATFORM_WIN32_KHR )
-      { "VK_KHR_win32_keyed_mutex", { { "VK_VERSION_1_0", { "VK_KHR_external_memory_win32" } } } },
+      { "VK_KHR_win32_keyed_mutex",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_memory_win32",
+            } } } } },
 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
-      { "VK_KHR_external_semaphore_capabilities", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_external_semaphore", { { "VK_VERSION_1_0", { "VK_KHR_external_semaphore_capabilities" } } } },
+      { "VK_KHR_external_semaphore_capabilities",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_external_semaphore",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_semaphore_capabilities",
+            } } } } },
 #if defined( VK_USE_PLATFORM_WIN32_KHR )
-      { "VK_KHR_external_semaphore_win32", { { "VK_VERSION_1_0", { "VK_KHR_external_semaphore" } } } },
+      { "VK_KHR_external_semaphore_win32",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_semaphore",
+            } } } } },
 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
-      { "VK_KHR_external_semaphore_fd", { { "VK_VERSION_1_0", { "VK_KHR_external_semaphore" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_KHR_push_descriptor", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_conditional_rendering", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_shader_float16_int8", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_16bit_storage", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2", "VK_KHR_storage_buffer_storage_class" } } } },
-      { "VK_KHR_incremental_present", { { "VK_VERSION_1_0", { "VK_KHR_swapchain" } } } },
-      { "VK_EXT_direct_mode_display", { { "VK_VERSION_1_0", { "VK_KHR_display" } } } },
+      { "VK_KHR_external_semaphore_fd",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_semaphore",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_push_descriptor",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_conditional_rendering",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_shader_float16_int8",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_16bit_storage",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_storage_buffer_storage_class",
+            } } } } },
+      { "VK_KHR_incremental_present",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+            } } } } },
+      { "VK_EXT_direct_mode_display",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_display",
+            } } } } },
 #if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
-      { "VK_EXT_acquire_xlib_display", { { "VK_VERSION_1_0", { "VK_EXT_direct_mode_display" } } } },
+      { "VK_EXT_acquire_xlib_display",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_direct_mode_display",
+            } } } } },
 #endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
-      { "VK_EXT_display_surface_counter", { { "VK_VERSION_1_0", { "VK_KHR_display" } } } },
-      { "VK_EXT_display_control", { { "VK_VERSION_1_0", { "VK_EXT_display_surface_counter", "VK_KHR_swapchain" } } } },
-      { "VK_GOOGLE_display_timing", { { "VK_VERSION_1_0", { "VK_KHR_swapchain" } } } },
-      { "VK_NVX_multiview_per_view_attributes", { { "VK_VERSION_1_0", { "VK_KHR_multiview" } } } },
-      { "VK_EXT_discard_rectangles", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_conservative_rasterization", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_depth_clip_enable", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_swapchain_colorspace", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
-      { "VK_EXT_hdr_metadata", { { "VK_VERSION_1_0", { "VK_KHR_swapchain" } } } },
+      { "VK_EXT_display_surface_counter",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_display",
+            } } } } },
+      { "VK_EXT_display_control",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_display_surface_counter",
+              "VK_KHR_swapchain",
+            } } } } },
+      { "VK_GOOGLE_display_timing",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+            } } } } },
+      { "VK_NVX_multiview_per_view_attributes",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_multiview",
+            } } } } },
+      { "VK_EXT_discard_rectangles",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_conservative_rasterization",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_depth_clip_enable",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_swapchain_colorspace",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+      { "VK_EXT_hdr_metadata",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+            } } } } },
       { "VK_KHR_imageless_framebuffer",
-        { { "VK_VERSION_1_0", { "VK_KHR_maintenance2", "VK_KHR_image_format_list", "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_create_renderpass2", { { "VK_VERSION_1_0", { "VK_KHR_multiview", "VK_KHR_maintenance2" } } } },
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_maintenance2",
+              "VK_KHR_image_format_list",
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_create_renderpass2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_multiview",
+              "VK_KHR_maintenance2",
+            } } } } },
       { "VK_KHR_shared_presentable_image",
-        { { "VK_VERSION_1_0", { "VK_KHR_swapchain", "VK_KHR_get_surface_capabilities2", "VK_KHR_get_physical_device_properties2" } },
-          { "VK_VERSION_1_1", { "VK_KHR_swapchain", "VK_KHR_get_surface_capabilities2" } } } },
-      { "VK_KHR_external_fence_capabilities", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_external_fence", { { "VK_VERSION_1_0", { "VK_KHR_external_fence_capabilities" } } } },
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+              "VK_KHR_get_surface_capabilities2",
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_swapchain",
+              "VK_KHR_get_surface_capabilities2",
+            } } } } },
+      { "VK_KHR_external_fence_capabilities",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_external_fence",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_fence_capabilities",
+            } } } } },
 #if defined( VK_USE_PLATFORM_WIN32_KHR )
-      { "VK_KHR_external_fence_win32", { { "VK_VERSION_1_0", { "VK_KHR_external_fence" } } } },
+      { "VK_KHR_external_fence_win32",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_fence",
+            } } } } },
 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
-      { "VK_KHR_external_fence_fd", { { "VK_VERSION_1_0", { "VK_KHR_external_fence" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_KHR_performance_query", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_KHR_get_surface_capabilities2", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
-      { "VK_KHR_variable_pointers", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2", "VK_KHR_storage_buffer_storage_class" } } } },
-      { "VK_KHR_get_display_properties2", { { "VK_VERSION_1_0", { "VK_KHR_display" } } } },
+      { "VK_KHR_external_fence_fd",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_fence",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_performance_query",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_get_surface_capabilities2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+      { "VK_KHR_variable_pointers",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_storage_buffer_storage_class",
+            } } } } },
+      { "VK_KHR_get_display_properties2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_display",
+            } } } } },
 #if defined( VK_USE_PLATFORM_IOS_MVK )
-      { "VK_MVK_ios_surface", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
+      { "VK_MVK_ios_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
 #endif /*VK_USE_PLATFORM_IOS_MVK*/
 #if defined( VK_USE_PLATFORM_MACOS_MVK )
-      { "VK_MVK_macos_surface", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
+      { "VK_MVK_macos_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
 #endif /*VK_USE_PLATFORM_MACOS_MVK*/
-      { "VK_EXT_external_memory_dma_buf", { { "VK_VERSION_1_0", { "VK_KHR_external_memory_fd" } } } },
-      { "VK_EXT_queue_family_foreign", { { "VK_VERSION_1_0", { "VK_KHR_external_memory" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_KHR_dedicated_allocation", { { "VK_VERSION_1_0", { "VK_KHR_get_memory_requirements2" } } } },
+      { "VK_EXT_external_memory_dma_buf",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_memory_fd",
+            } } } } },
+      { "VK_EXT_queue_family_foreign",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_memory",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_dedicated_allocation",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_memory_requirements2",
+            } } } } },
 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
       { "VK_ANDROID_external_memory_android_hardware_buffer",
         { { "VK_VERSION_1_0",
-            { "VK_KHR_sampler_ycbcr_conversion", "VK_KHR_external_memory", "VK_EXT_queue_family_foreign", "VK_KHR_dedicated_allocation" } } } },
+            { {
+              "VK_KHR_sampler_ycbcr_conversion",
+              "VK_KHR_external_memory",
+              "VK_EXT_queue_family_foreign",
+              "VK_KHR_dedicated_allocation",
+            } } } } },
 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
-      { "VK_EXT_sampler_filter_minmax", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_inline_uniform_block", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2", "VK_KHR_maintenance1" } } } },
-      { "VK_EXT_sample_locations", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_blend_operation_advanced", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
+      { "VK_EXT_sampler_filter_minmax",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_inline_uniform_block",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_maintenance1",
+            } } } } },
+      { "VK_EXT_sample_locations",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_blend_operation_advanced",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
       { "VK_KHR_acceleration_structure",
-        { { "VK_VERSION_1_1", { "VK_EXT_descriptor_indexing", "VK_KHR_buffer_device_address", "VK_KHR_deferred_host_operations" } } } },
-      { "VK_KHR_ray_tracing_pipeline", { { "VK_VERSION_1_0", { "VK_KHR_spirv_1_4", "VK_KHR_acceleration_structure" } } } },
-      { "VK_KHR_ray_query", { { "VK_VERSION_1_0", { "VK_KHR_spirv_1_4", "VK_KHR_acceleration_structure" } } } },
-      { "VK_NV_shader_sm_builtins", { { "VK_VERSION_1_1", {} } } },
+        { { "VK_VERSION_1_1",
+            { {
+              "VK_EXT_descriptor_indexing",
+              "VK_KHR_buffer_device_address",
+              "VK_KHR_deferred_host_operations",
+            } } } } },
+      { "VK_KHR_ray_tracing_pipeline",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_spirv_1_4",
+              "VK_KHR_acceleration_structure",
+            } } } } },
+      { "VK_KHR_ray_query",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_spirv_1_4",
+              "VK_KHR_acceleration_structure",
+            } } } } },
+      { "VK_NV_shader_sm_builtins", { { "VK_VERSION_1_1", { {} } } } },
       { "VK_KHR_sampler_ycbcr_conversion",
         { { "VK_VERSION_1_0",
-            { "VK_KHR_maintenance1", "VK_KHR_bind_memory2", "VK_KHR_get_memory_requirements2", "VK_KHR_get_physical_device_properties2" } } } },
+            { {
+              "VK_KHR_maintenance1",
+              "VK_KHR_bind_memory2",
+              "VK_KHR_get_memory_requirements2",
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
       { "VK_EXT_image_drm_format_modifier",
         { { "VK_VERSION_1_0",
-            { "VK_KHR_bind_memory2", "VK_KHR_get_physical_device_properties2", "VK_KHR_sampler_ycbcr_conversion", "VK_KHR_image_format_list" } },
-          { "VK_VERSION_1_1", { "VK_KHR_image_format_list" } },
-          { "VK_VERSION_1_2", {} } } },
-      { "VK_EXT_descriptor_indexing", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2", "VK_KHR_maintenance3" } } } },
+            { {
+              "VK_KHR_bind_memory2",
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_sampler_ycbcr_conversion",
+              "VK_KHR_image_format_list",
+            } } },
+          { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_image_format_list",
+            } } },
+          { "VK_VERSION_1_2", { {} } } } },
+      { "VK_EXT_descriptor_indexing",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_maintenance3",
+            } } } } },
 #if defined( VK_ENABLE_BETA_EXTENSIONS )
-      { "VK_KHR_portability_subset", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
+      { "VK_KHR_portability_subset",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
-      { "VK_NV_shading_rate_image", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_NV_ray_tracing", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2", "VK_KHR_get_memory_requirements2" } } } },
-      { "VK_NV_representative_fragment_test", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_maintenance3", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_shader_subgroup_extended_types", { { "VK_VERSION_1_1", {} } } },
-      { "VK_KHR_8bit_storage", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2", "VK_KHR_storage_buffer_storage_class" } } } },
-      { "VK_EXT_external_memory_host", { { "VK_VERSION_1_0", { "VK_KHR_external_memory" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_KHR_shader_atomic_int64", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_shader_clock", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_calibrated_timestamps", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_AMD_shader_core_properties", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_video_decode_h265", { { "VK_VERSION_1_0", { "VK_KHR_video_decode_queue" } } } },
-      { "VK_KHR_global_priority", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_vertex_attribute_divisor", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
+      { "VK_NV_shading_rate_image",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_NV_ray_tracing",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_get_memory_requirements2",
+            } } } } },
+      { "VK_NV_representative_fragment_test",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_maintenance3",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_shader_subgroup_extended_types", { { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_8bit_storage",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_storage_buffer_storage_class",
+            } } } } },
+      { "VK_EXT_external_memory_host",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_memory",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_shader_atomic_int64",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_shader_clock",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_calibrated_timestamps",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_AMD_shader_core_properties",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_video_decode_h265",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_video_decode_queue",
+            } } } } },
+      { "VK_KHR_global_priority",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_vertex_attribute_divisor",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
 #if defined( VK_USE_PLATFORM_GGP )
-      { "VK_GGP_frame_token", { { "VK_VERSION_1_0", { "VK_KHR_swapchain", "VK_GGP_stream_descriptor_surface" } } } },
+      { "VK_GGP_frame_token",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+              "VK_GGP_stream_descriptor_surface",
+            } } } } },
 #endif /*VK_USE_PLATFORM_GGP*/
-      { "VK_KHR_driver_properties", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_shader_float_controls", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_NV_shader_subgroup_partitioned", { { "VK_VERSION_1_1", {} } } },
-      { "VK_KHR_depth_stencil_resolve", { { "VK_VERSION_1_0", { "VK_KHR_create_renderpass2" } } } },
+      { "VK_KHR_driver_properties",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_shader_float_controls",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_NV_shader_subgroup_partitioned", { { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_depth_stencil_resolve",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_create_renderpass2",
+            } } } } },
       { "VK_KHR_swapchain_mutable_format",
-        { { "VK_VERSION_1_0", { "VK_KHR_swapchain", "VK_KHR_maintenance2", "VK_KHR_image_format_list" } },
-          { "VK_VERSION_1_1", { "VK_KHR_swapchain", "VK_KHR_image_format_list" } },
-          { "VK_VERSION_1_2", { "VK_KHR_swapchain" } } } },
-      { "VK_NV_compute_shader_derivatives", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_NV_mesh_shader", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_NV_fragment_shader_barycentric", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_NV_shader_image_footprint", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_NV_scissor_exclusive", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_NV_device_diagnostic_checkpoints", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_timeline_semaphore", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_INTEL_shader_integer_functions2", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_vulkan_memory_model", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_pci_bus_info", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+              "VK_KHR_maintenance2",
+              "VK_KHR_image_format_list",
+            } } },
+          { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_swapchain",
+              "VK_KHR_image_format_list",
+            } } },
+          { "VK_VERSION_1_2",
+            { {
+              "VK_KHR_swapchain",
+            } } } } },
+      { "VK_NV_compute_shader_derivatives",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_NV_mesh_shader",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_NV_fragment_shader_barycentric",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_NV_shader_image_footprint",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_NV_scissor_exclusive",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_NV_device_diagnostic_checkpoints",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_timeline_semaphore",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_INTEL_shader_integer_functions2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_vulkan_memory_model",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_pci_bus_info",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
       { "VK_AMD_display_native_hdr",
-        { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2", "VK_KHR_get_surface_capabilities2", "VK_KHR_swapchain" } } } },
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_get_surface_capabilities2",
+              "VK_KHR_swapchain",
+            } } } } },
 #if defined( VK_USE_PLATFORM_FUCHSIA )
-      { "VK_FUCHSIA_imagepipe_surface", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
+      { "VK_FUCHSIA_imagepipe_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
 #endif /*VK_USE_PLATFORM_FUCHSIA*/
-      { "VK_KHR_shader_terminate_invocation", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
+      { "VK_KHR_shader_terminate_invocation",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
 #if defined( VK_USE_PLATFORM_METAL_EXT )
-      { "VK_EXT_metal_surface", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
+      { "VK_EXT_metal_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
 #endif /*VK_USE_PLATFORM_METAL_EXT*/
-      { "VK_EXT_fragment_density_map", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_scalar_block_layout", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_subgroup_size_control", { { "VK_VERSION_1_1", {} } } },
+      { "VK_EXT_fragment_density_map",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_scalar_block_layout",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_subgroup_size_control", { { "VK_VERSION_1_1", { {} } } } },
       { "VK_KHR_fragment_shading_rate",
-        { { "VK_VERSION_1_0", { "VK_KHR_create_renderpass2", "VK_KHR_get_physical_device_properties2" } },
-          { "VK_VERSION_1_1", { "VK_KHR_create_renderpass2" } },
-          { "VK_VERSION_1_2", {} } } },
-      { "VK_AMD_shader_core_properties2", { { "VK_VERSION_1_0", { "VK_AMD_shader_core_properties" } } } },
-      { "VK_AMD_device_coherent_memory", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_shader_image_atomic_int64", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_KHR_spirv_1_4", { { "VK_VERSION_1_1", { "VK_KHR_shader_float_controls" } } } },
-      { "VK_EXT_memory_budget", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_memory_priority", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_surface_protected_capabilities", { { "VK_VERSION_1_1", { "VK_KHR_get_surface_capabilities2" } } } },
-      { "VK_NV_dedicated_allocation_image_aliasing", { { "VK_VERSION_1_0", { "VK_KHR_dedicated_allocation", "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_separate_depth_stencil_layouts", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2", "VK_KHR_create_renderpass2" } } } },
-      { "VK_EXT_buffer_device_address", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_present_wait", { { "VK_VERSION_1_0", { "VK_KHR_swapchain", "VK_KHR_present_id" } } } },
-      { "VK_NV_cooperative_matrix", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_NV_coverage_reduction_mode", { { "VK_VERSION_1_0", { "VK_NV_framebuffer_mixed_samples", "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_fragment_shader_interlock", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_ycbcr_image_arrays", { { "VK_VERSION_1_0", { "VK_KHR_sampler_ycbcr_conversion" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_KHR_uniform_buffer_standard_layout", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_provoking_vertex", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_create_renderpass2",
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_create_renderpass2",
+            } } },
+          { "VK_VERSION_1_2", { {} } } } },
+      { "VK_AMD_shader_core_properties2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_AMD_shader_core_properties",
+            } } } } },
+      { "VK_AMD_device_coherent_memory",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_shader_image_atomic_int64",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_spirv_1_4",
+        { { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_shader_float_controls",
+            } } } } },
+      { "VK_EXT_memory_budget",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_memory_priority",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_surface_protected_capabilities",
+        { { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_get_surface_capabilities2",
+            } } } } },
+      { "VK_NV_dedicated_allocation_image_aliasing",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_dedicated_allocation",
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_separate_depth_stencil_layouts",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_create_renderpass2",
+            } } } } },
+      { "VK_EXT_buffer_device_address",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_present_wait",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+              "VK_KHR_present_id",
+            } } } } },
+      { "VK_NV_cooperative_matrix",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_NV_coverage_reduction_mode",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_NV_framebuffer_mixed_samples",
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_fragment_shader_interlock",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_ycbcr_image_arrays",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_sampler_ycbcr_conversion",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_uniform_buffer_standard_layout",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_provoking_vertex",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
 #if defined( VK_USE_PLATFORM_WIN32_KHR )
       { "VK_EXT_full_screen_exclusive",
-        { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2", "VK_KHR_surface", "VK_KHR_get_surface_capabilities2", "VK_KHR_swapchain" } } } },
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_surface",
+              "VK_KHR_get_surface_capabilities2",
+              "VK_KHR_swapchain",
+            } } } } },
 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
-      { "VK_EXT_headless_surface", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
+      { "VK_EXT_headless_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
       { "VK_KHR_buffer_device_address",
-        { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2", "VK_KHR_device_group" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_line_rasterization", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_shader_atomic_float", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_host_query_reset", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_index_type_uint8", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_extended_dynamic_state", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_KHR_pipeline_executable_properties", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_shader_atomic_float2", { { "VK_VERSION_1_0", { "VK_EXT_shader_atomic_float" } } } },
-      { "VK_EXT_surface_maintenance1", { { "VK_VERSION_1_0", { "VK_KHR_surface", "VK_KHR_get_surface_capabilities2" } } } },
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_device_group",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_line_rasterization",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_shader_atomic_float",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_host_query_reset",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_index_type_uint8",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_extended_dynamic_state",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_pipeline_executable_properties",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_shader_atomic_float2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_shader_atomic_float",
+            } } } } },
+      { "VK_EXT_surface_maintenance1",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+              "VK_KHR_get_surface_capabilities2",
+            } } } } },
       { "VK_EXT_swapchain_maintenance1",
-        { { "VK_VERSION_1_0", { "VK_KHR_swapchain", "VK_EXT_surface_maintenance1", "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_shader_demote_to_helper_invocation", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_NV_device_generated_commands", { { "VK_VERSION_1_1", { "VK_KHR_buffer_device_address" } } } },
-      { "VK_NV_inherited_viewport_scissor", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_shader_integer_dot_product", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_texel_buffer_alignment", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_QCOM_render_pass_transform", { { "VK_VERSION_1_0", { "VK_KHR_swapchain", "VK_KHR_surface" } } } },
-      { "VK_EXT_device_memory_report", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_acquire_drm_display", { { "VK_VERSION_1_0", { "VK_EXT_direct_mode_display" } } } },
-      { "VK_EXT_robustness2", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_custom_border_color", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+              "VK_EXT_surface_maintenance1",
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_shader_demote_to_helper_invocation",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_NV_device_generated_commands",
+        { { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_buffer_device_address",
+            } } } } },
+      { "VK_NV_inherited_viewport_scissor",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_shader_integer_dot_product",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_texel_buffer_alignment",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_QCOM_render_pass_transform",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+              "VK_KHR_surface",
+            } } } } },
+      { "VK_EXT_device_memory_report",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_acquire_drm_display",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_direct_mode_display",
+            } } } } },
+      { "VK_EXT_robustness2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_custom_border_color",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
       { "VK_NV_present_barrier",
-        { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2", "VK_KHR_surface", "VK_KHR_get_surface_capabilities2", "VK_KHR_swapchain" } } } },
-      { "VK_KHR_present_id", { { "VK_VERSION_1_0", { "VK_KHR_swapchain", "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_private_data", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_pipeline_creation_cache_control", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_surface",
+              "VK_KHR_get_surface_capabilities2",
+              "VK_KHR_swapchain",
+            } } } } },
+      { "VK_KHR_present_id",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_private_data",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_pipeline_creation_cache_control",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
 #if defined( VK_ENABLE_BETA_EXTENSIONS )
-      { "VK_KHR_video_encode_queue", { { "VK_VERSION_1_0", { "VK_KHR_video_queue", "VK_KHR_synchronization2" } } } },
+      { "VK_KHR_video_encode_queue",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_video_queue",
+              "VK_KHR_synchronization2",
+            } } } } },
 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
-      { "VK_NV_device_diagnostics_config", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_synchronization2", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
+      { "VK_NV_device_diagnostics_config",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_synchronization2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
       { "VK_EXT_descriptor_buffer",
         { { "VK_VERSION_1_0",
-            { "VK_KHR_get_physical_device_properties2", "VK_KHR_buffer_device_address", "VK_KHR_synchronization2", "VK_EXT_descriptor_indexing" } } } },
-      { "VK_EXT_graphics_pipeline_library", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2", "VK_KHR_pipeline_library" } } } },
-      { "VK_AMD_shader_early_and_late_fragment_tests", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_fragment_shader_barycentric", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_shader_subgroup_uniform_control_flow", { { "VK_VERSION_1_1", {} } } },
-      { "VK_KHR_zero_initialize_workgroup_memory", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_NV_fragment_shading_rate_enums", { { "VK_VERSION_1_0", { "VK_KHR_fragment_shading_rate" } } } },
-      { "VK_NV_ray_tracing_motion_blur", { { "VK_VERSION_1_0", { "VK_KHR_ray_tracing_pipeline" } } } },
-      { "VK_EXT_mesh_shader", { { "VK_VERSION_1_0", { "VK_KHR_spirv_1_4" } } } },
-      { "VK_EXT_ycbcr_2plane_444_formats", { { "VK_VERSION_1_0", { "VK_KHR_sampler_ycbcr_conversion" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_fragment_density_map2", { { "VK_VERSION_1_0", { "VK_EXT_fragment_density_map" } } } },
-      { "VK_QCOM_rotated_copy_commands", { { "VK_VERSION_1_0", { "VK_KHR_swapchain", "VK_KHR_copy_commands2" } } } },
-      { "VK_EXT_image_robustness", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_KHR_workgroup_memory_explicit_layout", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_copy_commands2", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_image_compression_control", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_attachment_feedback_loop_layout", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_4444_formats", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_device_fault", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_ARM_rasterization_order_attachment_access", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_rgba10x6_formats", { { "VK_VERSION_1_0", { "VK_KHR_sampler_ycbcr_conversion" } } } },
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_buffer_device_address",
+              "VK_KHR_synchronization2",
+              "VK_EXT_descriptor_indexing",
+            } } } } },
+      { "VK_EXT_graphics_pipeline_library",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_pipeline_library",
+            } } } } },
+      { "VK_AMD_shader_early_and_late_fragment_tests",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_fragment_shader_barycentric",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_shader_subgroup_uniform_control_flow", { { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_zero_initialize_workgroup_memory",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_NV_fragment_shading_rate_enums",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_fragment_shading_rate",
+            } } } } },
+      { "VK_NV_ray_tracing_motion_blur",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_ray_tracing_pipeline",
+            } } } } },
+      { "VK_EXT_mesh_shader",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_spirv_1_4",
+            } } } } },
+      { "VK_EXT_ycbcr_2plane_444_formats",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_sampler_ycbcr_conversion",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_fragment_density_map2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_fragment_density_map",
+            } } } } },
+      { "VK_QCOM_rotated_copy_commands",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+              "VK_KHR_copy_commands2",
+            } } } } },
+      { "VK_EXT_image_robustness",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_workgroup_memory_explicit_layout",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_copy_commands2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_image_compression_control",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_attachment_feedback_loop_layout",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_4444_formats",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_device_fault",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_ARM_rasterization_order_attachment_access",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_rgba10x6_formats",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_sampler_ycbcr_conversion",
+            } } } } },
 #if defined( VK_USE_PLATFORM_WIN32_KHR )
-      { "VK_NV_acquire_winrt_display", { { "VK_VERSION_1_0", { "VK_EXT_direct_mode_display" } } } },
+      { "VK_NV_acquire_winrt_display",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_direct_mode_display",
+            } } } } },
 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
-      { "VK_EXT_directfb_surface", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
+      { "VK_EXT_directfb_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
 #endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
-      { "VK_VALVE_mutable_descriptor_type", { { "VK_VERSION_1_0", { "VK_KHR_maintenance3" } } } },
-      { "VK_EXT_vertex_input_dynamic_state", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_physical_device_drm", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_device_address_binding_report", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2", "VK_EXT_debug_utils" } } } },
-      { "VK_EXT_depth_clip_control", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_primitive_topology_list_restart", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_format_feature_flags2", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
+      { "VK_VALVE_mutable_descriptor_type",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_maintenance3",
+            } } } } },
+      { "VK_EXT_vertex_input_dynamic_state",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_physical_device_drm",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_device_address_binding_report",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_EXT_debug_utils",
+            } } } } },
+      { "VK_EXT_depth_clip_control",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_primitive_topology_list_restart",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_format_feature_flags2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
 #if defined( VK_USE_PLATFORM_FUCHSIA )
-      { "VK_FUCHSIA_external_memory", { { "VK_VERSION_1_0", { "VK_KHR_external_memory_capabilities", "VK_KHR_external_memory" } } } },
-      { "VK_FUCHSIA_external_semaphore", { { "VK_VERSION_1_0", { "VK_KHR_external_semaphore_capabilities", "VK_KHR_external_semaphore" } } } },
-      { "VK_FUCHSIA_buffer_collection", { { "VK_VERSION_1_0", { "VK_FUCHSIA_external_memory", "VK_KHR_sampler_ycbcr_conversion" } } } },
+      { "VK_FUCHSIA_external_memory",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_memory_capabilities",
+              "VK_KHR_external_memory",
+            } } } } },
+      { "VK_FUCHSIA_external_semaphore",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_semaphore_capabilities",
+              "VK_KHR_external_semaphore",
+            } } } } },
+      { "VK_FUCHSIA_buffer_collection",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_FUCHSIA_external_memory",
+              "VK_KHR_sampler_ycbcr_conversion",
+            } } } } },
 #endif /*VK_USE_PLATFORM_FUCHSIA*/
-      { "VK_HUAWEI_subpass_shading", { { "VK_VERSION_1_0", { "VK_KHR_create_renderpass2", "VK_KHR_synchronization2" } } } },
-      { "VK_HUAWEI_invocation_mask", { { "VK_VERSION_1_0", { "VK_KHR_ray_tracing_pipeline", "VK_KHR_synchronization2" } } } },
-      { "VK_NV_external_memory_rdma", { { "VK_VERSION_1_0", { "VK_KHR_external_memory" } } } },
-      { "VK_EXT_pipeline_properties", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_multisampled_render_to_single_sampled", { { "VK_VERSION_1_0", { "VK_KHR_create_renderpass2", "VK_KHR_depth_stencil_resolve" } } } },
-      { "VK_EXT_extended_dynamic_state2", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
+      { "VK_HUAWEI_subpass_shading",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_create_renderpass2",
+              "VK_KHR_synchronization2",
+            } } } } },
+      { "VK_HUAWEI_invocation_mask",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_ray_tracing_pipeline",
+              "VK_KHR_synchronization2",
+            } } } } },
+      { "VK_NV_external_memory_rdma",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_memory",
+            } } } } },
+      { "VK_EXT_pipeline_properties",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_multisampled_render_to_single_sampled",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_create_renderpass2",
+              "VK_KHR_depth_stencil_resolve",
+            } } } } },
+      { "VK_EXT_extended_dynamic_state2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
-      { "VK_QNX_screen_surface", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
+      { "VK_QNX_screen_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
 #endif /*VK_USE_PLATFORM_SCREEN_QNX*/
-      { "VK_EXT_color_write_enable", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_primitives_generated_query", { { "VK_VERSION_1_0", { "VK_EXT_transform_feedback" } } } },
-      { "VK_KHR_ray_tracing_maintenance1", { { "VK_VERSION_1_0", { "VK_KHR_acceleration_structure" } } } },
-      { "VK_EXT_global_priority_query", { { "VK_VERSION_1_0", { "VK_EXT_global_priority", "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_image_view_min_lod", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_multi_draw", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_image_2d_view_of_3d", { { "VK_VERSION_1_0", { "VK_KHR_maintenance1", "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_shader_tile_image", { { "VK_VERSION_1_3", {} } } },
-      { "VK_EXT_opacity_micromap", { { "VK_VERSION_1_0", { "VK_KHR_acceleration_structure", "VK_KHR_synchronization2" } } } },
+      { "VK_EXT_color_write_enable",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_primitives_generated_query",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_transform_feedback",
+            } } } } },
+      { "VK_KHR_ray_tracing_maintenance1",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_acceleration_structure",
+            } } } } },
+      { "VK_EXT_global_priority_query",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_global_priority",
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_image_view_min_lod",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_multi_draw",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_image_2d_view_of_3d",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_maintenance1",
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_shader_tile_image", { { "VK_VERSION_1_3", { {} } } } },
+      { "VK_EXT_opacity_micromap",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_acceleration_structure",
+              "VK_KHR_synchronization2",
+            } } } } },
 #if defined( VK_ENABLE_BETA_EXTENSIONS )
-      { "VK_NV_displacement_micromap", { { "VK_VERSION_1_0", { "VK_EXT_opacity_micromap" } } } },
+      { "VK_NV_displacement_micromap",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_opacity_micromap",
+            } } } } },
 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
-      { "VK_HUAWEI_cluster_culling_shader", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_border_color_swizzle", { { "VK_VERSION_1_0", { "VK_EXT_custom_border_color" } } } },
-      { "VK_EXT_pageable_device_local_memory", { { "VK_VERSION_1_0", { "VK_EXT_memory_priority" } } } },
-      { "VK_KHR_maintenance4", { { "VK_VERSION_1_1", {} } } },
-      { "VK_ARM_shader_core_properties", { { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_image_sliced_view_of_3d", { { "VK_VERSION_1_0", { "VK_KHR_maintenance1", "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_VALVE_descriptor_set_host_mapping", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_depth_clamp_zero_one", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_non_seamless_cube_map", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_QCOM_fragment_density_map_offset", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2", "VK_EXT_fragment_density_map" } } } },
-      { "VK_NV_copy_memory_indirect", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2", "VK_KHR_buffer_device_address" } } } },
-      { "VK_NV_memory_decompression", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2", "VK_KHR_buffer_device_address" } } } },
-      { "VK_NV_linear_color_attachment", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_GOOGLE_surfaceless_query", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
-      { "VK_EXT_image_compression_control_swapchain", { { "VK_VERSION_1_0", { "VK_EXT_image_compression_control" } } } },
-      { "VK_QCOM_image_processing", { { "VK_VERSION_1_0", { "VK_KHR_format_feature_flags2" } } } },
-      { "VK_EXT_extended_dynamic_state3", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_subpass_merge_feedback", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_shader_module_identifier", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2", "VK_EXT_pipeline_creation_cache_control" } } } },
-      { "VK_EXT_rasterization_order_attachment_access", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
+      { "VK_HUAWEI_cluster_culling_shader",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_border_color_swizzle",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_custom_border_color",
+            } } } } },
+      { "VK_EXT_pageable_device_local_memory",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_memory_priority",
+            } } } } },
+      { "VK_KHR_maintenance4", { { "VK_VERSION_1_1", { {} } } } },
+      { "VK_ARM_shader_core_properties", { { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_image_sliced_view_of_3d",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_maintenance1",
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_VALVE_descriptor_set_host_mapping",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_depth_clamp_zero_one",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_non_seamless_cube_map",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_QCOM_fragment_density_map_offset",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_EXT_fragment_density_map",
+            } } } } },
+      { "VK_NV_copy_memory_indirect",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_buffer_device_address",
+            } } } } },
+      { "VK_NV_memory_decompression",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_buffer_device_address",
+            } } } } },
+      { "VK_NV_linear_color_attachment",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_GOOGLE_surfaceless_query",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+      { "VK_EXT_image_compression_control_swapchain",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_image_compression_control",
+            } } } } },
+      { "VK_QCOM_image_processing",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_format_feature_flags2",
+            } } } } },
+      { "VK_EXT_extended_dynamic_state3",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_subpass_merge_feedback",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_shader_module_identifier",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_EXT_pipeline_creation_cache_control",
+            } } } } },
+      { "VK_EXT_rasterization_order_attachment_access",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
       { "VK_NV_optical_flow",
-        { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2", "VK_KHR_format_feature_flags2", "VK_KHR_synchronization2" } } } },
-      { "VK_EXT_legacy_dithering", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_pipeline_protected_access", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_KHR_ray_tracing_position_fetch", { { "VK_VERSION_1_0", { "VK_KHR_acceleration_structure" } } } },
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_format_feature_flags2",
+              "VK_KHR_synchronization2",
+            } } } } },
+      { "VK_EXT_legacy_dithering",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_pipeline_protected_access",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_KHR_ray_tracing_position_fetch",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_acceleration_structure",
+            } } } } },
       { "VK_EXT_shader_object",
-        { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2", "VK_KHR_dynamic_rendering" } },
-          { "VK_VERSION_1_1", { "VK_KHR_dynamic_rendering" } },
-          { "VK_VERSION_1_3", {} } } },
-      { "VK_QCOM_tile_properties", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_SEC_amigo_profiling", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_QCOM_multiview_per_view_viewports", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_NV_ray_tracing_invocation_reorder", { { "VK_VERSION_1_0", { "VK_KHR_ray_tracing_pipeline" } } } },
-      { "VK_EXT_mutable_descriptor_type", { { "VK_VERSION_1_0", { "VK_KHR_maintenance3" } } } },
-      { "VK_ARM_shader_core_builtins", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } } } },
-      { "VK_EXT_pipeline_library_group_handles", { { "VK_VERSION_1_0", { "VK_KHR_ray_tracing_pipeline", "VK_KHR_pipeline_library" } } } },
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_dynamic_rendering",
+            } } },
+          { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_dynamic_rendering",
+            } } },
+          { "VK_VERSION_1_3", { {} } } } },
+      { "VK_QCOM_tile_properties",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_SEC_amigo_profiling",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_QCOM_multiview_per_view_viewports",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_NV_ray_tracing_invocation_reorder",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_ray_tracing_pipeline",
+            } } } } },
+      { "VK_EXT_mutable_descriptor_type",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_maintenance3",
+            } } } } },
+      { "VK_ARM_shader_core_builtins",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } } } },
+      { "VK_EXT_pipeline_library_group_handles",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_ray_tracing_pipeline",
+              "VK_KHR_pipeline_library",
+            } } } } },
       { "VK_EXT_attachment_feedback_loop_dynamic_state",
-        { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2", "VK_EXT_attachment_feedback_loop_layout" } } } }
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+              "VK_EXT_attachment_feedback_loop_layout",
+            } } } } }
     };
     auto depIt = dependencies.find( extension );
     return ( depIt != dependencies.end() ) ? depIt->second : noDependencies;
   }
 
-  VULKAN_HPP_INLINE std::pair<bool, std::vector<std::string> const &> getExtensionDepends( std::string const & version, std::string const & extension )
+  VULKAN_HPP_INLINE std::pair<bool, std::vector<std::vector<std::string>> const &> getExtensionDepends( std::string const & version,
+                                                                                                        std::string const & extension )
   {
 #if !defined( NDEBUG )
     static std::set<std::string> versions = { "VK_VERSION_1_0", "VK_VERSION_1_1", "VK_VERSION_1_2", "VK_VERSION_1_3" };
     assert( versions.find( version ) != versions.end() );
 #endif
-    static std::vector<std::string> noDependencies;
+    static std::vector<std::vector<std::string>> noDependencies;
 
-    std::map<std::string, std::vector<std::string>> const & dependencies = getExtensionDepends( extension );
+    std::map<std::string, std::vector<std::vector<std::string>>> const & dependencies = getExtensionDepends( extension );
     if ( dependencies.empty() )
     {
       return { true, noDependencies };
index 905c889..9872c79 100644 (file)
@@ -18,10 +18,10 @@ namespace VULKAN_HPP_NAMESPACE
   //=== Extension inspection functions ===
   //======================================
 
-  std::set<std::string> const &                           getDeviceExtensions();
-  std::set<std::string> const &                           getInstanceExtensions();
-  std::map<std::string, std::string> const &              getDeprecatedExtensions();
-  std::map<std::string, std::vector<std::string>> const & getExtensionDepends( std::string const & extension );
+  std::set<std::string> const &                                        getDeviceExtensions();
+  std::set<std::string> const &                                        getInstanceExtensions();
+  std::map<std::string, std::string> const &                           getDeprecatedExtensions();
+  std::map<std::string, std::vector<std::vector<std::string>>> const & getExtensionDepends( std::string const & extension );
 
   std::map<std::string, std::string> const & getObsoletedExtensions();
   std::map<std::string, std::string> const & getPromotedExtensions();
@@ -134,84 +134,364 @@ namespace VULKAN_HPP_NAMESPACE
     return instanceExtensions;
   }
 
-  VULKAN_HPP_INLINE std::map<std::string, std::vector<std::string>> const & getExtensionDepends( std::string const & extension )
+  VULKAN_HPP_INLINE std::map<std::string, std::vector<std::vector<std::string>>> const & getExtensionDepends( std::string const & extension )
   {
-    static std::map<std::string, std::vector<std::string>>                        noDependencies;
-    static std::map<std::string, std::map<std::string, std::vector<std::string>>> dependencies = {
-      { "VK_KHR_swapchain", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
-      { "VK_KHR_display", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
-      { "VK_KHR_display_swapchain", { { "VK_VERSION_1_0", { "VK_KHR_swapchain", "VK_KHR_display" } } } },
-      { "VK_EXT_texture_compression_astc_hdr", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_astc_decode_mode", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_KHR_external_memory_fd", { { "VK_VERSION_1_0", { "VK_KHR_external_memory" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_KHR_external_semaphore_fd", { { "VK_VERSION_1_0", { "VK_KHR_external_semaphore" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_KHR_incremental_present", { { "VK_VERSION_1_0", { "VK_KHR_swapchain" } } } },
-      { "VK_EXT_direct_mode_display", { { "VK_VERSION_1_0", { "VK_KHR_display" } } } },
-      { "VK_EXT_display_surface_counter", { { "VK_VERSION_1_0", { "VK_KHR_display" } } } },
-      { "VK_EXT_display_control", { { "VK_VERSION_1_0", { "VK_EXT_display_surface_counter", "VK_KHR_swapchain" } } } },
-      { "VK_EXT_discard_rectangles", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_conservative_rasterization", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_depth_clip_enable", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_swapchain_colorspace", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
-      { "VK_EXT_hdr_metadata", { { "VK_VERSION_1_0", { "VK_KHR_swapchain" } } } },
+    static std::map<std::string, std::vector<std::vector<std::string>>>                        noDependencies;
+    static std::map<std::string, std::map<std::string, std::vector<std::vector<std::string>>>> dependencies = {
+      { "VK_KHR_swapchain",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+      { "VK_KHR_display",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+      { "VK_KHR_display_swapchain",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+              "VK_KHR_display",
+            } } } } },
+      { "VK_EXT_texture_compression_astc_hdr",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_astc_decode_mode",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_external_memory_fd",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_memory",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_external_semaphore_fd",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_semaphore",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_incremental_present",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+            } } } } },
+      { "VK_EXT_direct_mode_display",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_display",
+            } } } } },
+      { "VK_EXT_display_surface_counter",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_display",
+            } } } } },
+      { "VK_EXT_display_control",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_EXT_display_surface_counter",
+              "VK_KHR_swapchain",
+            } } } } },
+      { "VK_EXT_discard_rectangles",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_conservative_rasterization",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_depth_clip_enable",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_swapchain_colorspace",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+      { "VK_EXT_hdr_metadata",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+            } } } } },
       { "VK_KHR_shared_presentable_image",
-        { { "VK_VERSION_1_0", { "VK_KHR_swapchain", "VK_KHR_get_surface_capabilities2", "VK_KHR_get_physical_device_properties2" } },
-          { "VK_VERSION_1_1", { "VK_KHR_swapchain", "VK_KHR_get_surface_capabilities2" } } } },
-      { "VK_KHR_external_fence_fd", { { "VK_VERSION_1_0", { "VK_KHR_external_fence" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_KHR_performance_query", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_KHR_get_surface_capabilities2", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
-      { "VK_KHR_get_display_properties2", { { "VK_VERSION_1_0", { "VK_KHR_display" } } } },
-      { "VK_EXT_external_memory_dma_buf", { { "VK_VERSION_1_0", { "VK_KHR_external_memory_fd" } } } },
-      { "VK_EXT_queue_family_foreign", { { "VK_VERSION_1_0", { "VK_KHR_external_memory" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_sample_locations", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_blend_operation_advanced", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+              "VK_KHR_get_surface_capabilities2",
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_swapchain",
+              "VK_KHR_get_surface_capabilities2",
+            } } } } },
+      { "VK_KHR_external_fence_fd",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_fence",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_performance_query",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_get_surface_capabilities2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+      { "VK_KHR_get_display_properties2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_display",
+            } } } } },
+      { "VK_EXT_external_memory_dma_buf",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_memory_fd",
+            } } } } },
+      { "VK_EXT_queue_family_foreign",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_memory",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_sample_locations",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_blend_operation_advanced",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
       { "VK_EXT_image_drm_format_modifier",
         { { "VK_VERSION_1_0",
-            { "VK_KHR_bind_memory2", "VK_KHR_get_physical_device_properties2", "VK_KHR_sampler_ycbcr_conversion", "VK_KHR_image_format_list" } },
-          { "VK_VERSION_1_1", { "VK_KHR_image_format_list" } },
-          { "VK_VERSION_1_2", {} } } },
-      { "VK_EXT_external_memory_host", { { "VK_VERSION_1_0", { "VK_KHR_external_memory" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_KHR_shader_clock", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_calibrated_timestamps", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_vertex_attribute_divisor", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
+            { {
+              "VK_KHR_bind_memory2",
+              "VK_KHR_get_physical_device_properties2",
+              "VK_KHR_sampler_ycbcr_conversion",
+              "VK_KHR_image_format_list",
+            } } },
+          { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_image_format_list",
+            } } },
+          { "VK_VERSION_1_2", { {} } } } },
+      { "VK_EXT_external_memory_host",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_external_memory",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_shader_clock",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_calibrated_timestamps",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_vertex_attribute_divisor",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
       { "VK_KHR_swapchain_mutable_format",
-        { { "VK_VERSION_1_0", { "VK_KHR_swapchain", "VK_KHR_maintenance2", "VK_KHR_image_format_list" } },
-          { "VK_VERSION_1_1", { "VK_KHR_swapchain", "VK_KHR_image_format_list" } },
-          { "VK_VERSION_1_2", { "VK_KHR_swapchain" } } } },
-      { "VK_EXT_pci_bus_info", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_KHR_shader_terminate_invocation", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_subgroup_size_control", { { "VK_VERSION_1_1", {} } } },
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_swapchain",
+              "VK_KHR_maintenance2",
+              "VK_KHR_image_format_list",
+            } } },
+          { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_swapchain",
+              "VK_KHR_image_format_list",
+            } } },
+          { "VK_VERSION_1_2",
+            { {
+              "VK_KHR_swapchain",
+            } } } } },
+      { "VK_EXT_pci_bus_info",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_shader_terminate_invocation",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_subgroup_size_control", { { "VK_VERSION_1_1", { {} } } } },
       { "VK_KHR_fragment_shading_rate",
-        { { "VK_VERSION_1_0", { "VK_KHR_create_renderpass2", "VK_KHR_get_physical_device_properties2" } },
-          { "VK_VERSION_1_1", { "VK_KHR_create_renderpass2" } },
-          { "VK_VERSION_1_2", {} } } },
-      { "VK_EXT_shader_image_atomic_int64", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_memory_budget", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_fragment_shader_interlock", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_ycbcr_image_arrays", { { "VK_VERSION_1_0", { "VK_KHR_sampler_ycbcr_conversion" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_headless_surface", { { "VK_VERSION_1_0", { "VK_KHR_surface" } } } },
-      { "VK_EXT_line_rasterization", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_shader_atomic_float", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_index_type_uint8", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_extended_dynamic_state", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_shader_demote_to_helper_invocation", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_texel_buffer_alignment", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_robustness2", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_custom_border_color", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_KHR_synchronization2", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_ycbcr_2plane_444_formats", { { "VK_VERSION_1_0", { "VK_KHR_sampler_ycbcr_conversion" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_image_robustness", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_KHR_copy_commands2", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_4444_formats", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_vertex_input_dynamic_state", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_create_renderpass2",
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1",
+            { {
+              "VK_KHR_create_renderpass2",
+            } } },
+          { "VK_VERSION_1_2", { {} } } } },
+      { "VK_EXT_shader_image_atomic_int64",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_memory_budget",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_fragment_shader_interlock",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_ycbcr_image_arrays",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_sampler_ycbcr_conversion",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_headless_surface",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_surface",
+            } } } } },
+      { "VK_EXT_line_rasterization",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_shader_atomic_float",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_index_type_uint8",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_extended_dynamic_state",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_shader_demote_to_helper_invocation",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_texel_buffer_alignment",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_robustness2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_custom_border_color",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_synchronization2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_ycbcr_2plane_444_formats",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_sampler_ycbcr_conversion",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_image_robustness",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_KHR_copy_commands2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_4444_formats",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_vertex_input_dynamic_state",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
 #if defined( VK_USE_PLATFORM_SCI )
-      { "VK_NV_external_sci_sync", { { "VK_VERSION_1_1", {} } } },
-      { "VK_NV_external_memory_sci_buf", { { "VK_VERSION_1_1", {} } } },
+      { "VK_NV_external_sci_sync", { { "VK_VERSION_1_1", { {} } } } },
+      { "VK_NV_external_memory_sci_buf", { { "VK_VERSION_1_1", { {} } } } },
 #endif /*VK_USE_PLATFORM_SCI*/
-      { "VK_EXT_extended_dynamic_state2", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
-      { "VK_EXT_color_write_enable", { { "VK_VERSION_1_0", { "VK_KHR_get_physical_device_properties2" } }, { "VK_VERSION_1_1", {} } } },
+      { "VK_EXT_extended_dynamic_state2",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_color_write_enable",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
+          { "VK_VERSION_1_1", { {} } } } },
 #if defined( VK_USE_PLATFORM_SCI )
-      { "VK_NV_external_sci_sync2", { { "VK_VERSION_1_1", {} } } }
+      { "VK_NV_external_sci_sync2", { { "VK_VERSION_1_1", { {} } } } }
 #endif /*VK_USE_PLATFORM_SCI*/
     };
     auto depIt = dependencies.find( extension );