Update for Vulkan-Docs 1.3.296
diff --git a/include/vulkan/vulkan.cppm b/include/vulkan/vulkan.cppm
index 60b70f0..48b685b 100644
--- a/include/vulkan/vulkan.cppm
+++ b/include/vulkan/vulkan.cppm
@@ -10,6 +10,12 @@
 
 module;
 
+#include <vulkan/vulkan_hpp_macros.hpp>
+
+#if defined( __cpp_lib_modules )
+#  define VULKAN_HPP_ENABLE_STD_MODULE
+#endif
+
 #include <vulkan/vulkan.hpp>
 #include <vulkan/vulkan_extension_inspection.hpp>
 #include <vulkan/vulkan_format_traits.hpp>
@@ -879,6 +885,17 @@
   //=== VK_KHR_maintenance7 ===
   using VULKAN_HPP_NAMESPACE::PhysicalDeviceLayeredApiKHR;
 
+  //=== VK_EXT_device_generated_commands ===
+  using VULKAN_HPP_NAMESPACE::IndirectCommandsInputModeFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::IndirectCommandsInputModeFlagsEXT;
+  using VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagBitsEXT;
+  using VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsEXT;
+  using VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeEXT;
+  using VULKAN_HPP_NAMESPACE::IndirectExecutionSetInfoTypeEXT;
+
+  //=== VK_EXT_depth_clamp_control ===
+  using VULKAN_HPP_NAMESPACE::DepthClampModeEXT;
+
   //=========================
   //=== Index Type Traits ===
   //=========================
@@ -2572,14 +2589,23 @@
   using VULKAN_HPP_NAMESPACE::NVRayTracingValidationExtensionName;
   using VULKAN_HPP_NAMESPACE::NVRayTracingValidationSpecVersion;
 
+  //=== VK_EXT_device_generated_commands ===
+  using VULKAN_HPP_NAMESPACE::EXTDeviceGeneratedCommandsExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTDeviceGeneratedCommandsSpecVersion;
+
   //=== VK_MESA_image_alignment_control ===
   using VULKAN_HPP_NAMESPACE::MESAImageAlignmentControlExtensionName;
   using VULKAN_HPP_NAMESPACE::MESAImageAlignmentControlSpecVersion;
 
+  //=== VK_EXT_depth_clamp_control ===
+  using VULKAN_HPP_NAMESPACE::EXTDepthClampControlExtensionName;
+  using VULKAN_HPP_NAMESPACE::EXTDepthClampControlSpecVersion;
+
   //========================
   //=== CONSTEXPR VALUEs ===
   //========================
   using VULKAN_HPP_NAMESPACE::HeaderVersion;
+  using VULKAN_HPP_NAMESPACE::Use64BitPtrDefines;
 
   //=========================
   //=== CONSTEXPR CALLEEs ===
@@ -4463,11 +4489,41 @@
   //=== VK_NV_ray_tracing_validation ===
   using VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingValidationFeaturesNV;
 
+  //=== VK_EXT_device_generated_commands ===
+  using VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandEXT;
+  using VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandEXT;
+  using VULKAN_HPP_NAMESPACE::DrawIndirectCountIndirectCommandEXT;
+  using VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT;
+  using VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoEXT;
+  using VULKAN_HPP_NAMESPACE::GeneratedCommandsPipelineInfoEXT;
+  using VULKAN_HPP_NAMESPACE::GeneratedCommandsShaderInfoEXT;
+  using VULKAN_HPP_NAMESPACE::IndirectCommandsExecutionSetTokenEXT;
+  using VULKAN_HPP_NAMESPACE::IndirectCommandsIndexBufferTokenEXT;
+  using VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenEXT;
+  using VULKAN_HPP_NAMESPACE::IndirectCommandsPushConstantTokenEXT;
+  using VULKAN_HPP_NAMESPACE::IndirectCommandsTokenDataEXT;
+  using VULKAN_HPP_NAMESPACE::IndirectCommandsVertexBufferTokenEXT;
+  using VULKAN_HPP_NAMESPACE::IndirectExecutionSetCreateInfoEXT;
+  using VULKAN_HPP_NAMESPACE::IndirectExecutionSetInfoEXT;
+  using VULKAN_HPP_NAMESPACE::IndirectExecutionSetPipelineInfoEXT;
+  using VULKAN_HPP_NAMESPACE::IndirectExecutionSetShaderInfoEXT;
+  using VULKAN_HPP_NAMESPACE::IndirectExecutionSetShaderLayoutInfoEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT;
+  using VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetPipelineEXT;
+  using VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetShaderEXT;
+
   //=== VK_MESA_image_alignment_control ===
   using VULKAN_HPP_NAMESPACE::ImageAlignmentControlCreateInfoMESA;
   using VULKAN_HPP_NAMESPACE::PhysicalDeviceImageAlignmentControlFeaturesMESA;
   using VULKAN_HPP_NAMESPACE::PhysicalDeviceImageAlignmentControlPropertiesMESA;
 
+  //=== VK_EXT_depth_clamp_control ===
+  using VULKAN_HPP_NAMESPACE::DepthClampRangeEXT;
+  using VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampControlFeaturesEXT;
+  using VULKAN_HPP_NAMESPACE::PipelineViewportDepthClampControlCreateInfoEXT;
+
   //===============
   //=== HANDLEs ===
   //===============
@@ -4573,6 +4629,10 @@
   //=== VK_KHR_pipeline_binary ===
   using VULKAN_HPP_NAMESPACE::PipelineBinaryKHR;
 
+  //=== VK_EXT_device_generated_commands ===
+  using VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT;
+  using VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT;
+
   //======================
   //=== UNIQUE HANDLEs ===
   //======================
@@ -4673,8 +4733,12 @@
   using VULKAN_HPP_NAMESPACE::UniqueShaderEXT;
 
   //=== VK_KHR_pipeline_binary ===
-  using VULKAN_HPP_NAMESPACE::UniqueHandleTraits;
   using VULKAN_HPP_NAMESPACE::UniquePipelineBinaryKHR;
+
+  //=== VK_EXT_device_generated_commands ===
+  using VULKAN_HPP_NAMESPACE::UniqueHandleTraits;
+  using VULKAN_HPP_NAMESPACE::UniqueIndirectCommandsLayoutEXT;
+  using VULKAN_HPP_NAMESPACE::UniqueIndirectExecutionSetEXT;
 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
 
   //======================
@@ -4780,8 +4844,12 @@
   using VULKAN_HPP_NAMESPACE::SharedShaderEXT;
 
   //=== VK_KHR_pipeline_binary ===
-  using VULKAN_HPP_NAMESPACE::SharedHandleTraits;
   using VULKAN_HPP_NAMESPACE::SharedPipelineBinaryKHR;
+
+  //=== VK_EXT_device_generated_commands ===
+  using VULKAN_HPP_NAMESPACE::SharedHandleTraits;
+  using VULKAN_HPP_NAMESPACE::SharedIndirectCommandsLayoutEXT;
+  using VULKAN_HPP_NAMESPACE::SharedIndirectExecutionSetEXT;
 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
 
   //===========================
@@ -4966,6 +5034,10 @@
     using VULKAN_HPP_RAII_NAMESPACE::PipelineBinaryKHR;
     using VULKAN_HPP_RAII_NAMESPACE::PipelineBinaryKHRs;
 
+    //=== VK_EXT_device_generated_commands ===
+    using VULKAN_HPP_RAII_NAMESPACE::IndirectCommandsLayoutEXT;
+    using VULKAN_HPP_RAII_NAMESPACE::IndirectExecutionSetEXT;
+
   }  // namespace VULKAN_HPP_RAII_NAMESPACE
 #endif
 }  // namespace VULKAN_HPP_NAMESPACE
diff --git a/include/vulkan/vulkan.hpp b/include/vulkan/vulkan.hpp
index d5744c1..7ab6fb6 100644
--- a/include/vulkan/vulkan.hpp
+++ b/include/vulkan/vulkan.hpp
@@ -8,24 +8,30 @@
 #ifndef VULKAN_HPP
 #define VULKAN_HPP
 
-#include <algorithm>
-#include <array>     // ArrayWrapperND
-#include <string.h>  // strnlen
-#include <string>    // std::string
-#include <utility>   // std::exchange
-#include <vulkan/vulkan.h>
 #include <vulkan/vulkan_hpp_macros.hpp>
 
-#if 17 <= VULKAN_HPP_CPP_VERSION
+#if defined( VULKAN_HPP_ENABLE_STD_MODULE ) && defined( VULKAN_HPP_STD_MODULE )
+#  include <string.h>
+import VULKAN_HPP_STD_MODULE;
+#else
+#  include <algorithm>
+#  include <array>     // ArrayWrapperND
+#  include <string.h>  // strnlen
+#  include <string>    // std::string
+#  include <utility>   // std::exchange
+#endif
+#include <vulkan/vulkan.h>
+
+#if 17 <= VULKAN_HPP_CPP_VERSION && !( defined( VULKAN_HPP_ENABLE_STD_MODULE ) && defined( VULKAN_HPP_STD_MODULE ) )
 #  include <string_view>
 #endif
 
-#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+#if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) && !( defined( VULKAN_HPP_ENABLE_STD_MODULE ) && defined( VULKAN_HPP_STD_MODULE ) )
 #  include <tuple>   // std::tie
 #  include <vector>  // std::vector
 #endif
 
-#if !defined( VULKAN_HPP_NO_EXCEPTIONS )
+#if !defined( VULKAN_HPP_NO_EXCEPTIONS ) && !( defined( VULKAN_HPP_ENABLE_STD_MODULE ) && defined( VULKAN_HPP_STD_MODULE ) )
 #  include <system_error>  // std::is_error_code_enum
 #endif
 
@@ -49,15 +55,15 @@
 #  endif
 #endif
 
-#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR ) && !( defined( VULKAN_HPP_ENABLE_STD_MODULE ) && defined( VULKAN_HPP_STD_MODULE ) )
 #  include <compare>
 #endif
 
-#if defined( VULKAN_HPP_SUPPORT_SPAN )
+#if defined( VULKAN_HPP_SUPPORT_SPAN ) && !( defined( VULKAN_HPP_ENABLE_STD_MODULE ) && defined( VULKAN_HPP_STD_MODULE ) )
 #  include <span>
 #endif
 
-static_assert( VK_HEADER_VERSION == 295, "Wrong VK_HEADER_VERSION!" );
+static_assert( VK_HEADER_VERSION == 296, "Wrong VK_HEADER_VERSION!" );
 
 // <tuple> includes <sys/sysmacros.h> through some other header
 // this results in major(x) being resolved to gnu_dev_major(x)
@@ -5742,6 +5748,13 @@
       return ::vkCmdBindShadersEXT( commandBuffer, stageCount, pStages, pShaders );
     }
 
+    void vkCmdSetDepthClampRangeEXT( VkCommandBuffer              commandBuffer,
+                                     VkDepthClampModeEXT          depthClampMode,
+                                     const VkDepthClampRangeEXT * pDepthClampRange ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdSetDepthClampRangeEXT( commandBuffer, depthClampMode, pDepthClampRange );
+    }
+
     //=== VK_KHR_pipeline_binary ===
 
     VkResult vkCreatePipelineBinariesKHR( VkDevice                              device,
@@ -5910,6 +5923,75 @@
     {
       return ::vkCmdBindDescriptorBufferEmbeddedSamplers2EXT( commandBuffer, pBindDescriptorBufferEmbeddedSamplersInfo );
     }
+
+    //=== VK_EXT_device_generated_commands ===
+
+    void vkGetGeneratedCommandsMemoryRequirementsEXT( VkDevice                                             device,
+                                                      const VkGeneratedCommandsMemoryRequirementsInfoEXT * pInfo,
+                                                      VkMemoryRequirements2 *                              pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkGetGeneratedCommandsMemoryRequirementsEXT( device, pInfo, pMemoryRequirements );
+    }
+
+    void vkCmdPreprocessGeneratedCommandsEXT( VkCommandBuffer                    commandBuffer,
+                                              const VkGeneratedCommandsInfoEXT * pGeneratedCommandsInfo,
+                                              VkCommandBuffer                    stateCommandBuffer ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdPreprocessGeneratedCommandsEXT( commandBuffer, pGeneratedCommandsInfo, stateCommandBuffer );
+    }
+
+    void vkCmdExecuteGeneratedCommandsEXT( VkCommandBuffer                    commandBuffer,
+                                           VkBool32                           isPreprocessed,
+                                           const VkGeneratedCommandsInfoEXT * pGeneratedCommandsInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCmdExecuteGeneratedCommandsEXT( commandBuffer, isPreprocessed, pGeneratedCommandsInfo );
+    }
+
+    VkResult vkCreateIndirectCommandsLayoutEXT( VkDevice                                      device,
+                                                const VkIndirectCommandsLayoutCreateInfoEXT * pCreateInfo,
+                                                const VkAllocationCallbacks *                 pAllocator,
+                                                VkIndirectCommandsLayoutEXT *                 pIndirectCommandsLayout ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCreateIndirectCommandsLayoutEXT( device, pCreateInfo, pAllocator, pIndirectCommandsLayout );
+    }
+
+    void vkDestroyIndirectCommandsLayoutEXT( VkDevice                      device,
+                                             VkIndirectCommandsLayoutEXT   indirectCommandsLayout,
+                                             const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkDestroyIndirectCommandsLayoutEXT( device, indirectCommandsLayout, pAllocator );
+    }
+
+    VkResult vkCreateIndirectExecutionSetEXT( VkDevice                                    device,
+                                              const VkIndirectExecutionSetCreateInfoEXT * pCreateInfo,
+                                              const VkAllocationCallbacks *               pAllocator,
+                                              VkIndirectExecutionSetEXT *                 pIndirectExecutionSet ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkCreateIndirectExecutionSetEXT( device, pCreateInfo, pAllocator, pIndirectExecutionSet );
+    }
+
+    void vkDestroyIndirectExecutionSetEXT( VkDevice                      device,
+                                           VkIndirectExecutionSetEXT     indirectExecutionSet,
+                                           const VkAllocationCallbacks * pAllocator ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkDestroyIndirectExecutionSetEXT( device, indirectExecutionSet, pAllocator );
+    }
+
+    void vkUpdateIndirectExecutionSetPipelineEXT( VkDevice                                       device,
+                                                  VkIndirectExecutionSetEXT                      indirectExecutionSet,
+                                                  uint32_t                                       executionSetWriteCount,
+                                                  const VkWriteIndirectExecutionSetPipelineEXT * pExecutionSetWrites ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkUpdateIndirectExecutionSetPipelineEXT( device, indirectExecutionSet, executionSetWriteCount, pExecutionSetWrites );
+    }
+
+    void vkUpdateIndirectExecutionSetShaderEXT( VkDevice                                     device,
+                                                VkIndirectExecutionSetEXT                    indirectExecutionSet,
+                                                uint32_t                                     executionSetWriteCount,
+                                                const VkWriteIndirectExecutionSetShaderEXT * pExecutionSetWrites ) const VULKAN_HPP_NOEXCEPT
+    {
+      return ::vkUpdateIndirectExecutionSetShaderEXT( device, indirectExecutionSet, executionSetWriteCount, pExecutionSetWrites );
+    }
   };
 
   inline ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic & getDispatchLoaderStatic()
@@ -6875,7 +6957,8 @@
   //========================
   //=== CONSTEXPR VALUEs ===
   //========================
-  VULKAN_HPP_CONSTEXPR_INLINE uint32_t HeaderVersion = VK_HEADER_VERSION;
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t HeaderVersion      = VK_HEADER_VERSION;
+  VULKAN_HPP_CONSTEXPR_INLINE uint32_t Use64BitPtrDefines = VK_USE_64_BIT_PTR_DEFINES;
 
   //=========================
   //=== CONSTEXPR CALLEEs ===
@@ -8568,10 +8651,18 @@
   VULKAN_HPP_CONSTEXPR_INLINE auto NVRayTracingValidationExtensionName = VK_NV_RAY_TRACING_VALIDATION_EXTENSION_NAME;
   VULKAN_HPP_CONSTEXPR_INLINE auto NVRayTracingValidationSpecVersion   = VK_NV_RAY_TRACING_VALIDATION_SPEC_VERSION;
 
+  //=== VK_EXT_device_generated_commands ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDeviceGeneratedCommandsExtensionName = VK_EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDeviceGeneratedCommandsSpecVersion   = VK_EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION;
+
   //=== VK_MESA_image_alignment_control ===
   VULKAN_HPP_CONSTEXPR_INLINE auto MESAImageAlignmentControlExtensionName = VK_MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME;
   VULKAN_HPP_CONSTEXPR_INLINE auto MESAImageAlignmentControlSpecVersion   = VK_MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION;
 
+  //=== VK_EXT_depth_clamp_control ===
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDepthClampControlExtensionName = VK_EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME;
+  VULKAN_HPP_CONSTEXPR_INLINE auto EXTDepthClampControlSpecVersion   = VK_EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION;
+
 }  // namespace VULKAN_HPP_NAMESPACE
 
 // clang-format off
@@ -8653,6 +8744,15 @@
     };
   };
 
+  template <>
+  struct StructExtends<PipelineLayoutCreateInfo, IndirectCommandsLayoutCreateInfoEXT>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
   //=== VK_VERSION_1_1 ===
   template <>
   struct StructExtends<PhysicalDeviceSubgroupProperties, PhysicalDeviceProperties2>
@@ -16801,6 +16901,70 @@
     };
   };
 
+  //=== VK_EXT_device_generated_commands ===
+  template <>
+  struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT, PhysicalDeviceProperties2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<GeneratedCommandsPipelineInfoEXT, GeneratedCommandsInfoEXT>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<GeneratedCommandsPipelineInfoEXT, GeneratedCommandsMemoryRequirementsInfoEXT>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<GeneratedCommandsShaderInfoEXT, GeneratedCommandsInfoEXT>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<GeneratedCommandsShaderInfoEXT, GeneratedCommandsMemoryRequirementsInfoEXT>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
   //=== VK_MESA_image_alignment_control ===
   template <>
   struct StructExtends<PhysicalDeviceImageAlignmentControlFeaturesMESA, PhysicalDeviceFeatures2>
@@ -16838,6 +17002,34 @@
     };
   };
 
+  //=== VK_EXT_depth_clamp_control ===
+  template <>
+  struct StructExtends<PhysicalDeviceDepthClampControlFeaturesEXT, PhysicalDeviceFeatures2>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PhysicalDeviceDepthClampControlFeaturesEXT, DeviceCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
+  template <>
+  struct StructExtends<PipelineViewportDepthClampControlCreateInfoEXT, PipelineViewportStateCreateInfo>
+  {
+    enum
+    {
+      value = true
+    };
+  };
+
 #endif  // VULKAN_HPP_DISABLE_ENHANCED_MODE
 
 #if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
@@ -18037,10 +18229,11 @@
     PFN_vkAntiLagUpdateAMD vkAntiLagUpdateAMD = 0;
 
     //=== VK_EXT_shader_object ===
-    PFN_vkCreateShadersEXT       vkCreateShadersEXT       = 0;
-    PFN_vkDestroyShaderEXT       vkDestroyShaderEXT       = 0;
-    PFN_vkGetShaderBinaryDataEXT vkGetShaderBinaryDataEXT = 0;
-    PFN_vkCmdBindShadersEXT      vkCmdBindShadersEXT      = 0;
+    PFN_vkCreateShadersEXT         vkCreateShadersEXT         = 0;
+    PFN_vkDestroyShaderEXT         vkDestroyShaderEXT         = 0;
+    PFN_vkGetShaderBinaryDataEXT   vkGetShaderBinaryDataEXT   = 0;
+    PFN_vkCmdBindShadersEXT        vkCmdBindShadersEXT        = 0;
+    PFN_vkCmdSetDepthClampRangeEXT vkCmdSetDepthClampRangeEXT = 0;
 
     //=== VK_KHR_pipeline_binary ===
     PFN_vkCreatePipelineBinariesKHR      vkCreatePipelineBinariesKHR      = 0;
@@ -18088,6 +18281,17 @@
     PFN_vkCmdSetDescriptorBufferOffsets2EXT           vkCmdSetDescriptorBufferOffsets2EXT           = 0;
     PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT vkCmdBindDescriptorBufferEmbeddedSamplers2EXT = 0;
 
+    //=== VK_EXT_device_generated_commands ===
+    PFN_vkGetGeneratedCommandsMemoryRequirementsEXT vkGetGeneratedCommandsMemoryRequirementsEXT = 0;
+    PFN_vkCmdPreprocessGeneratedCommandsEXT         vkCmdPreprocessGeneratedCommandsEXT         = 0;
+    PFN_vkCmdExecuteGeneratedCommandsEXT            vkCmdExecuteGeneratedCommandsEXT            = 0;
+    PFN_vkCreateIndirectCommandsLayoutEXT           vkCreateIndirectCommandsLayoutEXT           = 0;
+    PFN_vkDestroyIndirectCommandsLayoutEXT          vkDestroyIndirectCommandsLayoutEXT          = 0;
+    PFN_vkCreateIndirectExecutionSetEXT             vkCreateIndirectExecutionSetEXT             = 0;
+    PFN_vkDestroyIndirectExecutionSetEXT            vkDestroyIndirectExecutionSetEXT            = 0;
+    PFN_vkUpdateIndirectExecutionSetPipelineEXT     vkUpdateIndirectExecutionSetPipelineEXT     = 0;
+    PFN_vkUpdateIndirectExecutionSetShaderEXT       vkUpdateIndirectExecutionSetShaderEXT       = 0;
+
   public:
     DispatchLoaderDynamic() VULKAN_HPP_NOEXCEPT                                    = default;
     DispatchLoaderDynamic( DispatchLoaderDynamic const & rhs ) VULKAN_HPP_NOEXCEPT = default;
@@ -19449,10 +19653,11 @@
       vkAntiLagUpdateAMD = PFN_vkAntiLagUpdateAMD( vkGetInstanceProcAddr( instance, "vkAntiLagUpdateAMD" ) );
 
       //=== VK_EXT_shader_object ===
-      vkCreateShadersEXT       = PFN_vkCreateShadersEXT( vkGetInstanceProcAddr( instance, "vkCreateShadersEXT" ) );
-      vkDestroyShaderEXT       = PFN_vkDestroyShaderEXT( vkGetInstanceProcAddr( instance, "vkDestroyShaderEXT" ) );
-      vkGetShaderBinaryDataEXT = PFN_vkGetShaderBinaryDataEXT( vkGetInstanceProcAddr( instance, "vkGetShaderBinaryDataEXT" ) );
-      vkCmdBindShadersEXT      = PFN_vkCmdBindShadersEXT( vkGetInstanceProcAddr( instance, "vkCmdBindShadersEXT" ) );
+      vkCreateShadersEXT         = PFN_vkCreateShadersEXT( vkGetInstanceProcAddr( instance, "vkCreateShadersEXT" ) );
+      vkDestroyShaderEXT         = PFN_vkDestroyShaderEXT( vkGetInstanceProcAddr( instance, "vkDestroyShaderEXT" ) );
+      vkGetShaderBinaryDataEXT   = PFN_vkGetShaderBinaryDataEXT( vkGetInstanceProcAddr( instance, "vkGetShaderBinaryDataEXT" ) );
+      vkCmdBindShadersEXT        = PFN_vkCmdBindShadersEXT( vkGetInstanceProcAddr( instance, "vkCmdBindShadersEXT" ) );
+      vkCmdSetDepthClampRangeEXT = PFN_vkCmdSetDepthClampRangeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthClampRangeEXT" ) );
 
       //=== VK_KHR_pipeline_binary ===
       vkCreatePipelineBinariesKHR      = PFN_vkCreatePipelineBinariesKHR( vkGetInstanceProcAddr( instance, "vkCreatePipelineBinariesKHR" ) );
@@ -19503,6 +19708,20 @@
       vkCmdSetDescriptorBufferOffsets2EXT = PFN_vkCmdSetDescriptorBufferOffsets2EXT( vkGetInstanceProcAddr( instance, "vkCmdSetDescriptorBufferOffsets2EXT" ) );
       vkCmdBindDescriptorBufferEmbeddedSamplers2EXT =
         PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT" ) );
+
+      //=== VK_EXT_device_generated_commands ===
+      vkGetGeneratedCommandsMemoryRequirementsEXT =
+        PFN_vkGetGeneratedCommandsMemoryRequirementsEXT( vkGetInstanceProcAddr( instance, "vkGetGeneratedCommandsMemoryRequirementsEXT" ) );
+      vkCmdPreprocessGeneratedCommandsEXT = PFN_vkCmdPreprocessGeneratedCommandsEXT( vkGetInstanceProcAddr( instance, "vkCmdPreprocessGeneratedCommandsEXT" ) );
+      vkCmdExecuteGeneratedCommandsEXT    = PFN_vkCmdExecuteGeneratedCommandsEXT( vkGetInstanceProcAddr( instance, "vkCmdExecuteGeneratedCommandsEXT" ) );
+      vkCreateIndirectCommandsLayoutEXT   = PFN_vkCreateIndirectCommandsLayoutEXT( vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutEXT" ) );
+      vkDestroyIndirectCommandsLayoutEXT  = PFN_vkDestroyIndirectCommandsLayoutEXT( vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutEXT" ) );
+      vkCreateIndirectExecutionSetEXT     = PFN_vkCreateIndirectExecutionSetEXT( vkGetInstanceProcAddr( instance, "vkCreateIndirectExecutionSetEXT" ) );
+      vkDestroyIndirectExecutionSetEXT    = PFN_vkDestroyIndirectExecutionSetEXT( vkGetInstanceProcAddr( instance, "vkDestroyIndirectExecutionSetEXT" ) );
+      vkUpdateIndirectExecutionSetPipelineEXT =
+        PFN_vkUpdateIndirectExecutionSetPipelineEXT( vkGetInstanceProcAddr( instance, "vkUpdateIndirectExecutionSetPipelineEXT" ) );
+      vkUpdateIndirectExecutionSetShaderEXT =
+        PFN_vkUpdateIndirectExecutionSetShaderEXT( vkGetInstanceProcAddr( instance, "vkUpdateIndirectExecutionSetShaderEXT" ) );
     }
 
     void init( VULKAN_HPP_NAMESPACE::Device deviceCpp ) VULKAN_HPP_NOEXCEPT
@@ -20509,10 +20728,11 @@
       vkAntiLagUpdateAMD = PFN_vkAntiLagUpdateAMD( vkGetDeviceProcAddr( device, "vkAntiLagUpdateAMD" ) );
 
       //=== VK_EXT_shader_object ===
-      vkCreateShadersEXT       = PFN_vkCreateShadersEXT( vkGetDeviceProcAddr( device, "vkCreateShadersEXT" ) );
-      vkDestroyShaderEXT       = PFN_vkDestroyShaderEXT( vkGetDeviceProcAddr( device, "vkDestroyShaderEXT" ) );
-      vkGetShaderBinaryDataEXT = PFN_vkGetShaderBinaryDataEXT( vkGetDeviceProcAddr( device, "vkGetShaderBinaryDataEXT" ) );
-      vkCmdBindShadersEXT      = PFN_vkCmdBindShadersEXT( vkGetDeviceProcAddr( device, "vkCmdBindShadersEXT" ) );
+      vkCreateShadersEXT         = PFN_vkCreateShadersEXT( vkGetDeviceProcAddr( device, "vkCreateShadersEXT" ) );
+      vkDestroyShaderEXT         = PFN_vkDestroyShaderEXT( vkGetDeviceProcAddr( device, "vkDestroyShaderEXT" ) );
+      vkGetShaderBinaryDataEXT   = PFN_vkGetShaderBinaryDataEXT( vkGetDeviceProcAddr( device, "vkGetShaderBinaryDataEXT" ) );
+      vkCmdBindShadersEXT        = PFN_vkCmdBindShadersEXT( vkGetDeviceProcAddr( device, "vkCmdBindShadersEXT" ) );
+      vkCmdSetDepthClampRangeEXT = PFN_vkCmdSetDepthClampRangeEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthClampRangeEXT" ) );
 
       //=== VK_KHR_pipeline_binary ===
       vkCreatePipelineBinariesKHR      = PFN_vkCreatePipelineBinariesKHR( vkGetDeviceProcAddr( device, "vkCreatePipelineBinariesKHR" ) );
@@ -20557,6 +20777,20 @@
       vkCmdSetDescriptorBufferOffsets2EXT = PFN_vkCmdSetDescriptorBufferOffsets2EXT( vkGetDeviceProcAddr( device, "vkCmdSetDescriptorBufferOffsets2EXT" ) );
       vkCmdBindDescriptorBufferEmbeddedSamplers2EXT =
         PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT" ) );
+
+      //=== VK_EXT_device_generated_commands ===
+      vkGetGeneratedCommandsMemoryRequirementsEXT =
+        PFN_vkGetGeneratedCommandsMemoryRequirementsEXT( vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsEXT" ) );
+      vkCmdPreprocessGeneratedCommandsEXT = PFN_vkCmdPreprocessGeneratedCommandsEXT( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsEXT" ) );
+      vkCmdExecuteGeneratedCommandsEXT    = PFN_vkCmdExecuteGeneratedCommandsEXT( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsEXT" ) );
+      vkCreateIndirectCommandsLayoutEXT   = PFN_vkCreateIndirectCommandsLayoutEXT( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutEXT" ) );
+      vkDestroyIndirectCommandsLayoutEXT  = PFN_vkDestroyIndirectCommandsLayoutEXT( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutEXT" ) );
+      vkCreateIndirectExecutionSetEXT     = PFN_vkCreateIndirectExecutionSetEXT( vkGetDeviceProcAddr( device, "vkCreateIndirectExecutionSetEXT" ) );
+      vkDestroyIndirectExecutionSetEXT    = PFN_vkDestroyIndirectExecutionSetEXT( vkGetDeviceProcAddr( device, "vkDestroyIndirectExecutionSetEXT" ) );
+      vkUpdateIndirectExecutionSetPipelineEXT =
+        PFN_vkUpdateIndirectExecutionSetPipelineEXT( vkGetDeviceProcAddr( device, "vkUpdateIndirectExecutionSetPipelineEXT" ) );
+      vkUpdateIndirectExecutionSetShaderEXT =
+        PFN_vkUpdateIndirectExecutionSetShaderEXT( vkGetDeviceProcAddr( device, "vkUpdateIndirectExecutionSetShaderEXT" ) );
     }
 
     template <typename DynamicLoader>
diff --git a/include/vulkan/vulkan_core.h b/include/vulkan/vulkan_core.h
index 6f1c17f..e6c1649 100644
--- a/include/vulkan/vulkan_core.h
+++ b/include/vulkan/vulkan_core.h
@@ -69,7 +69,7 @@
 #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
 
 // Version of this file
-#define VK_HEADER_VERSION 295
+#define VK_HEADER_VERSION 296
 
 // Complete version of this file
 #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION)
@@ -1143,9 +1143,25 @@
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV = 1000563000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT = 1000564000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV = 1000568000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT = 1000572000,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT = 1000572001,
+    VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT = 1000572002,
+    VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT = 1000572003,
+    VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT = 1000572004,
+    VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT = 1000572006,
+    VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT = 1000572007,
+    VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT = 1000572008,
+    VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT = 1000572009,
+    VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT = 1000572010,
+    VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT = 1000572011,
+    VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT = 1000572012,
+    VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT = 1000572013,
+    VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT = 1000572014,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA = 1000575000,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA = 1000575001,
     VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA = 1000575002,
+    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT = 1000582000,
+    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT = 1000582001,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
     VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
   // VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT is a deprecated alias
@@ -1436,6 +1452,8 @@
     VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000,
     VK_OBJECT_TYPE_SHADER_EXT = 1000482000,
     VK_OBJECT_TYPE_PIPELINE_BINARY_KHR = 1000483000,
+    VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT = 1000572000,
+    VK_OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT = 1000572001,
     VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
     VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
     VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
@@ -2013,6 +2031,7 @@
     VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032,
     VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT = 1000524000,
     VK_DYNAMIC_STATE_LINE_STIPPLE_KHR = 1000259000,
+    VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT = 1000582000,
     VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = VK_DYNAMIC_STATE_LINE_STIPPLE_KHR,
     VK_DYNAMIC_STATE_CULL_MODE_EXT = VK_DYNAMIC_STATE_CULL_MODE,
     VK_DYNAMIC_STATE_FRONT_FACE_EXT = VK_DYNAMIC_STATE_FRONT_FACE,
@@ -2248,6 +2267,8 @@
     VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
     VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
     VK_ACCESS_NONE_KHR = VK_ACCESS_NONE,
+    VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,
+    VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,
     VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkAccessFlagBits;
 typedef VkFlags VkAccessFlags;
@@ -2472,6 +2493,7 @@
     VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,
     VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,
     VK_PIPELINE_STAGE_NONE_KHR = VK_PIPELINE_STAGE_NONE,
+    VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,
     VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
 } VkPipelineStageFlagBits;
 typedef VkFlags VkPipelineStageFlags;
@@ -6655,6 +6677,7 @@
 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL;
 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL;
 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL;
+static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT = 0x00020000ULL;
 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL;
 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL;
 static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL;
@@ -6731,6 +6754,8 @@
 static const VkAccessFlagBits2 VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL;
 static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL;
 static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT = 0x00020000ULL;
+static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT = 0x00040000ULL;
 static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL;
 static const VkAccessFlagBits2 VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL;
 static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL;
@@ -11201,6 +11226,7 @@
 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000ULL;
 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000ULL;
 static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR = 0x80000000ULL;
+static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT = 0x4000000000ULL;
 
 typedef VkFlags64 VkBufferUsageFlags2KHR;
 
@@ -11233,6 +11259,7 @@
 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000ULL;
 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000ULL;
 static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = 0x01000000ULL;
+static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT = 0x80000000ULL;
 
 typedef struct VkPhysicalDeviceMaintenance5FeaturesKHR {
     VkStructureType    sType;
@@ -18858,6 +18885,12 @@
     VK_SHADER_CODE_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkShaderCodeTypeEXT;
 
+typedef enum VkDepthClampModeEXT {
+    VK_DEPTH_CLAMP_MODE_VIEWPORT_RANGE_EXT = 0,
+    VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT = 1,
+    VK_DEPTH_CLAMP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkDepthClampModeEXT;
+
 typedef enum VkShaderCreateFlagBitsEXT {
     VK_SHADER_CREATE_LINK_STAGE_BIT_EXT = 0x00000001,
     VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000002,
@@ -18866,6 +18899,7 @@
     VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT = 0x00000010,
     VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT = 0x00000020,
     VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00000040,
+    VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT = 0x00000080,
     VK_SHADER_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
 } VkShaderCreateFlagBitsEXT;
 typedef VkFlags VkShaderCreateFlagsEXT;
@@ -18901,10 +18935,16 @@
 
 typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkShaderRequiredSubgroupSizeCreateInfoEXT;
 
+typedef struct VkDepthClampRangeEXT {
+    float    minDepthClamp;
+    float    maxDepthClamp;
+} VkDepthClampRangeEXT;
+
 typedef VkResult (VKAPI_PTR *PFN_vkCreateShadersEXT)(VkDevice device, uint32_t createInfoCount, const VkShaderCreateInfoEXT* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkShaderEXT* pShaders);
 typedef void (VKAPI_PTR *PFN_vkDestroyShaderEXT)(VkDevice device, VkShaderEXT shader, const VkAllocationCallbacks* pAllocator);
 typedef VkResult (VKAPI_PTR *PFN_vkGetShaderBinaryDataEXT)(VkDevice device, VkShaderEXT shader, size_t* pDataSize, void* pData);
 typedef void (VKAPI_PTR *PFN_vkCmdBindShadersEXT)(VkCommandBuffer commandBuffer, uint32_t stageCount, const VkShaderStageFlagBits* pStages, const VkShaderEXT* pShaders);
+typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampRangeEXT)(VkCommandBuffer commandBuffer, VkDepthClampModeEXT depthClampMode, const VkDepthClampRangeEXT* pDepthClampRange);
 
 #ifndef VK_NO_PROTOTYPES
 VKAPI_ATTR VkResult VKAPI_CALL vkCreateShadersEXT(
@@ -18930,6 +18970,11 @@
     uint32_t                                    stageCount,
     const VkShaderStageFlagBits*                pStages,
     const VkShaderEXT*                          pShaders);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampRangeEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkDepthClampModeEXT                         depthClampMode,
+    const VkDepthClampRangeEXT*                 pDepthClampRange);
 #endif
 
 
@@ -19511,6 +19556,286 @@
 
 
 
+// VK_EXT_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
+#define VK_EXT_device_generated_commands 1
+VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectExecutionSetEXT)
+VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutEXT)
+#define VK_EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 1
+#define VK_EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_EXT_device_generated_commands"
+
+typedef enum VkIndirectExecutionSetInfoTypeEXT {
+    VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT = 0,
+    VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT = 1,
+    VK_INDIRECT_EXECUTION_SET_INFO_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkIndirectExecutionSetInfoTypeEXT;
+
+typedef enum VkIndirectCommandsTokenTypeEXT {
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT = 0,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT = 1,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT = 2,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT = 3,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT = 4,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT = 5,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT = 6,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT = 7,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT = 8,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT = 9,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT = 1000202002,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT = 1000202003,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT = 1000328000,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT = 1000328001,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT = 1000386004,
+    VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkIndirectCommandsTokenTypeEXT;
+
+typedef enum VkIndirectCommandsInputModeFlagBitsEXT {
+    VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT = 0x00000001,
+    VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT = 0x00000002,
+    VK_INDIRECT_COMMANDS_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkIndirectCommandsInputModeFlagBitsEXT;
+typedef VkFlags VkIndirectCommandsInputModeFlagsEXT;
+
+typedef enum VkIndirectCommandsLayoutUsageFlagBitsEXT {
+    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT = 0x00000001,
+    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT = 0x00000002,
+    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
+} VkIndirectCommandsLayoutUsageFlagBitsEXT;
+typedef VkFlags VkIndirectCommandsLayoutUsageFlagsEXT;
+typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           deviceGeneratedCommands;
+    VkBool32           dynamicGeneratedPipelineLayout;
+} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT;
+
+typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT {
+    VkStructureType                        sType;
+    void*                                  pNext;
+    uint32_t                               maxIndirectPipelineCount;
+    uint32_t                               maxIndirectShaderObjectCount;
+    uint32_t                               maxIndirectSequenceCount;
+    uint32_t                               maxIndirectCommandsTokenCount;
+    uint32_t                               maxIndirectCommandsTokenOffset;
+    uint32_t                               maxIndirectCommandsIndirectStride;
+    VkIndirectCommandsInputModeFlagsEXT    supportedIndirectCommandsInputModes;
+    VkShaderStageFlags                     supportedIndirectCommandsShaderStages;
+    VkShaderStageFlags                     supportedIndirectCommandsShaderStagesPipelineBinding;
+    VkShaderStageFlags                     supportedIndirectCommandsShaderStagesShaderBinding;
+    VkBool32                               deviceGeneratedCommandsTransformFeedback;
+    VkBool32                               deviceGeneratedCommandsMultiDrawIndirectCount;
+} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT;
+
+typedef struct VkGeneratedCommandsMemoryRequirementsInfoEXT {
+    VkStructureType                sType;
+    void*                          pNext;
+    VkIndirectExecutionSetEXT      indirectExecutionSet;
+    VkIndirectCommandsLayoutEXT    indirectCommandsLayout;
+    uint32_t                       maxSequenceCount;
+    uint32_t                       maxDrawCount;
+} VkGeneratedCommandsMemoryRequirementsInfoEXT;
+
+typedef struct VkIndirectExecutionSetPipelineInfoEXT {
+    VkStructureType    sType;
+    const void*        pNext;
+    VkPipeline         initialPipeline;
+    uint32_t           maxPipelineCount;
+} VkIndirectExecutionSetPipelineInfoEXT;
+
+typedef struct VkIndirectExecutionSetShaderLayoutInfoEXT {
+    VkStructureType                 sType;
+    const void*                     pNext;
+    uint32_t                        setLayoutCount;
+    const VkDescriptorSetLayout*    pSetLayouts;
+} VkIndirectExecutionSetShaderLayoutInfoEXT;
+
+typedef struct VkIndirectExecutionSetShaderInfoEXT {
+    VkStructureType                                     sType;
+    const void*                                         pNext;
+    uint32_t                                            shaderCount;
+    const VkShaderEXT*                                  pInitialShaders;
+    const VkIndirectExecutionSetShaderLayoutInfoEXT*    pSetLayoutInfos;
+    uint32_t                                            maxShaderCount;
+    uint32_t                                            pushConstantRangeCount;
+    const VkPushConstantRange*                          pPushConstantRanges;
+} VkIndirectExecutionSetShaderInfoEXT;
+
+typedef union VkIndirectExecutionSetInfoEXT {
+    const VkIndirectExecutionSetPipelineInfoEXT*    pPipelineInfo;
+    const VkIndirectExecutionSetShaderInfoEXT*      pShaderInfo;
+} VkIndirectExecutionSetInfoEXT;
+
+typedef struct VkIndirectExecutionSetCreateInfoEXT {
+    VkStructureType                      sType;
+    const void*                          pNext;
+    VkIndirectExecutionSetInfoTypeEXT    type;
+    VkIndirectExecutionSetInfoEXT        info;
+} VkIndirectExecutionSetCreateInfoEXT;
+
+typedef struct VkGeneratedCommandsInfoEXT {
+    VkStructureType                sType;
+    const void*                    pNext;
+    VkShaderStageFlags             shaderStages;
+    VkIndirectExecutionSetEXT      indirectExecutionSet;
+    VkIndirectCommandsLayoutEXT    indirectCommandsLayout;
+    VkDeviceAddress                indirectAddress;
+    VkDeviceSize                   indirectAddressSize;
+    VkDeviceAddress                preprocessAddress;
+    VkDeviceSize                   preprocessSize;
+    uint32_t                       maxSequenceCount;
+    VkDeviceAddress                sequenceCountAddress;
+    uint32_t                       maxDrawCount;
+} VkGeneratedCommandsInfoEXT;
+
+typedef struct VkWriteIndirectExecutionSetPipelineEXT {
+    VkStructureType    sType;
+    const void*        pNext;
+    uint32_t           index;
+    VkPipeline         pipeline;
+} VkWriteIndirectExecutionSetPipelineEXT;
+
+typedef struct VkIndirectCommandsPushConstantTokenEXT {
+    VkPushConstantRange    updateRange;
+} VkIndirectCommandsPushConstantTokenEXT;
+
+typedef struct VkIndirectCommandsVertexBufferTokenEXT {
+    uint32_t    vertexBindingUnit;
+} VkIndirectCommandsVertexBufferTokenEXT;
+
+typedef struct VkIndirectCommandsIndexBufferTokenEXT {
+    VkIndirectCommandsInputModeFlagBitsEXT    mode;
+} VkIndirectCommandsIndexBufferTokenEXT;
+
+typedef struct VkIndirectCommandsExecutionSetTokenEXT {
+    VkIndirectExecutionSetInfoTypeEXT    type;
+    VkShaderStageFlags                   shaderStages;
+} VkIndirectCommandsExecutionSetTokenEXT;
+
+typedef union VkIndirectCommandsTokenDataEXT {
+    const VkIndirectCommandsPushConstantTokenEXT*    pPushConstant;
+    const VkIndirectCommandsVertexBufferTokenEXT*    pVertexBuffer;
+    const VkIndirectCommandsIndexBufferTokenEXT*     pIndexBuffer;
+    const VkIndirectCommandsExecutionSetTokenEXT*    pExecutionSet;
+} VkIndirectCommandsTokenDataEXT;
+
+typedef struct VkIndirectCommandsLayoutTokenEXT {
+    VkStructureType                   sType;
+    const void*                       pNext;
+    VkIndirectCommandsTokenTypeEXT    type;
+    VkIndirectCommandsTokenDataEXT    data;
+    uint32_t                          offset;
+} VkIndirectCommandsLayoutTokenEXT;
+
+typedef struct VkIndirectCommandsLayoutCreateInfoEXT {
+    VkStructureType                            sType;
+    const void*                                pNext;
+    VkIndirectCommandsLayoutUsageFlagsEXT      flags;
+    VkShaderStageFlags                         shaderStages;
+    uint32_t                                   indirectStride;
+    VkPipelineLayout                           pipelineLayout;
+    uint32_t                                   tokenCount;
+    const VkIndirectCommandsLayoutTokenEXT*    pTokens;
+} VkIndirectCommandsLayoutCreateInfoEXT;
+
+typedef struct VkDrawIndirectCountIndirectCommandEXT {
+    VkDeviceAddress    bufferAddress;
+    uint32_t           stride;
+    uint32_t           commandCount;
+} VkDrawIndirectCountIndirectCommandEXT;
+
+typedef struct VkBindVertexBufferIndirectCommandEXT {
+    VkDeviceAddress    bufferAddress;
+    uint32_t           size;
+    uint32_t           stride;
+} VkBindVertexBufferIndirectCommandEXT;
+
+typedef struct VkBindIndexBufferIndirectCommandEXT {
+    VkDeviceAddress    bufferAddress;
+    uint32_t           size;
+    VkIndexType        indexType;
+} VkBindIndexBufferIndirectCommandEXT;
+
+typedef struct VkGeneratedCommandsPipelineInfoEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkPipeline         pipeline;
+} VkGeneratedCommandsPipelineInfoEXT;
+
+typedef struct VkGeneratedCommandsShaderInfoEXT {
+    VkStructureType       sType;
+    void*                 pNext;
+    uint32_t              shaderCount;
+    const VkShaderEXT*    pShaders;
+} VkGeneratedCommandsShaderInfoEXT;
+
+typedef struct VkWriteIndirectExecutionSetShaderEXT {
+    VkStructureType    sType;
+    const void*        pNext;
+    uint32_t           index;
+    VkShaderEXT        shader;
+} VkWriteIndirectExecutionSetShaderEXT;
+
+typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsEXT)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo, VkMemoryRequirements2* pMemoryRequirements);
+typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsEXT)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo, VkCommandBuffer stateCommandBuffer);
+typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsEXT)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo);
+typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutEXT)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutEXT* pIndirectCommandsLayout);
+typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutEXT)(VkDevice device, VkIndirectCommandsLayoutEXT indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
+typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectExecutionSetEXT)(VkDevice device, const VkIndirectExecutionSetCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectExecutionSetEXT* pIndirectExecutionSet);
+typedef void (VKAPI_PTR *PFN_vkDestroyIndirectExecutionSetEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, const VkAllocationCallbacks* pAllocator);
+typedef void (VKAPI_PTR *PFN_vkUpdateIndirectExecutionSetPipelineEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, uint32_t executionSetWriteCount, const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites);
+typedef void (VKAPI_PTR *PFN_vkUpdateIndirectExecutionSetShaderEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, uint32_t executionSetWriteCount, const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites);
+
+#ifndef VK_NO_PROTOTYPES
+VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsEXT(
+    VkDevice                                    device,
+    const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo,
+    VkMemoryRequirements2*                      pMemoryRequirements);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsEXT(
+    VkCommandBuffer                             commandBuffer,
+    const VkGeneratedCommandsInfoEXT*           pGeneratedCommandsInfo,
+    VkCommandBuffer                             stateCommandBuffer);
+
+VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsEXT(
+    VkCommandBuffer                             commandBuffer,
+    VkBool32                                    isPreprocessed,
+    const VkGeneratedCommandsInfoEXT*           pGeneratedCommandsInfo);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutEXT(
+    VkDevice                                    device,
+    const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo,
+    const VkAllocationCallbacks*                pAllocator,
+    VkIndirectCommandsLayoutEXT*                pIndirectCommandsLayout);
+
+VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutEXT(
+    VkDevice                                    device,
+    VkIndirectCommandsLayoutEXT                 indirectCommandsLayout,
+    const VkAllocationCallbacks*                pAllocator);
+
+VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectExecutionSetEXT(
+    VkDevice                                    device,
+    const VkIndirectExecutionSetCreateInfoEXT*  pCreateInfo,
+    const VkAllocationCallbacks*                pAllocator,
+    VkIndirectExecutionSetEXT*                  pIndirectExecutionSet);
+
+VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectExecutionSetEXT(
+    VkDevice                                    device,
+    VkIndirectExecutionSetEXT                   indirectExecutionSet,
+    const VkAllocationCallbacks*                pAllocator);
+
+VKAPI_ATTR void VKAPI_CALL vkUpdateIndirectExecutionSetPipelineEXT(
+    VkDevice                                    device,
+    VkIndirectExecutionSetEXT                   indirectExecutionSet,
+    uint32_t                                    executionSetWriteCount,
+    const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites);
+
+VKAPI_ATTR void VKAPI_CALL vkUpdateIndirectExecutionSetShaderEXT(
+    VkDevice                                    device,
+    VkIndirectExecutionSetEXT                   indirectExecutionSet,
+    uint32_t                                    executionSetWriteCount,
+    const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites);
+#endif
+
+
 // VK_MESA_image_alignment_control is a preprocessor guard. Do not pass it to API calls.
 #define VK_MESA_image_alignment_control 1
 #define VK_MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION 1
@@ -19535,6 +19860,25 @@
 
 
 
+// VK_EXT_depth_clamp_control is a preprocessor guard. Do not pass it to API calls.
+#define VK_EXT_depth_clamp_control 1
+#define VK_EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION 1
+#define VK_EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clamp_control"
+typedef struct VkPhysicalDeviceDepthClampControlFeaturesEXT {
+    VkStructureType    sType;
+    void*              pNext;
+    VkBool32           depthClampControl;
+} VkPhysicalDeviceDepthClampControlFeaturesEXT;
+
+typedef struct VkPipelineViewportDepthClampControlCreateInfoEXT {
+    VkStructureType                sType;
+    const void*                    pNext;
+    VkDepthClampModeEXT            depthClampMode;
+    const VkDepthClampRangeEXT*    pDepthClampRange;
+} VkPipelineViewportDepthClampControlCreateInfoEXT;
+
+
+
 // VK_KHR_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
 #define VK_KHR_acceleration_structure 1
 #define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
diff --git a/include/vulkan/vulkan_enums.hpp b/include/vulkan/vulkan_enums.hpp
index fe4f89d..8867e37 100644
--- a/include/vulkan/vulkan_enums.hpp
+++ b/include/vulkan/vulkan_enums.hpp
@@ -1448,9 +1448,25 @@
     ePhysicalDeviceShaderAtomicFloat16VectorFeaturesNV         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV,
     ePhysicalDeviceShaderReplicatedCompositesFeaturesEXT       = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT,
     ePhysicalDeviceRayTracingValidationFeaturesNV              = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV,
+    ePhysicalDeviceDeviceGeneratedCommandsFeaturesEXT          = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT,
+    ePhysicalDeviceDeviceGeneratedCommandsPropertiesEXT        = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT,
+    eGeneratedCommandsMemoryRequirementsInfoEXT                = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT,
+    eIndirectExecutionSetCreateInfoEXT                         = VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT,
+    eGeneratedCommandsInfoEXT                                  = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT,
+    eIndirectCommandsLayoutCreateInfoEXT                       = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT,
+    eIndirectCommandsLayoutTokenEXT                            = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT,
+    eWriteIndirectExecutionSetPipelineEXT                      = VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT,
+    eWriteIndirectExecutionSetShaderEXT                        = VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT,
+    eIndirectExecutionSetPipelineInfoEXT                       = VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT,
+    eIndirectExecutionSetShaderInfoEXT                         = VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT,
+    eIndirectExecutionSetShaderLayoutInfoEXT                   = VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT,
+    eGeneratedCommandsPipelineInfoEXT                          = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT,
+    eGeneratedCommandsShaderInfoEXT                            = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT,
     ePhysicalDeviceImageAlignmentControlFeaturesMESA           = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA,
     ePhysicalDeviceImageAlignmentControlPropertiesMESA         = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA,
-    eImageAlignmentControlCreateInfoMESA                       = VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA
+    eImageAlignmentControlCreateInfoMESA                       = VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA,
+    ePhysicalDeviceDepthClampControlFeaturesEXT                = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT,
+    ePipelineViewportDepthClampControlCreateInfoEXT            = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT
   };
 
   enum class PipelineCacheHeaderVersion
@@ -1515,10 +1531,12 @@
 #if defined( VK_USE_PLATFORM_FUCHSIA )
     eBufferCollectionFUCHSIA = VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA,
 #endif /*VK_USE_PLATFORM_FUCHSIA*/
-    eMicromapEXT          = VK_OBJECT_TYPE_MICROMAP_EXT,
-    eOpticalFlowSessionNV = VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV,
-    eShaderEXT            = VK_OBJECT_TYPE_SHADER_EXT,
-    ePipelineBinaryKHR    = VK_OBJECT_TYPE_PIPELINE_BINARY_KHR
+    eMicromapEXT               = VK_OBJECT_TYPE_MICROMAP_EXT,
+    eOpticalFlowSessionNV      = VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV,
+    eShaderEXT                 = VK_OBJECT_TYPE_SHADER_EXT,
+    ePipelineBinaryKHR         = VK_OBJECT_TYPE_PIPELINE_BINARY_KHR,
+    eIndirectCommandsLayoutEXT = VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT,
+    eIndirectExecutionSetEXT   = VK_OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT
   };
 
   enum class VendorId
@@ -2195,6 +2213,7 @@
     eFragmentShadingRateAttachmentKHR = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
     eShadingRateImageNV               = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV,
     eCommandPreprocessNV              = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV,
+    eCommandPreprocessEXT             = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT,
     eTaskShaderEXT                    = VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,
     eTaskShaderNV                     = VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV,
     eMeshShaderEXT                    = VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,
@@ -2852,7 +2871,8 @@
     eCoverageReductionModeNV             = VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV,
     eAttachmentFeedbackLoopEnableEXT     = VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT,
     eLineStippleKHR                      = VK_DYNAMIC_STATE_LINE_STIPPLE_KHR,
-    eLineStippleEXT                      = VK_DYNAMIC_STATE_LINE_STIPPLE_EXT
+    eLineStippleEXT                      = VK_DYNAMIC_STATE_LINE_STIPPLE_EXT,
+    eDepthClampRangeEXT                  = VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT
   };
 
   enum class FrontFace
@@ -3366,7 +3386,9 @@
     eFragmentShadingRateAttachmentReadKHR = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
     eShadingRateImageReadNV               = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV,
     eCommandPreprocessReadNV              = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV,
-    eCommandPreprocessWriteNV             = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV
+    eCommandPreprocessReadEXT             = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT,
+    eCommandPreprocessWriteNV             = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV,
+    eCommandPreprocessWriteEXT            = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT
   };
 
   using AccessFlags = Flags<AccessFlagBits>;
@@ -4217,6 +4239,7 @@
     eTransformFeedbackEXT             = VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,
     eConditionalRenderingEXT          = VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT,
     eCommandPreprocessNV              = VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV,
+    eCommandPreprocessEXT             = VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT,
     eFragmentShadingRateAttachmentKHR = VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
     eShadingRateImageNV               = VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV,
     eAccelerationStructureBuildKHR    = VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
@@ -4294,7 +4317,9 @@
     eTransformFeedbackCounterWriteEXT     = VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,
     eConditionalRenderingReadEXT          = VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT,
     eCommandPreprocessReadNV              = VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV,
+    eCommandPreprocessReadEXT             = VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT,
     eCommandPreprocessWriteNV             = VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV,
+    eCommandPreprocessWriteEXT            = VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT,
     eFragmentShadingRateAttachmentReadKHR = VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
     eShadingRateImageReadNV               = VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV,
     eAccelerationStructureReadKHR         = VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,
@@ -4501,13 +4526,13 @@
     eBt709NonlinearEXT         = VK_COLOR_SPACE_BT709_NONLINEAR_EXT,
     eBt2020LinearEXT           = VK_COLOR_SPACE_BT2020_LINEAR_EXT,
     eHdr10St2084EXT            = VK_COLOR_SPACE_HDR10_ST2084_EXT,
-    eDolbyvisionEXT            = VK_COLOR_SPACE_DOLBYVISION_EXT,
-    eHdr10HlgEXT               = VK_COLOR_SPACE_HDR10_HLG_EXT,
-    eAdobergbLinearEXT         = VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT,
-    eAdobergbNonlinearEXT      = VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT,
-    ePassThroughEXT            = VK_COLOR_SPACE_PASS_THROUGH_EXT,
-    eExtendedSrgbNonlinearEXT  = VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT,
-    eDisplayNativeAMD          = VK_COLOR_SPACE_DISPLAY_NATIVE_AMD
+    eDolbyvisionEXT VULKAN_HPP_DEPRECATED_17( "eDolbyvisionEXT is deprecated, but no reason was given in the API XML" ) = VK_COLOR_SPACE_DOLBYVISION_EXT,
+    eHdr10HlgEXT                                                                                                        = VK_COLOR_SPACE_HDR10_HLG_EXT,
+    eAdobergbLinearEXT                                                                                                  = VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT,
+    eAdobergbNonlinearEXT                                                                                               = VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT,
+    ePassThroughEXT                                                                                                     = VK_COLOR_SPACE_PASS_THROUGH_EXT,
+    eExtendedSrgbNonlinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT,
+    eDisplayNativeAMD         = VK_COLOR_SPACE_DISPLAY_NATIVE_AMD
   };
 
   enum class CompositeAlphaFlagBitsKHR : VkCompositeAlphaFlagsKHR
@@ -7030,7 +7055,8 @@
     eProtectedAccessOnlyEXT                   = VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT,
     eRayTracingDisplacementMicromapNV         = VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV,
     eDescriptorBufferEXT                      = VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT,
-    eCaptureData                              = VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR
+    eCaptureData                              = VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR,
+    eIndirectBindableEXT                      = VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT
   };
 
   using PipelineCreateFlags2KHR = Flags<PipelineCreateFlagBits2KHR>;
@@ -7055,7 +7081,7 @@
       PipelineCreateFlagBits2KHR::eColorAttachmentFeedbackLoopEXT | PipelineCreateFlagBits2KHR::eDepthStencilAttachmentFeedbackLoopEXT |
       PipelineCreateFlagBits2KHR::eNoProtectedAccessEXT | PipelineCreateFlagBits2KHR::eProtectedAccessOnlyEXT |
       PipelineCreateFlagBits2KHR::eRayTracingDisplacementMicromapNV | PipelineCreateFlagBits2KHR::eDescriptorBufferEXT |
-      PipelineCreateFlagBits2KHR::eCaptureData;
+      PipelineCreateFlagBits2KHR::eCaptureData | PipelineCreateFlagBits2KHR::eIndirectBindableEXT;
   };
 
   enum class BufferUsageFlagBits2KHR : VkBufferUsageFlags2KHR
@@ -7088,7 +7114,8 @@
     eResourceDescriptorBufferEXT             = VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT,
     ePushDescriptorsDescriptorBufferEXT      = VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT,
     eMicromapBuildInputReadOnlyEXT           = VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT,
-    eMicromapStorageEXT                      = VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT
+    eMicromapStorageEXT                      = VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT,
+    ePreprocessBufferEXT                     = VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT
   };
 
   using BufferUsageFlags2KHR = Flags<BufferUsageFlagBits2KHR>;
@@ -7111,7 +7138,7 @@
       BufferUsageFlagBits2KHR::eAccelerationStructureBuildInputReadOnly | BufferUsageFlagBits2KHR::eAccelerationStructureStorage |
       BufferUsageFlagBits2KHR::eSamplerDescriptorBufferEXT | BufferUsageFlagBits2KHR::eResourceDescriptorBufferEXT |
       BufferUsageFlagBits2KHR::ePushDescriptorsDescriptorBufferEXT | BufferUsageFlagBits2KHR::eMicromapBuildInputReadOnlyEXT |
-      BufferUsageFlagBits2KHR::eMicromapStorageEXT;
+      BufferUsageFlagBits2KHR::eMicromapStorageEXT | BufferUsageFlagBits2KHR::ePreprocessBufferEXT;
   };
 
   //=== VK_AMD_anti_lag ===
@@ -7139,7 +7166,8 @@
     eNoTaskShader                  = VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT,
     eDispatchBase                  = VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT,
     eFragmentShadingRateAttachment = VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT,
-    eFragmentDensityMapAttachment  = VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT
+    eFragmentDensityMapAttachment  = VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
+    eIndirectBindable              = VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT
   };
 
   using ShaderCreateFlagsEXT = Flags<ShaderCreateFlagBitsEXT>;
@@ -7151,7 +7179,7 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR ShaderCreateFlagsEXT allFlags =
       ShaderCreateFlagBitsEXT::eLinkStage | ShaderCreateFlagBitsEXT::eAllowVaryingSubgroupSize | ShaderCreateFlagBitsEXT::eRequireFullSubgroups |
       ShaderCreateFlagBitsEXT::eNoTaskShader | ShaderCreateFlagBitsEXT::eDispatchBase | ShaderCreateFlagBitsEXT::eFragmentShadingRateAttachment |
-      ShaderCreateFlagBitsEXT::eFragmentDensityMapAttachment;
+      ShaderCreateFlagBitsEXT::eFragmentDensityMapAttachment | ShaderCreateFlagBitsEXT::eIndirectBindable;
   };
 
   enum class ShaderCodeTypeEXT
@@ -7361,6 +7389,73 @@
     eOpengles = VK_PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR
   };
 
+  //=== VK_EXT_device_generated_commands ===
+
+  enum class IndirectCommandsTokenTypeEXT
+  {
+    eExecutionSet         = VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT,
+    ePushConstant         = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT,
+    eSequenceIndex        = VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT,
+    eIndexBuffer          = VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT,
+    eVertexBuffer         = VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT,
+    eDrawIndexed          = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT,
+    eDraw                 = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT,
+    eDrawIndexedCount     = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT,
+    eDrawCount            = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT,
+    eDispatch             = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT,
+    eDrawMeshTasksNV      = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT,
+    eDrawMeshTasksCountNV = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT,
+    eDrawMeshTasks        = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT,
+    eDrawMeshTasksCount   = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT,
+    eTraceRays2           = VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT
+  };
+
+  enum class IndirectExecutionSetInfoTypeEXT
+  {
+    ePipelines     = VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT,
+    eShaderObjects = VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT
+  };
+
+  enum class IndirectCommandsLayoutUsageFlagBitsEXT : VkIndirectCommandsLayoutUsageFlagsEXT
+  {
+    eExplicitPreprocess = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT,
+    eUnorderedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT
+  };
+
+  using IndirectCommandsLayoutUsageFlagsEXT = Flags<IndirectCommandsLayoutUsageFlagBitsEXT>;
+
+  template <>
+  struct FlagTraits<IndirectCommandsLayoutUsageFlagBitsEXT>
+  {
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                                isBitmask = true;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR IndirectCommandsLayoutUsageFlagsEXT allFlags =
+      IndirectCommandsLayoutUsageFlagBitsEXT::eExplicitPreprocess | IndirectCommandsLayoutUsageFlagBitsEXT::eUnorderedSequences;
+  };
+
+  enum class IndirectCommandsInputModeFlagBitsEXT : VkIndirectCommandsInputModeFlagsEXT
+  {
+    eVulkanIndexBuffer = VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT,
+    eDxgiIndexBuffer   = VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT
+  };
+
+  using IndirectCommandsInputModeFlagsEXT = Flags<IndirectCommandsInputModeFlagBitsEXT>;
+
+  template <>
+  struct FlagTraits<IndirectCommandsInputModeFlagBitsEXT>
+  {
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool                              isBitmask = true;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR IndirectCommandsInputModeFlagsEXT allFlags =
+      IndirectCommandsInputModeFlagBitsEXT::eVulkanIndexBuffer | IndirectCommandsInputModeFlagBitsEXT::eDxgiIndexBuffer;
+  };
+
+  //=== VK_EXT_depth_clamp_control ===
+
+  enum class DepthClampModeEXT
+  {
+    eViewportRange    = VK_DEPTH_CLAMP_MODE_VIEWPORT_RANGE_EXT,
+    eUserDefinedRange = VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT
+  };
+
   //===========================================================
   //=== Mapping from ObjectType to DebugReportObjectTypeEXT ===
   //===========================================================
@@ -7484,7 +7579,12 @@
         return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
 
         //=== VK_KHR_pipeline_binary ===
-      case VULKAN_HPP_NAMESPACE::ObjectType::ePipelineBinaryKHR: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
+      case VULKAN_HPP_NAMESPACE::ObjectType::ePipelineBinaryKHR:
+        return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
+
+        //=== VK_EXT_device_generated_commands ===
+      case VULKAN_HPP_NAMESPACE::ObjectType::eIndirectCommandsLayoutEXT: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
+      case VULKAN_HPP_NAMESPACE::ObjectType::eIndirectExecutionSetEXT: return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
 
       default: VULKAN_HPP_ASSERT( false && "unknown ObjectType" ); return VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
     }
diff --git a/include/vulkan/vulkan_extension_inspection.hpp b/include/vulkan/vulkan_extension_inspection.hpp
index da405d5..d68f92b 100644
--- a/include/vulkan/vulkan_extension_inspection.hpp
+++ b/include/vulkan/vulkan_extension_inspection.hpp
@@ -8,11 +8,15 @@
 #ifndef VULKAN_EXTENSION_INSPECTION_HPP
 #define VULKAN_EXTENSION_INSPECTION_HPP
 
-#include <map>
-#include <set>
-#include <string>
-#include <vector>
-#include <vulkan/vulkan.hpp>
+#if defined( VULKAN_HPP_ENABLE_STD_MODULE ) && defined( VULKAN_HPP_STD_MODULE )
+import VULKAN_HPP_STD_MODULE;
+#else
+#  include <map>
+#  include <set>
+#  include <string>
+#  include <vector>
+#  include <vulkan/vulkan.hpp>
+#endif
 
 namespace VULKAN_HPP_NAMESPACE
 {
@@ -446,7 +450,9 @@
       "VK_NV_shader_atomic_float16_vector",
       "VK_EXT_shader_replicated_composites",
       "VK_NV_ray_tracing_validation",
-      "VK_MESA_image_alignment_control"
+      "VK_EXT_device_generated_commands",
+      "VK_MESA_image_alignment_control",
+      "VK_EXT_depth_clamp_control"
     };
     return deviceExtensions;
   }
@@ -2333,11 +2339,23 @@
       { "VK_KHR_maintenance6", { { "VK_VERSION_1_1", { {} } } } },
       { "VK_NV_descriptor_pool_overallocation", { { "VK_VERSION_1_1", { {} } } } },
       { "VK_KHR_maintenance7", { { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_device_generated_commands",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_buffer_device_address",
+              "VK_KHR_maintenance5",
+            } } } } },
       { "VK_MESA_image_alignment_control",
         { { "VK_VERSION_1_0",
             { {
               "VK_KHR_get_physical_device_properties2",
             } } },
+          { "VK_VERSION_1_1", { {} } } } },
+      { "VK_EXT_depth_clamp_control",
+        { { "VK_VERSION_1_0",
+            { {
+              "VK_KHR_get_physical_device_properties2",
+            } } },
           { "VK_VERSION_1_1", { {} } } } }
     };
     auto depIt = dependencies.find( extension );
@@ -3116,7 +3134,8 @@
            ( extension == "VK_KHR_shader_relaxed_extended_instruction" ) || ( extension == "VK_NV_command_buffer_inheritance" ) ||
            ( extension == "VK_KHR_maintenance7" ) || ( extension == "VK_NV_shader_atomic_float16_vector" ) ||
            ( extension == "VK_EXT_shader_replicated_composites" ) || ( extension == "VK_NV_ray_tracing_validation" ) ||
-           ( extension == "VK_MESA_image_alignment_control" );
+           ( extension == "VK_EXT_device_generated_commands" ) || ( extension == "VK_MESA_image_alignment_control" ) ||
+           ( extension == "VK_EXT_depth_clamp_control" );
   }
 
   VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR_20 bool isInstanceExtension( std::string const & extension )
diff --git a/include/vulkan/vulkan_funcs.hpp b/include/vulkan/vulkan_funcs.hpp
index f91d6a4..95ffd72 100644
--- a/include/vulkan/vulkan_funcs.hpp
+++ b/include/vulkan/vulkan_funcs.hpp
@@ -25682,6 +25682,35 @@
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::setDepthClampRangeEXT( VULKAN_HPP_NAMESPACE::DepthClampModeEXT          depthClampMode,
+                                                               const VULKAN_HPP_NAMESPACE::DepthClampRangeEXT * pDepthClampRange,
+                                                               Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdSetDepthClampRangeEXT(
+      m_commandBuffer, static_cast<VkDepthClampModeEXT>( depthClampMode ), reinterpret_cast<const VkDepthClampRangeEXT *>( pDepthClampRange ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::setDepthClampRangeEXT( VULKAN_HPP_NAMESPACE::DepthClampModeEXT                  depthClampMode,
+                                                               Optional<const VULKAN_HPP_NAMESPACE::DepthClampRangeEXT> depthClampRange,
+                                                               Dispatch const &                                         d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+#  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
+    VULKAN_HPP_ASSERT( d.vkCmdSetDepthClampRangeEXT &&
+                       "Function <vkCmdSetDepthClampRangeEXT> requires <VK_EXT_depth_clamp_control> or <VK_EXT_shader_object>" );
+#  endif
+
+    d.vkCmdSetDepthClampRangeEXT(
+      m_commandBuffer,
+      static_cast<VkDepthClampModeEXT>( depthClampMode ),
+      reinterpret_cast<const VkDepthClampRangeEXT *>( static_cast<const VULKAN_HPP_NAMESPACE::DepthClampRangeEXT *>( depthClampRange ) ) );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
   //=== VK_KHR_pipeline_binary ===
 
   template <typename Dispatch>
@@ -26874,5 +26903,417 @@
   }
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+  //=== VK_EXT_device_generated_commands ===
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::getGeneratedCommandsMemoryRequirementsEXT( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoEXT * pInfo,
+                                                                            VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,
+                                                                            Dispatch const &                            d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkGetGeneratedCommandsMemoryRequirementsEXT( m_device,
+                                                   reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoEXT *>( pInfo ),
+                                                   reinterpret_cast<VkMemoryRequirements2 *>( pMemoryRequirements ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
+    Device::getGeneratedCommandsMemoryRequirementsEXT( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoEXT & info,
+                                                       Dispatch const &                                                         d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+#  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
+    VULKAN_HPP_ASSERT( d.vkGetGeneratedCommandsMemoryRequirementsEXT &&
+                       "Function <vkGetGeneratedCommandsMemoryRequirementsEXT> requires <VK_EXT_device_generated_commands>" );
+#  endif
+
+    VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
+    d.vkGetGeneratedCommandsMemoryRequirementsEXT( m_device,
+                                                   reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoEXT *>( &info ),
+                                                   reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
+
+    return memoryRequirements;
+  }
+
+  template <typename X, typename Y, typename... Z, typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+    Device::getGeneratedCommandsMemoryRequirementsEXT( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoEXT & info,
+                                                       Dispatch const &                                                         d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+#  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
+    VULKAN_HPP_ASSERT( d.vkGetGeneratedCommandsMemoryRequirementsEXT &&
+                       "Function <vkGetGeneratedCommandsMemoryRequirementsEXT> requires <VK_EXT_device_generated_commands>" );
+#  endif
+
+    VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+    VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
+    d.vkGetGeneratedCommandsMemoryRequirementsEXT( m_device,
+                                                   reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoEXT *>( &info ),
+                                                   reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
+
+    return structureChain;
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsEXT( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT * pGeneratedCommandsInfo,
+                                                                        VULKAN_HPP_NAMESPACE::CommandBuffer                    stateCommandBuffer,
+                                                                        Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdPreprocessGeneratedCommandsEXT(
+      m_commandBuffer, reinterpret_cast<const VkGeneratedCommandsInfoEXT *>( pGeneratedCommandsInfo ), static_cast<VkCommandBuffer>( stateCommandBuffer ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsEXT( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT & generatedCommandsInfo,
+                                                                        VULKAN_HPP_NAMESPACE::CommandBuffer                    stateCommandBuffer,
+                                                                        Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+#  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
+    VULKAN_HPP_ASSERT( d.vkCmdPreprocessGeneratedCommandsEXT && "Function <vkCmdPreprocessGeneratedCommandsEXT> requires <VK_EXT_device_generated_commands>" );
+#  endif
+
+    d.vkCmdPreprocessGeneratedCommandsEXT(
+      m_commandBuffer, reinterpret_cast<const VkGeneratedCommandsInfoEXT *>( &generatedCommandsInfo ), static_cast<VkCommandBuffer>( stateCommandBuffer ) );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::executeGeneratedCommandsEXT( VULKAN_HPP_NAMESPACE::Bool32                           isPreprocessed,
+                                                                     const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT * pGeneratedCommandsInfo,
+                                                                     Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkCmdExecuteGeneratedCommandsEXT(
+      m_commandBuffer, static_cast<VkBool32>( isPreprocessed ), reinterpret_cast<const VkGeneratedCommandsInfoEXT *>( pGeneratedCommandsInfo ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void CommandBuffer::executeGeneratedCommandsEXT( VULKAN_HPP_NAMESPACE::Bool32                           isPreprocessed,
+                                                                     const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT & generatedCommandsInfo,
+                                                                     Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+#  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
+    VULKAN_HPP_ASSERT( d.vkCmdExecuteGeneratedCommandsEXT && "Function <vkCmdExecuteGeneratedCommandsEXT> requires <VK_EXT_device_generated_commands>" );
+#  endif
+
+    d.vkCmdExecuteGeneratedCommandsEXT(
+      m_commandBuffer, static_cast<VkBool32>( isPreprocessed ), reinterpret_cast<const VkGeneratedCommandsInfoEXT *>( &generatedCommandsInfo ) );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
+    Device::createIndirectCommandsLayoutEXT( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoEXT * pCreateInfo,
+                                             const VULKAN_HPP_NAMESPACE::AllocationCallbacks *                 pAllocator,
+                                             VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT *                 pIndirectCommandsLayout,
+                                             Dispatch const &                                                  d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>( d.vkCreateIndirectCommandsLayoutEXT( m_device,
+                                                                     reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoEXT *>( pCreateInfo ),
+                                                                     reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
+                                                                     reinterpret_cast<VkIndirectCommandsLayoutEXT *>( pIndirectCommandsLayout ) ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT>::type
+                       Device::createIndirectCommandsLayoutEXT( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoEXT & createInfo,
+                                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>         allocator,
+                                             Dispatch const &                                                  d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+#  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
+    VULKAN_HPP_ASSERT( d.vkCreateIndirectCommandsLayoutEXT && "Function <vkCreateIndirectCommandsLayoutEXT> requires <VK_EXT_device_generated_commands>" );
+#  endif
+
+    VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT indirectCommandsLayout;
+    VULKAN_HPP_NAMESPACE::Result                    result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateIndirectCommandsLayoutEXT(
+      m_device,
+      reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoEXT *>( &createInfo ),
+      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+      reinterpret_cast<VkIndirectCommandsLayoutEXT *>( &indirectCommandsLayout ) ) );
+    VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutEXT" );
+
+    return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( indirectCommandsLayout ) );
+  }
+
+#  ifndef VULKAN_HPP_NO_SMART_HANDLE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT, Dispatch>>::type
+                       Device::createIndirectCommandsLayoutEXTUnique( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoEXT & createInfo,
+                                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>         allocator,
+                                                   Dispatch const &                                                  d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+#    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
+    VULKAN_HPP_ASSERT( d.vkCreateIndirectCommandsLayoutEXT && "Function <vkCreateIndirectCommandsLayoutEXT> requires <VK_EXT_device_generated_commands>" );
+#    endif
+
+    VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT indirectCommandsLayout;
+    VULKAN_HPP_NAMESPACE::Result                    result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateIndirectCommandsLayoutEXT(
+      m_device,
+      reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoEXT *>( &createInfo ),
+      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+      reinterpret_cast<VkIndirectCommandsLayoutEXT *>( &indirectCommandsLayout ) ) );
+    VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutEXTUnique" );
+
+    return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result,
+                                                                UniqueHandle<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT, Dispatch>(
+                                                                  indirectCommandsLayout, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+  }
+#  endif /* VULKAN_HPP_NO_SMART_HANDLE */
+#endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutEXT( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT   indirectCommandsLayout,
+                                                                   const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
+                                                                   Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkDestroyIndirectCommandsLayoutEXT(
+      m_device, static_cast<VkIndirectCommandsLayoutEXT>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutEXT( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT           indirectCommandsLayout,
+                                                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
+                                                                   Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+#  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
+    VULKAN_HPP_ASSERT( d.vkDestroyIndirectCommandsLayoutEXT && "Function <vkDestroyIndirectCommandsLayoutEXT> requires <VK_EXT_device_generated_commands>" );
+#  endif
+
+    d.vkDestroyIndirectCommandsLayoutEXT(
+      m_device,
+      static_cast<VkIndirectCommandsLayoutEXT>( indirectCommandsLayout ),
+      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT   indirectCommandsLayout,
+                                          const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
+                                          Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkDestroyIndirectCommandsLayoutEXT(
+      m_device, static_cast<VkIndirectCommandsLayoutEXT>( indirectCommandsLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT           indirectCommandsLayout,
+                                          Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
+                                          Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+#  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
+    VULKAN_HPP_ASSERT( d.vkDestroyIndirectCommandsLayoutEXT && "Function <vkDestroyIndirectCommandsLayoutEXT> requires <VK_EXT_device_generated_commands>" );
+#  endif
+
+    d.vkDestroyIndirectCommandsLayoutEXT(
+      m_device,
+      static_cast<VkIndirectCommandsLayoutEXT>( indirectCommandsLayout ),
+      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
+    Device::createIndirectExecutionSetEXT( const VULKAN_HPP_NAMESPACE::IndirectExecutionSetCreateInfoEXT * pCreateInfo,
+                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks *               pAllocator,
+                                           VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT *                 pIndirectExecutionSet,
+                                           Dispatch const &                                                d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    return static_cast<Result>( d.vkCreateIndirectExecutionSetEXT( m_device,
+                                                                   reinterpret_cast<const VkIndirectExecutionSetCreateInfoEXT *>( pCreateInfo ),
+                                                                   reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
+                                                                   reinterpret_cast<VkIndirectExecutionSetEXT *>( pIndirectExecutionSet ) ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT>::type
+                       Device::createIndirectExecutionSetEXT( const VULKAN_HPP_NAMESPACE::IndirectExecutionSetCreateInfoEXT & createInfo,
+                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>       allocator,
+                                           Dispatch const &                                                d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+#  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
+    VULKAN_HPP_ASSERT( d.vkCreateIndirectExecutionSetEXT && "Function <vkCreateIndirectExecutionSetEXT> requires <VK_EXT_device_generated_commands>" );
+#  endif
+
+    VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT indirectExecutionSet;
+    VULKAN_HPP_NAMESPACE::Result                  result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateIndirectExecutionSetEXT(
+      m_device,
+      reinterpret_cast<const VkIndirectExecutionSetCreateInfoEXT *>( &createInfo ),
+      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+      reinterpret_cast<VkIndirectExecutionSetEXT *>( &indirectExecutionSet ) ) );
+    VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectExecutionSetEXT" );
+
+    return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( indirectExecutionSet ) );
+  }
+
+#  ifndef VULKAN_HPP_NO_SMART_HANDLE
+  template <typename Dispatch>
+  VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT, Dispatch>>::type
+                       Device::createIndirectExecutionSetEXTUnique( const VULKAN_HPP_NAMESPACE::IndirectExecutionSetCreateInfoEXT & createInfo,
+                                                 Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>       allocator,
+                                                 Dispatch const &                                                d ) const
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+#    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
+    VULKAN_HPP_ASSERT( d.vkCreateIndirectExecutionSetEXT && "Function <vkCreateIndirectExecutionSetEXT> requires <VK_EXT_device_generated_commands>" );
+#    endif
+
+    VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT indirectExecutionSet;
+    VULKAN_HPP_NAMESPACE::Result                  result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateIndirectExecutionSetEXT(
+      m_device,
+      reinterpret_cast<const VkIndirectExecutionSetCreateInfoEXT *>( &createInfo ),
+      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+      reinterpret_cast<VkIndirectExecutionSetEXT *>( &indirectExecutionSet ) ) );
+    VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectExecutionSetEXTUnique" );
+
+    return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
+      result,
+      UniqueHandle<VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT, Dispatch>( indirectExecutionSet, ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
+  }
+#  endif /* VULKAN_HPP_NO_SMART_HANDLE */
+#endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::destroyIndirectExecutionSetEXT( VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT     indirectExecutionSet,
+                                                                 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
+                                                                 Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkDestroyIndirectExecutionSetEXT(
+      m_device, static_cast<VkIndirectExecutionSetEXT>( indirectExecutionSet ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::destroyIndirectExecutionSetEXT( VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT             indirectExecutionSet,
+                                                                 Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
+                                                                 Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+#  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
+    VULKAN_HPP_ASSERT( d.vkDestroyIndirectExecutionSetEXT && "Function <vkDestroyIndirectExecutionSetEXT> requires <VK_EXT_device_generated_commands>" );
+#  endif
+
+    d.vkDestroyIndirectExecutionSetEXT(
+      m_device,
+      static_cast<VkIndirectExecutionSetEXT>( indirectExecutionSet ),
+      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT     indirectExecutionSet,
+                                          const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
+                                          Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkDestroyIndirectExecutionSetEXT(
+      m_device, static_cast<VkIndirectExecutionSetEXT>( indirectExecutionSet ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT             indirectExecutionSet,
+                                          Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
+                                          Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+#  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
+    VULKAN_HPP_ASSERT( d.vkDestroyIndirectExecutionSetEXT && "Function <vkDestroyIndirectExecutionSetEXT> requires <VK_EXT_device_generated_commands>" );
+#  endif
+
+    d.vkDestroyIndirectExecutionSetEXT(
+      m_device,
+      static_cast<VkIndirectExecutionSetEXT>( indirectExecutionSet ),
+      reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::updateIndirectExecutionSetPipelineEXT( VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT indirectExecutionSet,
+                                                                        uint32_t                                      executionSetWriteCount,
+                                                                        const VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetPipelineEXT * pExecutionSetWrites,
+                                                                        Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkUpdateIndirectExecutionSetPipelineEXT( m_device,
+                                               static_cast<VkIndirectExecutionSetEXT>( indirectExecutionSet ),
+                                               executionSetWriteCount,
+                                               reinterpret_cast<const VkWriteIndirectExecutionSetPipelineEXT *>( pExecutionSetWrites ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::updateIndirectExecutionSetPipelineEXT(
+    VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT                                                              indirectExecutionSet,
+    VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetPipelineEXT> const & executionSetWrites,
+    Dispatch const &                                                                                           d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+#  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
+    VULKAN_HPP_ASSERT( d.vkUpdateIndirectExecutionSetPipelineEXT &&
+                       "Function <vkUpdateIndirectExecutionSetPipelineEXT> requires <VK_EXT_device_generated_commands>" );
+#  endif
+
+    d.vkUpdateIndirectExecutionSetPipelineEXT( m_device,
+                                               static_cast<VkIndirectExecutionSetEXT>( indirectExecutionSet ),
+                                               executionSetWrites.size(),
+                                               reinterpret_cast<const VkWriteIndirectExecutionSetPipelineEXT *>( executionSetWrites.data() ) );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::updateIndirectExecutionSetShaderEXT( VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT                    indirectExecutionSet,
+                                                                      uint32_t                                                         executionSetWriteCount,
+                                                                      const VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetShaderEXT * pExecutionSetWrites,
+                                                                      Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+    d.vkUpdateIndirectExecutionSetShaderEXT( m_device,
+                                             static_cast<VkIndirectExecutionSetEXT>( indirectExecutionSet ),
+                                             executionSetWriteCount,
+                                             reinterpret_cast<const VkWriteIndirectExecutionSetShaderEXT *>( pExecutionSetWrites ) );
+  }
+
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+  template <typename Dispatch>
+  VULKAN_HPP_INLINE void Device::updateIndirectExecutionSetShaderEXT(
+    VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT                                                            indirectExecutionSet,
+    VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetShaderEXT> const & executionSetWrites,
+    Dispatch const &                                                                                         d ) const VULKAN_HPP_NOEXCEPT
+  {
+    VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
+#  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
+    VULKAN_HPP_ASSERT( d.vkUpdateIndirectExecutionSetShaderEXT &&
+                       "Function <vkUpdateIndirectExecutionSetShaderEXT> requires <VK_EXT_device_generated_commands>" );
+#  endif
+
+    d.vkUpdateIndirectExecutionSetShaderEXT( m_device,
+                                             static_cast<VkIndirectExecutionSetEXT>( indirectExecutionSet ),
+                                             executionSetWrites.size(),
+                                             reinterpret_cast<const VkWriteIndirectExecutionSetShaderEXT *>( executionSetWrites.data() ) );
+  }
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
 }  // namespace VULKAN_HPP_NAMESPACE
 #endif
diff --git a/include/vulkan/vulkan_handles.hpp b/include/vulkan/vulkan_handles.hpp
index 4670c46..48a69c7 100644
--- a/include/vulkan/vulkan_handles.hpp
+++ b/include/vulkan/vulkan_handles.hpp
@@ -1873,11 +1873,41 @@
   //=== VK_NV_ray_tracing_validation ===
   struct PhysicalDeviceRayTracingValidationFeaturesNV;
 
+  //=== VK_EXT_device_generated_commands ===
+  struct PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT;
+  struct PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT;
+  struct GeneratedCommandsMemoryRequirementsInfoEXT;
+  struct IndirectExecutionSetCreateInfoEXT;
+  union IndirectExecutionSetInfoEXT;
+  struct IndirectExecutionSetPipelineInfoEXT;
+  struct IndirectExecutionSetShaderInfoEXT;
+  struct GeneratedCommandsInfoEXT;
+  struct WriteIndirectExecutionSetPipelineEXT;
+  struct IndirectCommandsLayoutCreateInfoEXT;
+  struct IndirectCommandsLayoutTokenEXT;
+  struct DrawIndirectCountIndirectCommandEXT;
+  struct IndirectCommandsVertexBufferTokenEXT;
+  struct BindVertexBufferIndirectCommandEXT;
+  struct IndirectCommandsIndexBufferTokenEXT;
+  struct BindIndexBufferIndirectCommandEXT;
+  struct IndirectCommandsPushConstantTokenEXT;
+  struct IndirectCommandsExecutionSetTokenEXT;
+  union IndirectCommandsTokenDataEXT;
+  struct IndirectExecutionSetShaderLayoutInfoEXT;
+  struct GeneratedCommandsPipelineInfoEXT;
+  struct GeneratedCommandsShaderInfoEXT;
+  struct WriteIndirectExecutionSetShaderEXT;
+
   //=== VK_MESA_image_alignment_control ===
   struct PhysicalDeviceImageAlignmentControlFeaturesMESA;
   struct PhysicalDeviceImageAlignmentControlPropertiesMESA;
   struct ImageAlignmentControlCreateInfoMESA;
 
+  //=== VK_EXT_depth_clamp_control ===
+  struct PhysicalDeviceDepthClampControlFeaturesEXT;
+  struct PipelineViewportDepthClampControlCreateInfoEXT;
+  struct DepthClampRangeEXT;
+
   //===================================
   //=== HANDLE forward declarations ===
   //===================================
@@ -1981,6 +2011,10 @@
   //=== VK_KHR_pipeline_binary ===
   class PipelineBinaryKHR;
 
+  //=== VK_EXT_device_generated_commands ===
+  class IndirectCommandsLayoutEXT;
+  class IndirectExecutionSetEXT;
+
 #ifndef VULKAN_HPP_NO_SMART_HANDLE
   //======================
   //=== UNIQUE HANDLEs ===
@@ -2446,6 +2480,25 @@
   };
 
   using UniquePipelineBinaryKHR = UniqueHandle<PipelineBinaryKHR, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  //=== VK_EXT_device_generated_commands ===
+  template <typename Dispatch>
+  class UniqueHandleTraits<IndirectCommandsLayoutEXT, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueIndirectCommandsLayoutEXT = UniqueHandle<IndirectCommandsLayoutEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
+
+  template <typename Dispatch>
+  class UniqueHandleTraits<IndirectExecutionSetEXT, Dispatch>
+  {
+  public:
+    using deleter = ObjectDestroy<Device, Dispatch>;
+  };
+
+  using UniqueIndirectExecutionSetEXT = UniqueHandle<IndirectExecutionSetEXT, VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>;
 #endif /*VULKAN_HPP_NO_SMART_HANDLE*/
 
   //===============
@@ -7187,6 +7240,17 @@
                          Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void setDepthClampRangeEXT( VULKAN_HPP_NAMESPACE::DepthClampModeEXT          depthClampMode,
+                                const VULKAN_HPP_NAMESPACE::DepthClampRangeEXT * pDepthClampRange,
+                                Dispatch const & d                               VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void setDepthClampRangeEXT( VULKAN_HPP_NAMESPACE::DepthClampModeEXT                                  depthClampMode,
+                                Optional<const VULKAN_HPP_NAMESPACE::DepthClampRangeEXT> depthClampRange VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                                Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
     //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
 
     template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
@@ -7258,6 +7322,30 @@
       Dispatch const & d                                                        VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+    //=== VK_EXT_device_generated_commands ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void preprocessGeneratedCommandsEXT( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT * pGeneratedCommandsInfo,
+                                         VULKAN_HPP_NAMESPACE::CommandBuffer                    stateCommandBuffer,
+                                         Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void preprocessGeneratedCommandsEXT( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT & generatedCommandsInfo,
+                                         VULKAN_HPP_NAMESPACE::CommandBuffer                    stateCommandBuffer,
+                                         Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void executeGeneratedCommandsEXT( VULKAN_HPP_NAMESPACE::Bool32                           isPreprocessed,
+                                      const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT * pGeneratedCommandsInfo,
+                                      Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void executeGeneratedCommandsEXT( VULKAN_HPP_NAMESPACE::Bool32                           isPreprocessed,
+                                      const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT & generatedCommandsInfo,
+                                      Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
     operator VkCommandBuffer() const VULKAN_HPP_NOEXCEPT
     {
       return m_commandBuffer;
@@ -8855,6 +8943,116 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
   };
 
+  class IndirectCommandsLayoutEXT
+  {
+  public:
+    using CType      = VkIndirectCommandsLayoutEXT;
+    using NativeType = VkIndirectCommandsLayoutEXT;
+
+    static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eIndirectCommandsLayoutEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
+      VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
+
+  public:
+    IndirectCommandsLayoutEXT() VULKAN_HPP_NOEXCEPT{};  // = default - try to workaround a compiler issue
+    IndirectCommandsLayoutEXT( IndirectCommandsLayoutEXT const & rhs )             = default;
+    IndirectCommandsLayoutEXT & operator=( IndirectCommandsLayoutEXT const & rhs ) = default;
+
+#if !defined( VULKAN_HPP_HANDLES_MOVE_EXCHANGE )
+    IndirectCommandsLayoutEXT( IndirectCommandsLayoutEXT && rhs )             = default;
+    IndirectCommandsLayoutEXT & operator=( IndirectCommandsLayoutEXT && rhs ) = default;
+#else
+    IndirectCommandsLayoutEXT( IndirectCommandsLayoutEXT && rhs ) VULKAN_HPP_NOEXCEPT
+      : m_indirectCommandsLayoutEXT( VULKAN_HPP_NAMESPACE::exchange( rhs.m_indirectCommandsLayoutEXT, {} ) )
+    {
+    }
+
+    IndirectCommandsLayoutEXT & operator=( IndirectCommandsLayoutEXT && rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      m_indirectCommandsLayoutEXT = VULKAN_HPP_NAMESPACE::exchange( rhs.m_indirectCommandsLayoutEXT, {} );
+      return *this;
+    }
+#endif
+
+    VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
+    VULKAN_HPP_TYPESAFE_EXPLICIT IndirectCommandsLayoutEXT( VkIndirectCommandsLayoutEXT indirectCommandsLayoutEXT ) VULKAN_HPP_NOEXCEPT
+      : m_indirectCommandsLayoutEXT( indirectCommandsLayoutEXT )
+    {
+    }
+
+#if ( VULKAN_HPP_TYPESAFE_CONVERSION == 1 )
+    IndirectCommandsLayoutEXT & operator=( VkIndirectCommandsLayoutEXT indirectCommandsLayoutEXT ) VULKAN_HPP_NOEXCEPT
+    {
+      m_indirectCommandsLayoutEXT = indirectCommandsLayoutEXT;
+      return *this;
+    }
+#endif
+
+    IndirectCommandsLayoutEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
+    {
+      m_indirectCommandsLayoutEXT = {};
+      return *this;
+    }
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( IndirectCommandsLayoutEXT const & ) const = default;
+#else
+    bool operator==( IndirectCommandsLayoutEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return m_indirectCommandsLayoutEXT == rhs.m_indirectCommandsLayoutEXT;
+    }
+
+    bool operator!=( IndirectCommandsLayoutEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return m_indirectCommandsLayoutEXT != rhs.m_indirectCommandsLayoutEXT;
+    }
+
+    bool operator<( IndirectCommandsLayoutEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return m_indirectCommandsLayoutEXT < rhs.m_indirectCommandsLayoutEXT;
+    }
+#endif
+
+    VULKAN_HPP_TYPESAFE_EXPLICIT operator VkIndirectCommandsLayoutEXT() const VULKAN_HPP_NOEXCEPT
+    {
+      return m_indirectCommandsLayoutEXT;
+    }
+
+    explicit operator bool() const VULKAN_HPP_NOEXCEPT
+    {
+      return m_indirectCommandsLayoutEXT != VK_NULL_HANDLE;
+    }
+
+    bool operator!() const VULKAN_HPP_NOEXCEPT
+    {
+      return m_indirectCommandsLayoutEXT == VK_NULL_HANDLE;
+    }
+
+  private:
+    VkIndirectCommandsLayoutEXT m_indirectCommandsLayoutEXT = {};
+  };
+
+  template <>
+  struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eIndirectCommandsLayoutEXT>
+  {
+    using Type = VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT;
+  };
+
+#if ( VK_USE_64_BIT_PTR_DEFINES == 1 )
+  template <>
+  struct CppType<VkIndirectCommandsLayoutEXT, VK_NULL_HANDLE>
+  {
+    using Type = VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT;
+  };
+#endif
+
+  template <>
+  struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT>
+  {
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
+  };
+
   class IndirectCommandsLayoutNV
   {
   public:
@@ -8965,6 +9163,116 @@
     static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
   };
 
+  class IndirectExecutionSetEXT
+  {
+  public:
+    using CType      = VkIndirectExecutionSetEXT;
+    using NativeType = VkIndirectExecutionSetEXT;
+
+    static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eIndirectExecutionSetEXT;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
+      VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
+
+  public:
+    IndirectExecutionSetEXT() VULKAN_HPP_NOEXCEPT{};  // = default - try to workaround a compiler issue
+    IndirectExecutionSetEXT( IndirectExecutionSetEXT const & rhs )             = default;
+    IndirectExecutionSetEXT & operator=( IndirectExecutionSetEXT const & rhs ) = default;
+
+#if !defined( VULKAN_HPP_HANDLES_MOVE_EXCHANGE )
+    IndirectExecutionSetEXT( IndirectExecutionSetEXT && rhs )             = default;
+    IndirectExecutionSetEXT & operator=( IndirectExecutionSetEXT && rhs ) = default;
+#else
+    IndirectExecutionSetEXT( IndirectExecutionSetEXT && rhs ) VULKAN_HPP_NOEXCEPT
+      : m_indirectExecutionSetEXT( VULKAN_HPP_NAMESPACE::exchange( rhs.m_indirectExecutionSetEXT, {} ) )
+    {
+    }
+
+    IndirectExecutionSetEXT & operator=( IndirectExecutionSetEXT && rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      m_indirectExecutionSetEXT = VULKAN_HPP_NAMESPACE::exchange( rhs.m_indirectExecutionSetEXT, {} );
+      return *this;
+    }
+#endif
+
+    VULKAN_HPP_CONSTEXPR IndirectExecutionSetEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT {}
+
+    VULKAN_HPP_TYPESAFE_EXPLICIT IndirectExecutionSetEXT( VkIndirectExecutionSetEXT indirectExecutionSetEXT ) VULKAN_HPP_NOEXCEPT
+      : m_indirectExecutionSetEXT( indirectExecutionSetEXT )
+    {
+    }
+
+#if ( VULKAN_HPP_TYPESAFE_CONVERSION == 1 )
+    IndirectExecutionSetEXT & operator=( VkIndirectExecutionSetEXT indirectExecutionSetEXT ) VULKAN_HPP_NOEXCEPT
+    {
+      m_indirectExecutionSetEXT = indirectExecutionSetEXT;
+      return *this;
+    }
+#endif
+
+    IndirectExecutionSetEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT
+    {
+      m_indirectExecutionSetEXT = {};
+      return *this;
+    }
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( IndirectExecutionSetEXT const & ) const = default;
+#else
+    bool operator==( IndirectExecutionSetEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return m_indirectExecutionSetEXT == rhs.m_indirectExecutionSetEXT;
+    }
+
+    bool operator!=( IndirectExecutionSetEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return m_indirectExecutionSetEXT != rhs.m_indirectExecutionSetEXT;
+    }
+
+    bool operator<( IndirectExecutionSetEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return m_indirectExecutionSetEXT < rhs.m_indirectExecutionSetEXT;
+    }
+#endif
+
+    VULKAN_HPP_TYPESAFE_EXPLICIT operator VkIndirectExecutionSetEXT() const VULKAN_HPP_NOEXCEPT
+    {
+      return m_indirectExecutionSetEXT;
+    }
+
+    explicit operator bool() const VULKAN_HPP_NOEXCEPT
+    {
+      return m_indirectExecutionSetEXT != VK_NULL_HANDLE;
+    }
+
+    bool operator!() const VULKAN_HPP_NOEXCEPT
+    {
+      return m_indirectExecutionSetEXT == VK_NULL_HANDLE;
+    }
+
+  private:
+    VkIndirectExecutionSetEXT m_indirectExecutionSetEXT = {};
+  };
+
+  template <>
+  struct CppType<VULKAN_HPP_NAMESPACE::ObjectType, VULKAN_HPP_NAMESPACE::ObjectType::eIndirectExecutionSetEXT>
+  {
+    using Type = VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT;
+  };
+
+#if ( VK_USE_64_BIT_PTR_DEFINES == 1 )
+  template <>
+  struct CppType<VkIndirectExecutionSetEXT, VK_NULL_HANDLE>
+  {
+    using Type = VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT;
+  };
+#endif
+
+  template <>
+  struct isVulkanHandleType<VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT>
+  {
+    static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true;
+  };
+
   class PrivateDataSlot
   {
   public:
@@ -15352,6 +15660,133 @@
                                  Dispatch const & d                                       VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
 
+    //=== VK_EXT_device_generated_commands ===
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void getGeneratedCommandsMemoryRequirementsEXT( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoEXT * pInfo,
+                                                    VULKAN_HPP_NAMESPACE::MemoryRequirements2 *                              pMemoryRequirements,
+                                                    Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2
+                         getGeneratedCommandsMemoryRequirementsEXT( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoEXT & info,
+                                                                    Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+    template <typename X, typename Y, typename... Z, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+                         getGeneratedCommandsMemoryRequirementsEXT( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoEXT & info,
+                                                                    Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result createIndirectCommandsLayoutEXT( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoEXT * pCreateInfo,
+                                                                 const VULKAN_HPP_NAMESPACE::AllocationCallbacks *                 pAllocator,
+                                                                 VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT *                 pIndirectCommandsLayout,
+                                                                 Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT>::type
+      createIndirectCommandsLayoutEXT( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoEXT &   createInfo,
+                                       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                                       Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#  ifndef VULKAN_HPP_NO_SMART_HANDLE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT, Dispatch>>::type
+      createIndirectCommandsLayoutEXTUnique( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoEXT &   createInfo,
+                                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                                             Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#  endif /* VULKAN_HPP_NO_SMART_HANDLE */
+#endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void destroyIndirectCommandsLayoutEXT( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT   indirectCommandsLayout,
+                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
+                                           Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void destroyIndirectCommandsLayoutEXT( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT indirectCommandsLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT,
+                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                                           Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT   indirectCommandsLayout,
+                  const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
+                  Dispatch const & d                                VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT                     indirectCommandsLayout,
+                  Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                  Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD Result createIndirectExecutionSetEXT( const VULKAN_HPP_NAMESPACE::IndirectExecutionSetCreateInfoEXT * pCreateInfo,
+                                                               const VULKAN_HPP_NAMESPACE::AllocationCallbacks *               pAllocator,
+                                                               VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT *                 pIndirectExecutionSet,
+                                                               Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT>::type
+      createIndirectExecutionSetEXT( const VULKAN_HPP_NAMESPACE::IndirectExecutionSetCreateInfoEXT &     createInfo,
+                                     Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                                     Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#  ifndef VULKAN_HPP_NO_SMART_HANDLE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    VULKAN_HPP_NODISCARD typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT, Dispatch>>::type
+      createIndirectExecutionSetEXTUnique( const VULKAN_HPP_NAMESPACE::IndirectExecutionSetCreateInfoEXT &     createInfo,
+                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                                           Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
+#  endif /* VULKAN_HPP_NO_SMART_HANDLE */
+#endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void destroyIndirectExecutionSetEXT( VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT     indirectExecutionSet,
+                                         const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
+                                         Dispatch const & d                                VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void destroyIndirectExecutionSetEXT( VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT indirectExecutionSet  VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT,
+                                         Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                                         Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void destroy( VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT     indirectExecutionSet,
+                  const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
+                  Dispatch const & d                                VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void destroy( VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT                       indirectExecutionSet,
+                  Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
+                  Dispatch const & d                                                  VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void updateIndirectExecutionSetPipelineEXT( VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT                      indirectExecutionSet,
+                                                uint32_t                                                           executionSetWriteCount,
+                                                const VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetPipelineEXT * pExecutionSetWrites,
+                                                Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void updateIndirectExecutionSetPipelineEXT(
+      VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT                                                              indirectExecutionSet,
+      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetPipelineEXT> const & executionSetWrites,
+      Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void updateIndirectExecutionSetShaderEXT( VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT                    indirectExecutionSet,
+                                              uint32_t                                                         executionSetWriteCount,
+                                              const VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetShaderEXT * pExecutionSetWrites,
+                                              Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
+    template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
+    void updateIndirectExecutionSetShaderEXT(
+      VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT                                                            indirectExecutionSet,
+      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetShaderEXT> const & executionSetWrites,
+      Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+#endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
+
     operator VkDevice() const VULKAN_HPP_NOEXCEPT
     {
       return m_device;
diff --git a/include/vulkan/vulkan_hash.hpp b/include/vulkan/vulkan_hash.hpp
index 1894033..80415ce 100644
--- a/include/vulkan/vulkan_hash.hpp
+++ b/include/vulkan/vulkan_hash.hpp
@@ -536,6 +536,26 @@
     }
   };
 
+  //=== VK_EXT_device_generated_commands ===
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT const & indirectCommandsLayoutEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      return std::hash<VkIndirectCommandsLayoutEXT>{}( static_cast<VkIndirectCommandsLayoutEXT>( indirectCommandsLayoutEXT ) );
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT const & indirectExecutionSetEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      return std::hash<VkIndirectExecutionSetEXT>{}( static_cast<VkIndirectExecutionSetEXT>( indirectExecutionSetEXT ) );
+    }
+  };
+
 #if 14 <= VULKAN_HPP_CPP_VERSION
   //======================================
   //=== HASH structures for structures ===
@@ -1475,6 +1495,19 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandEXT const & bindIndexBufferIndirectCommandEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, bindIndexBufferIndirectCommandEXT.bufferAddress );
+      VULKAN_HPP_HASH_COMBINE( seed, bindIndexBufferIndirectCommandEXT.size );
+      VULKAN_HPP_HASH_COMBINE( seed, bindIndexBufferIndirectCommandEXT.indexType );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV const & bindIndexBufferIndirectCommandNV ) const VULKAN_HPP_NOEXCEPT
@@ -1654,6 +1687,19 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandEXT const & bindVertexBufferIndirectCommandEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, bindVertexBufferIndirectCommandEXT.bufferAddress );
+      VULKAN_HPP_HASH_COMBINE( seed, bindVertexBufferIndirectCommandEXT.size );
+      VULKAN_HPP_HASH_COMBINE( seed, bindVertexBufferIndirectCommandEXT.stride );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV const & bindVertexBufferIndirectCommandNV ) const VULKAN_HPP_NOEXCEPT
@@ -3250,6 +3296,18 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::DepthClampRangeEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::DepthClampRangeEXT const & depthClampRangeEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, depthClampRangeEXT.minDepthClamp );
+      VULKAN_HPP_HASH_COMBINE( seed, depthClampRangeEXT.maxDepthClamp );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT const & descriptorAddressInfoEXT ) const VULKAN_HPP_NOEXCEPT
@@ -4419,6 +4477,19 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::DrawIndirectCountIndirectCommandEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::DrawIndirectCountIndirectCommandEXT const & drawIndirectCountIndirectCommandEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, drawIndirectCountIndirectCommandEXT.bufferAddress );
+      VULKAN_HPP_HASH_COMBINE( seed, drawIndirectCountIndirectCommandEXT.stride );
+      VULKAN_HPP_HASH_COMBINE( seed, drawIndirectCountIndirectCommandEXT.commandCount );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandEXT>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandEXT const & drawMeshTasksIndirectCommandEXT ) const VULKAN_HPP_NOEXCEPT
@@ -5206,6 +5277,28 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT const & generatedCommandsInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoEXT.shaderStages );
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoEXT.indirectExecutionSet );
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoEXT.indirectCommandsLayout );
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoEXT.indirectAddress );
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoEXT.indirectAddressSize );
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoEXT.preprocessAddress );
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoEXT.preprocessSize );
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoEXT.maxSequenceCount );
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoEXT.sequenceCountAddress );
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoEXT.maxDrawCount );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV const & indirectCommandsStreamNV ) const VULKAN_HPP_NOEXCEPT
@@ -5243,6 +5336,23 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoEXT const & generatedCommandsMemoryRequirementsInfoEXT ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsMemoryRequirementsInfoEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsMemoryRequirementsInfoEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsMemoryRequirementsInfoEXT.indirectExecutionSet );
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsMemoryRequirementsInfoEXT.indirectCommandsLayout );
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsMemoryRequirementsInfoEXT.maxSequenceCount );
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsMemoryRequirementsInfoEXT.maxDrawCount );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV>
   {
     std::size_t
@@ -5260,6 +5370,33 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::GeneratedCommandsPipelineInfoEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::GeneratedCommandsPipelineInfoEXT const & generatedCommandsPipelineInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsPipelineInfoEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsPipelineInfoEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsPipelineInfoEXT.pipeline );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::GeneratedCommandsShaderInfoEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::GeneratedCommandsShaderInfoEXT const & generatedCommandsShaderInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsShaderInfoEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsShaderInfoEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsShaderInfoEXT.shaderCount );
+      VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsShaderInfoEXT.pShaders );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV const & latencyTimingsFrameReportNV ) const VULKAN_HPP_NOEXCEPT
@@ -6442,6 +6579,82 @@
 #  endif /*VK_USE_PLATFORM_FUCHSIA*/
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::IndirectCommandsExecutionSetTokenEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectCommandsExecutionSetTokenEXT const & indirectCommandsExecutionSetTokenEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsExecutionSetTokenEXT.type );
+      VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsExecutionSetTokenEXT.shaderStages );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::IndirectCommandsIndexBufferTokenEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectCommandsIndexBufferTokenEXT const & indirectCommandsIndexBufferTokenEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsIndexBufferTokenEXT.mode );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PushConstantRange>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PushConstantRange const & pushConstantRange ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, pushConstantRange.stageFlags );
+      VULKAN_HPP_HASH_COMBINE( seed, pushConstantRange.offset );
+      VULKAN_HPP_HASH_COMBINE( seed, pushConstantRange.size );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::IndirectCommandsPushConstantTokenEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectCommandsPushConstantTokenEXT const & indirectCommandsPushConstantTokenEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsPushConstantTokenEXT.updateRange );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::IndirectCommandsVertexBufferTokenEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectCommandsVertexBufferTokenEXT const & indirectCommandsVertexBufferTokenEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsVertexBufferTokenEXT.vertexBindingUnit );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoEXT const & indirectCommandsLayoutCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoEXT.flags );
+      VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoEXT.shaderStages );
+      VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoEXT.indirectStride );
+      VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoEXT.pipelineLayout );
+      VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoEXT.tokenCount );
+      VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoEXT.pTokens );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV const & indirectCommandsLayoutTokenNV ) const VULKAN_HPP_NOEXCEPT
@@ -6485,6 +6698,53 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::IndirectExecutionSetPipelineInfoEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectExecutionSetPipelineInfoEXT const & indirectExecutionSetPipelineInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, indirectExecutionSetPipelineInfoEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, indirectExecutionSetPipelineInfoEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, indirectExecutionSetPipelineInfoEXT.initialPipeline );
+      VULKAN_HPP_HASH_COMBINE( seed, indirectExecutionSetPipelineInfoEXT.maxPipelineCount );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::IndirectExecutionSetShaderLayoutInfoEXT>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::IndirectExecutionSetShaderLayoutInfoEXT const & indirectExecutionSetShaderLayoutInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, indirectExecutionSetShaderLayoutInfoEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, indirectExecutionSetShaderLayoutInfoEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, indirectExecutionSetShaderLayoutInfoEXT.setLayoutCount );
+      VULKAN_HPP_HASH_COMBINE( seed, indirectExecutionSetShaderLayoutInfoEXT.pSetLayouts );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::IndirectExecutionSetShaderInfoEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectExecutionSetShaderInfoEXT const & indirectExecutionSetShaderInfoEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, indirectExecutionSetShaderInfoEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, indirectExecutionSetShaderInfoEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, indirectExecutionSetShaderInfoEXT.shaderCount );
+      VULKAN_HPP_HASH_COMBINE( seed, indirectExecutionSetShaderInfoEXT.pInitialShaders );
+      VULKAN_HPP_HASH_COMBINE( seed, indirectExecutionSetShaderInfoEXT.pSetLayoutInfos );
+      VULKAN_HPP_HASH_COMBINE( seed, indirectExecutionSetShaderInfoEXT.maxShaderCount );
+      VULKAN_HPP_HASH_COMBINE( seed, indirectExecutionSetShaderInfoEXT.pushConstantRangeCount );
+      VULKAN_HPP_HASH_COMBINE( seed, indirectExecutionSetShaderInfoEXT.pPushConstantRanges );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL const & initializePerformanceApiInfoINTEL ) const VULKAN_HPP_NOEXCEPT
@@ -8064,6 +8324,20 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampControlFeaturesEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampControlFeaturesEXT const & physicalDeviceDepthClampControlFeaturesEXT ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthClampControlFeaturesEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthClampControlFeaturesEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthClampControlFeaturesEXT.depthClampControl );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampZeroOneFeaturesEXT>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampZeroOneFeaturesEXT const & physicalDeviceDepthClampZeroOneFeaturesEXT ) const
@@ -8314,6 +8588,21 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT const & physicalDeviceDeviceGeneratedCommandsFeaturesEXT )
+      const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsFeaturesEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsFeaturesEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsFeaturesEXT.deviceGeneratedCommands );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsFeaturesEXT.dynamicGeneratedPipelineLayout );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV>
   {
     std::size_t operator()(
@@ -8328,6 +8617,32 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT>
+  {
+    std::size_t
+      operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT const & physicalDeviceDeviceGeneratedCommandsPropertiesEXT ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesEXT.maxIndirectPipelineCount );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesEXT.maxIndirectShaderObjectCount );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesEXT.maxIndirectSequenceCount );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesEXT.maxIndirectCommandsTokenCount );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesEXT.maxIndirectCommandsTokenOffset );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesEXT.maxIndirectCommandsIndirectStride );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesEXT.supportedIndirectCommandsInputModes );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesEXT.supportedIndirectCommandsShaderStages );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesEXT.supportedIndirectCommandsShaderStagesPipelineBinding );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesEXT.supportedIndirectCommandsShaderStagesShaderBinding );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesEXT.deviceGeneratedCommandsTransformFeedback );
+      VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesEXT.deviceGeneratedCommandsMultiDrawIndirectCount );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & physicalDeviceDeviceGeneratedCommandsPropertiesNV )
@@ -13202,19 +13517,6 @@
   };
 
   template <>
-  struct hash<VULKAN_HPP_NAMESPACE::PushConstantRange>
-  {
-    std::size_t operator()( VULKAN_HPP_NAMESPACE::PushConstantRange const & pushConstantRange ) const VULKAN_HPP_NOEXCEPT
-    {
-      std::size_t seed = 0;
-      VULKAN_HPP_HASH_COMBINE( seed, pushConstantRange.stageFlags );
-      VULKAN_HPP_HASH_COMBINE( seed, pushConstantRange.offset );
-      VULKAN_HPP_HASH_COMBINE( seed, pushConstantRange.size );
-      return seed;
-    }
-  };
-
-  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const & pipelineLayoutCreateInfo ) const VULKAN_HPP_NOEXCEPT
@@ -13511,6 +13813,21 @@
   };
 
   template <>
+  struct hash<VULKAN_HPP_NAMESPACE::PipelineViewportDepthClampControlCreateInfoEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineViewportDepthClampControlCreateInfoEXT const & pipelineViewportDepthClampControlCreateInfoEXT ) const
+      VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportDepthClampControlCreateInfoEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportDepthClampControlCreateInfoEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportDepthClampControlCreateInfoEXT.depthClampMode );
+      VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportDepthClampControlCreateInfoEXT.pDepthClampRange );
+      return seed;
+    }
+  };
+
+  template <>
   struct hash<VULKAN_HPP_NAMESPACE::PipelineViewportDepthClipControlCreateInfoEXT>
   {
     std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineViewportDepthClipControlCreateInfoEXT const & pipelineViewportDepthClipControlCreateInfoEXT ) const
@@ -17139,6 +17456,34 @@
     }
   };
 
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetPipelineEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetPipelineEXT const & writeIndirectExecutionSetPipelineEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, writeIndirectExecutionSetPipelineEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, writeIndirectExecutionSetPipelineEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, writeIndirectExecutionSetPipelineEXT.index );
+      VULKAN_HPP_HASH_COMBINE( seed, writeIndirectExecutionSetPipelineEXT.pipeline );
+      return seed;
+    }
+  };
+
+  template <>
+  struct hash<VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetShaderEXT>
+  {
+    std::size_t operator()( VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetShaderEXT const & writeIndirectExecutionSetShaderEXT ) const VULKAN_HPP_NOEXCEPT
+    {
+      std::size_t seed = 0;
+      VULKAN_HPP_HASH_COMBINE( seed, writeIndirectExecutionSetShaderEXT.sType );
+      VULKAN_HPP_HASH_COMBINE( seed, writeIndirectExecutionSetShaderEXT.pNext );
+      VULKAN_HPP_HASH_COMBINE( seed, writeIndirectExecutionSetShaderEXT.index );
+      VULKAN_HPP_HASH_COMBINE( seed, writeIndirectExecutionSetShaderEXT.shader );
+      return seed;
+    }
+  };
+
 #  if defined( VK_USE_PLATFORM_XCB_KHR )
   template <>
   struct hash<VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR>
diff --git a/include/vulkan/vulkan_hpp_macros.hpp b/include/vulkan/vulkan_hpp_macros.hpp
index b754679..0ad04dd 100644
--- a/include/vulkan/vulkan_hpp_macros.hpp
+++ b/include/vulkan/vulkan_hpp_macros.hpp
@@ -87,6 +87,19 @@
 #  define VULKAN_HPP_SUPPORT_SPAN
 #endif
 
+#if defined( __cpp_lib_modules ) && !defined( VULKAN_HPP_STD_MODULE ) && defined( VULKAN_HPP_ENABLE_STD_MODULE )
+#  define VULKAN_HPP_STD_MODULE std.compat
+#endif
+
+#ifndef VK_USE_64_BIT_PTR_DEFINES
+#  if defined( __LP64__ ) || defined( _WIN64 ) || ( defined( __x86_64__ ) && !defined( __ILP32__ ) ) || defined( _M_X64 ) || defined( __ia64 ) || \
+    defined( _M_IA64 ) || defined( __aarch64__ ) || defined( __powerpc64__ ) || ( defined( __riscv ) && __riscv_xlen == 64 )
+#    define VK_USE_64_BIT_PTR_DEFINES 1
+#  else
+#    define VK_USE_64_BIT_PTR_DEFINES 0
+#  endif
+#endif
+
 // 32-bit vulkan is not typesafe for non-dispatchable handles, so don't allow copy constructors on this platform by default.
 // To enable this feature on 32-bit platforms please #define VULKAN_HPP_TYPESAFE_CONVERSION 1
 // To disable this feature on 64-bit platforms please #define VULKAN_HPP_TYPESAFE_CONVERSION 0
@@ -185,6 +198,12 @@
 #  define VULKAN_HPP_DEPRECATED( msg )
 #endif
 
+#if 17 <= VULKAN_HPP_CPP_VERSION
+#  define VULKAN_HPP_DEPRECATED_17( msg ) [[deprecated( msg )]]
+#else
+#  define VULKAN_HPP_DEPRECATED_17( msg )
+#endif
+
 #if ( 17 <= VULKAN_HPP_CPP_VERSION ) && !defined( VULKAN_HPP_NO_NODISCARD_WARNINGS )
 #  define VULKAN_HPP_NODISCARD [[nodiscard]]
 #  if defined( VULKAN_HPP_NO_EXCEPTIONS )
@@ -279,7 +298,9 @@
 #endif
 
 #if !defined( VULKAN_HPP_EXPECTED ) && ( 23 <= VULKAN_HPP_CPP_VERSION ) && defined( __cpp_lib_expected )
-#  include <expected>
+#  if !( defined( VULKAN_HPP_ENABLE_STD_MODULE ) && defined( VULKAN_HPP_STD_MODULE ) )
+#    include <expected>
+#  endif
 #  define VULKAN_HPP_EXPECTED   std::expected
 #  define VULKAN_HPP_UNEXPECTED std::unexpected
 #endif
diff --git a/include/vulkan/vulkan_raii.hpp b/include/vulkan/vulkan_raii.hpp
index ac672bf..905d884 100644
--- a/include/vulkan/vulkan_raii.hpp
+++ b/include/vulkan/vulkan_raii.hpp
@@ -8,9 +8,11 @@
 #ifndef VULKAN_RAII_HPP
 #define VULKAN_RAII_HPP
 
-#include <memory>   // std::unique_ptr
-#include <utility>  // std::forward
 #include <vulkan/vulkan.hpp>
+#if !( defined( VULKAN_HPP_ENABLE_STD_MODULE ) && defined( VULKAN_HPP_STD_MODULE ) )
+#  include <memory>   // std::unique_ptr
+#  include <utility>  // std::forward
+#endif
 
 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
 namespace VULKAN_HPP_NAMESPACE
@@ -1672,10 +1674,11 @@
         vkAntiLagUpdateAMD = PFN_vkAntiLagUpdateAMD( vkGetDeviceProcAddr( device, "vkAntiLagUpdateAMD" ) );
 
         //=== VK_EXT_shader_object ===
-        vkCreateShadersEXT       = PFN_vkCreateShadersEXT( vkGetDeviceProcAddr( device, "vkCreateShadersEXT" ) );
-        vkDestroyShaderEXT       = PFN_vkDestroyShaderEXT( vkGetDeviceProcAddr( device, "vkDestroyShaderEXT" ) );
-        vkGetShaderBinaryDataEXT = PFN_vkGetShaderBinaryDataEXT( vkGetDeviceProcAddr( device, "vkGetShaderBinaryDataEXT" ) );
-        vkCmdBindShadersEXT      = PFN_vkCmdBindShadersEXT( vkGetDeviceProcAddr( device, "vkCmdBindShadersEXT" ) );
+        vkCreateShadersEXT         = PFN_vkCreateShadersEXT( vkGetDeviceProcAddr( device, "vkCreateShadersEXT" ) );
+        vkDestroyShaderEXT         = PFN_vkDestroyShaderEXT( vkGetDeviceProcAddr( device, "vkDestroyShaderEXT" ) );
+        vkGetShaderBinaryDataEXT   = PFN_vkGetShaderBinaryDataEXT( vkGetDeviceProcAddr( device, "vkGetShaderBinaryDataEXT" ) );
+        vkCmdBindShadersEXT        = PFN_vkCmdBindShadersEXT( vkGetDeviceProcAddr( device, "vkCmdBindShadersEXT" ) );
+        vkCmdSetDepthClampRangeEXT = PFN_vkCmdSetDepthClampRangeEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthClampRangeEXT" ) );
 
         //=== VK_KHR_pipeline_binary ===
         vkCreatePipelineBinariesKHR      = PFN_vkCreatePipelineBinariesKHR( vkGetDeviceProcAddr( device, "vkCreatePipelineBinariesKHR" ) );
@@ -1720,6 +1723,20 @@
         vkCmdSetDescriptorBufferOffsets2EXT = PFN_vkCmdSetDescriptorBufferOffsets2EXT( vkGetDeviceProcAddr( device, "vkCmdSetDescriptorBufferOffsets2EXT" ) );
         vkCmdBindDescriptorBufferEmbeddedSamplers2EXT =
           PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT" ) );
+
+        //=== VK_EXT_device_generated_commands ===
+        vkGetGeneratedCommandsMemoryRequirementsEXT =
+          PFN_vkGetGeneratedCommandsMemoryRequirementsEXT( vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsEXT" ) );
+        vkCmdPreprocessGeneratedCommandsEXT = PFN_vkCmdPreprocessGeneratedCommandsEXT( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsEXT" ) );
+        vkCmdExecuteGeneratedCommandsEXT    = PFN_vkCmdExecuteGeneratedCommandsEXT( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsEXT" ) );
+        vkCreateIndirectCommandsLayoutEXT   = PFN_vkCreateIndirectCommandsLayoutEXT( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutEXT" ) );
+        vkDestroyIndirectCommandsLayoutEXT  = PFN_vkDestroyIndirectCommandsLayoutEXT( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutEXT" ) );
+        vkCreateIndirectExecutionSetEXT     = PFN_vkCreateIndirectExecutionSetEXT( vkGetDeviceProcAddr( device, "vkCreateIndirectExecutionSetEXT" ) );
+        vkDestroyIndirectExecutionSetEXT    = PFN_vkDestroyIndirectExecutionSetEXT( vkGetDeviceProcAddr( device, "vkDestroyIndirectExecutionSetEXT" ) );
+        vkUpdateIndirectExecutionSetPipelineEXT =
+          PFN_vkUpdateIndirectExecutionSetPipelineEXT( vkGetDeviceProcAddr( device, "vkUpdateIndirectExecutionSetPipelineEXT" ) );
+        vkUpdateIndirectExecutionSetShaderEXT =
+          PFN_vkUpdateIndirectExecutionSetShaderEXT( vkGetDeviceProcAddr( device, "vkUpdateIndirectExecutionSetShaderEXT" ) );
       }
 
     public:
@@ -2566,10 +2583,11 @@
       PFN_vkAntiLagUpdateAMD vkAntiLagUpdateAMD = 0;
 
       //=== VK_EXT_shader_object ===
-      PFN_vkCreateShadersEXT       vkCreateShadersEXT       = 0;
-      PFN_vkDestroyShaderEXT       vkDestroyShaderEXT       = 0;
-      PFN_vkGetShaderBinaryDataEXT vkGetShaderBinaryDataEXT = 0;
-      PFN_vkCmdBindShadersEXT      vkCmdBindShadersEXT      = 0;
+      PFN_vkCreateShadersEXT         vkCreateShadersEXT         = 0;
+      PFN_vkDestroyShaderEXT         vkDestroyShaderEXT         = 0;
+      PFN_vkGetShaderBinaryDataEXT   vkGetShaderBinaryDataEXT   = 0;
+      PFN_vkCmdBindShadersEXT        vkCmdBindShadersEXT        = 0;
+      PFN_vkCmdSetDepthClampRangeEXT vkCmdSetDepthClampRangeEXT = 0;
 
       //=== VK_KHR_pipeline_binary ===
       PFN_vkCreatePipelineBinariesKHR      vkCreatePipelineBinariesKHR      = 0;
@@ -2612,6 +2630,17 @@
       PFN_vkCmdPushDescriptorSetWithTemplate2KHR        vkCmdPushDescriptorSetWithTemplate2KHR        = 0;
       PFN_vkCmdSetDescriptorBufferOffsets2EXT           vkCmdSetDescriptorBufferOffsets2EXT           = 0;
       PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT vkCmdBindDescriptorBufferEmbeddedSamplers2EXT = 0;
+
+      //=== VK_EXT_device_generated_commands ===
+      PFN_vkGetGeneratedCommandsMemoryRequirementsEXT vkGetGeneratedCommandsMemoryRequirementsEXT = 0;
+      PFN_vkCmdPreprocessGeneratedCommandsEXT         vkCmdPreprocessGeneratedCommandsEXT         = 0;
+      PFN_vkCmdExecuteGeneratedCommandsEXT            vkCmdExecuteGeneratedCommandsEXT            = 0;
+      PFN_vkCreateIndirectCommandsLayoutEXT           vkCreateIndirectCommandsLayoutEXT           = 0;
+      PFN_vkDestroyIndirectCommandsLayoutEXT          vkDestroyIndirectCommandsLayoutEXT          = 0;
+      PFN_vkCreateIndirectExecutionSetEXT             vkCreateIndirectExecutionSetEXT             = 0;
+      PFN_vkDestroyIndirectExecutionSetEXT            vkDestroyIndirectExecutionSetEXT            = 0;
+      PFN_vkUpdateIndirectExecutionSetPipelineEXT     vkUpdateIndirectExecutionSetPipelineEXT     = 0;
+      PFN_vkUpdateIndirectExecutionSetShaderEXT       vkUpdateIndirectExecutionSetShaderEXT       = 0;
     };
 
     //========================================
@@ -2717,6 +2746,10 @@
     //=== VK_KHR_pipeline_binary ===
     class PipelineBinaryKHR;
 
+    //=== VK_EXT_device_generated_commands ===
+    class IndirectCommandsLayoutEXT;
+    class IndirectExecutionSetEXT;
+
     //====================
     //=== RAII HANDLES ===
     //====================
@@ -4619,6 +4652,27 @@
       VULKAN_HPP_NODISCARD std::pair<uint64_t, uint64_t>
                            getCalibratedTimestampKHR( const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR & timestampInfo ) const;
 
+      //=== VK_EXT_device_generated_commands ===
+
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2
+        getGeneratedCommandsMemoryRequirementsEXT( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoEXT & info ) const VULKAN_HPP_NOEXCEPT;
+
+      template <typename X, typename Y, typename... Z>
+      VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
+        getGeneratedCommandsMemoryRequirementsEXT( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoEXT & info ) const VULKAN_HPP_NOEXCEPT;
+
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::IndirectCommandsLayoutEXT>::Type
+        createIndirectCommandsLayoutEXT( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoEXT const &               createInfo,
+                                         VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
+
+      VULKAN_HPP_NODISCARD
+        VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::IndirectExecutionSetEXT>::Type
+        createIndirectExecutionSetEXT( VULKAN_HPP_NAMESPACE::IndirectExecutionSetCreateInfoEXT const &                 createInfo,
+                                       VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const
+        VULKAN_HPP_RAII_CREATE_NOEXCEPT;
+
     private:
       VULKAN_HPP_NAMESPACE::Device                                                       m_device    = {};
       const VULKAN_HPP_NAMESPACE::AllocationCallbacks *                                  m_allocator = {};
@@ -6390,6 +6444,10 @@
       void bindShadersEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderStageFlagBits> const & stages,
                            VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderEXT> const &           shaders ) const;
 
+      void setDepthClampRangeEXT( VULKAN_HPP_NAMESPACE::DepthClampModeEXT depthClampMode,
+                                  Optional<const VULKAN_HPP_NAMESPACE::DepthClampRangeEXT> depthClampRange
+                                    VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
+
       //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
 
       void setAttachmentFeedbackLoopEnableEXT( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const
@@ -6416,6 +6474,14 @@
       void bindDescriptorBufferEmbeddedSamplers2EXT(
         const VULKAN_HPP_NAMESPACE::BindDescriptorBufferEmbeddedSamplersInfoEXT & bindDescriptorBufferEmbeddedSamplersInfo ) const VULKAN_HPP_NOEXCEPT;
 
+      //=== VK_EXT_device_generated_commands ===
+
+      void preprocessGeneratedCommandsEXT( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT & generatedCommandsInfo,
+                                           VULKAN_HPP_NAMESPACE::CommandBuffer                    stateCommandBuffer ) const VULKAN_HPP_NOEXCEPT;
+
+      void executeGeneratedCommandsEXT( VULKAN_HPP_NAMESPACE::Bool32                           isPreprocessed,
+                                        const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT & generatedCommandsInfo ) const VULKAN_HPP_NOEXCEPT;
+
     private:
       VULKAN_HPP_NAMESPACE::Device                                              m_device        = {};
       VULKAN_HPP_NAMESPACE::CommandPool                                         m_commandPool   = {};
@@ -8898,6 +8964,126 @@
       VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr;
     };
 
+    class IndirectCommandsLayoutEXT
+    {
+    public:
+      using CType   = VkIndirectCommandsLayoutEXT;
+      using CppType = VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT;
+
+      static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eIndirectCommandsLayoutEXT;
+      static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
+        VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
+
+    public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+      IndirectCommandsLayoutEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
+                                 VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoEXT const &               createInfo,
+                                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
+      {
+        *this = device.createIndirectCommandsLayoutEXT( createInfo, allocator );
+      }
+#  endif
+
+      IndirectCommandsLayoutEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
+                                 VkIndirectCommandsLayoutEXT                                                     indirectCommandsLayout,
+                                 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
+        : m_device( device )
+        , m_indirectCommandsLayout( indirectCommandsLayout )
+        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
+        , m_dispatcher( device.getDispatcher() )
+      {
+      }
+
+      IndirectCommandsLayoutEXT( std::nullptr_t ) {}
+
+      ~IndirectCommandsLayoutEXT()
+      {
+        clear();
+      }
+
+      IndirectCommandsLayoutEXT()                                    = delete;
+      IndirectCommandsLayoutEXT( IndirectCommandsLayoutEXT const & ) = delete;
+
+      IndirectCommandsLayoutEXT( IndirectCommandsLayoutEXT && rhs ) VULKAN_HPP_NOEXCEPT
+        : m_device( VULKAN_HPP_NAMESPACE::exchange( rhs.m_device, {} ) )
+        , m_indirectCommandsLayout( VULKAN_HPP_NAMESPACE::exchange( rhs.m_indirectCommandsLayout, {} ) )
+        , m_allocator( VULKAN_HPP_NAMESPACE::exchange( rhs.m_allocator, {} ) )
+        , m_dispatcher( VULKAN_HPP_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
+      {
+      }
+
+      IndirectCommandsLayoutEXT & operator=( IndirectCommandsLayoutEXT const & ) = delete;
+
+      IndirectCommandsLayoutEXT & operator=( IndirectCommandsLayoutEXT && rhs ) VULKAN_HPP_NOEXCEPT
+      {
+        if ( this != &rhs )
+        {
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_indirectCommandsLayout, rhs.m_indirectCommandsLayout );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
+        }
+        return *this;
+      }
+
+      VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT const & operator*() const VULKAN_HPP_NOEXCEPT
+      {
+        return m_indirectCommandsLayout;
+      }
+
+      operator VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT() const VULKAN_HPP_NOEXCEPT
+      {
+        return m_indirectCommandsLayout;
+      }
+
+      void clear() VULKAN_HPP_NOEXCEPT
+      {
+        if ( m_indirectCommandsLayout )
+        {
+          getDispatcher()->vkDestroyIndirectCommandsLayoutEXT( static_cast<VkDevice>( m_device ),
+                                                               static_cast<VkIndirectCommandsLayoutEXT>( m_indirectCommandsLayout ),
+                                                               reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) );
+        }
+        m_device                 = nullptr;
+        m_indirectCommandsLayout = nullptr;
+        m_allocator              = nullptr;
+        m_dispatcher             = nullptr;
+      }
+
+      VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT release()
+      {
+        m_device     = nullptr;
+        m_allocator  = nullptr;
+        m_dispatcher = nullptr;
+        return VULKAN_HPP_NAMESPACE::exchange( m_indirectCommandsLayout, nullptr );
+      }
+
+      VULKAN_HPP_NAMESPACE::Device getDevice() const
+      {
+        return m_device;
+      }
+
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
+      {
+        VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
+        return m_dispatcher;
+      }
+
+      void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::IndirectCommandsLayoutEXT & rhs ) VULKAN_HPP_NOEXCEPT
+      {
+        std::swap( m_device, rhs.m_device );
+        std::swap( m_indirectCommandsLayout, rhs.m_indirectCommandsLayout );
+        std::swap( m_allocator, rhs.m_allocator );
+        std::swap( m_dispatcher, rhs.m_dispatcher );
+      }
+
+    private:
+      VULKAN_HPP_NAMESPACE::Device                                              m_device                 = {};
+      VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT                           m_indirectCommandsLayout = {};
+      const VULKAN_HPP_NAMESPACE::AllocationCallbacks *                         m_allocator              = {};
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher             = nullptr;
+    };
+
     class IndirectCommandsLayoutNV
     {
     public:
@@ -9018,6 +9204,134 @@
       VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher             = nullptr;
     };
 
+    class IndirectExecutionSetEXT
+    {
+    public:
+      using CType   = VkIndirectExecutionSetEXT;
+      using CppType = VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT;
+
+      static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eIndirectExecutionSetEXT;
+      static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
+        VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
+
+    public:
+#  if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+      IndirectExecutionSetEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
+                               VULKAN_HPP_NAMESPACE::IndirectExecutionSetCreateInfoEXT const &                 createInfo,
+                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
+      {
+        *this = device.createIndirectExecutionSetEXT( createInfo, allocator );
+      }
+#  endif
+
+      IndirectExecutionSetEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &                 device,
+                               VkIndirectExecutionSetEXT                                                       indirectExecutionSet,
+                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr )
+        : m_device( device )
+        , m_indirectExecutionSet( indirectExecutionSet )
+        , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) )
+        , m_dispatcher( device.getDispatcher() )
+      {
+      }
+
+      IndirectExecutionSetEXT( std::nullptr_t ) {}
+
+      ~IndirectExecutionSetEXT()
+      {
+        clear();
+      }
+
+      IndirectExecutionSetEXT()                                  = delete;
+      IndirectExecutionSetEXT( IndirectExecutionSetEXT const & ) = delete;
+
+      IndirectExecutionSetEXT( IndirectExecutionSetEXT && rhs ) VULKAN_HPP_NOEXCEPT
+        : m_device( VULKAN_HPP_NAMESPACE::exchange( rhs.m_device, {} ) )
+        , m_indirectExecutionSet( VULKAN_HPP_NAMESPACE::exchange( rhs.m_indirectExecutionSet, {} ) )
+        , m_allocator( VULKAN_HPP_NAMESPACE::exchange( rhs.m_allocator, {} ) )
+        , m_dispatcher( VULKAN_HPP_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) )
+      {
+      }
+
+      IndirectExecutionSetEXT & operator=( IndirectExecutionSetEXT const & ) = delete;
+
+      IndirectExecutionSetEXT & operator=( IndirectExecutionSetEXT && rhs ) VULKAN_HPP_NOEXCEPT
+      {
+        if ( this != &rhs )
+        {
+          std::swap( m_device, rhs.m_device );
+          std::swap( m_indirectExecutionSet, rhs.m_indirectExecutionSet );
+          std::swap( m_allocator, rhs.m_allocator );
+          std::swap( m_dispatcher, rhs.m_dispatcher );
+        }
+        return *this;
+      }
+
+      VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT const & operator*() const VULKAN_HPP_NOEXCEPT
+      {
+        return m_indirectExecutionSet;
+      }
+
+      operator VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT() const VULKAN_HPP_NOEXCEPT
+      {
+        return m_indirectExecutionSet;
+      }
+
+      void clear() VULKAN_HPP_NOEXCEPT
+      {
+        if ( m_indirectExecutionSet )
+        {
+          getDispatcher()->vkDestroyIndirectExecutionSetEXT( static_cast<VkDevice>( m_device ),
+                                                             static_cast<VkIndirectExecutionSetEXT>( m_indirectExecutionSet ),
+                                                             reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) );
+        }
+        m_device               = nullptr;
+        m_indirectExecutionSet = nullptr;
+        m_allocator            = nullptr;
+        m_dispatcher           = nullptr;
+      }
+
+      VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT release()
+      {
+        m_device     = nullptr;
+        m_allocator  = nullptr;
+        m_dispatcher = nullptr;
+        return VULKAN_HPP_NAMESPACE::exchange( m_indirectExecutionSet, nullptr );
+      }
+
+      VULKAN_HPP_NAMESPACE::Device getDevice() const
+      {
+        return m_device;
+      }
+
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const
+      {
+        VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION );
+        return m_dispatcher;
+      }
+
+      void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::IndirectExecutionSetEXT & rhs ) VULKAN_HPP_NOEXCEPT
+      {
+        std::swap( m_device, rhs.m_device );
+        std::swap( m_indirectExecutionSet, rhs.m_indirectExecutionSet );
+        std::swap( m_allocator, rhs.m_allocator );
+        std::swap( m_dispatcher, rhs.m_dispatcher );
+      }
+
+      //=== VK_EXT_device_generated_commands ===
+
+      void updatePipeline( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetPipelineEXT> const & executionSetWrites ) const
+        VULKAN_HPP_NOEXCEPT;
+
+      void updateShader( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetShaderEXT> const & executionSetWrites ) const
+        VULKAN_HPP_NOEXCEPT;
+
+    private:
+      VULKAN_HPP_NAMESPACE::Device                                              m_device               = {};
+      VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT                             m_indirectExecutionSet = {};
+      const VULKAN_HPP_NAMESPACE::AllocationCallbacks *                         m_allocator            = {};
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher           = nullptr;
+    };
+
     class MicromapEXT
     {
     public:
@@ -22782,6 +23096,19 @@
                                             reinterpret_cast<const VkShaderEXT *>( shaders.data() ) );
     }
 
+    VULKAN_HPP_INLINE void
+      CommandBuffer::setDepthClampRangeEXT( VULKAN_HPP_NAMESPACE::DepthClampModeEXT                  depthClampMode,
+                                            Optional<const VULKAN_HPP_NAMESPACE::DepthClampRangeEXT> depthClampRange ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthClampRangeEXT &&
+                         "Function <vkCmdSetDepthClampRangeEXT> requires <VK_EXT_depth_clamp_control> or <VK_EXT_shader_object>" );
+
+      getDispatcher()->vkCmdSetDepthClampRangeEXT(
+        static_cast<VkCommandBuffer>( m_commandBuffer ),
+        static_cast<VkDepthClampModeEXT>( depthClampMode ),
+        reinterpret_cast<const VkDepthClampRangeEXT *>( static_cast<const VULKAN_HPP_NAMESPACE::DepthClampRangeEXT *>( depthClampRange ) ) );
+    }
+
     //=== VK_KHR_pipeline_binary ===
 
     VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
@@ -23212,6 +23539,135 @@
         reinterpret_cast<const VkBindDescriptorBufferEmbeddedSamplersInfoEXT *>( &bindDescriptorBufferEmbeddedSamplersInfo ) );
     }
 
+    //=== VK_EXT_device_generated_commands ===
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getGeneratedCommandsMemoryRequirementsEXT(
+      const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoEXT & info ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsEXT &&
+                         "Function <vkGetGeneratedCommandsMemoryRequirementsEXT> requires <VK_EXT_device_generated_commands>" );
+
+      VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
+      getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsEXT( static_cast<VkDevice>( m_device ),
+                                                                    reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoEXT *>( &info ),
+                                                                    reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
+
+      return memoryRequirements;
+    }
+
+    template <typename X, typename Y, typename... Z>
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> Device::getGeneratedCommandsMemoryRequirementsEXT(
+      const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoEXT & info ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsEXT &&
+                         "Function <vkGetGeneratedCommandsMemoryRequirementsEXT> requires <VK_EXT_device_generated_commands>" );
+
+      VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
+      VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
+      getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsEXT( static_cast<VkDevice>( m_device ),
+                                                                    reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoEXT *>( &info ),
+                                                                    reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
+
+      return structureChain;
+    }
+
+    VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsEXT( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT & generatedCommandsInfo,
+                                                                          VULKAN_HPP_NAMESPACE::CommandBuffer stateCommandBuffer ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPreprocessGeneratedCommandsEXT &&
+                         "Function <vkCmdPreprocessGeneratedCommandsEXT> requires <VK_EXT_device_generated_commands>" );
+
+      getDispatcher()->vkCmdPreprocessGeneratedCommandsEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
+                                                            reinterpret_cast<const VkGeneratedCommandsInfoEXT *>( &generatedCommandsInfo ),
+                                                            static_cast<VkCommandBuffer>( stateCommandBuffer ) );
+    }
+
+    VULKAN_HPP_INLINE void
+      CommandBuffer::executeGeneratedCommandsEXT( VULKAN_HPP_NAMESPACE::Bool32                           isPreprocessed,
+                                                  const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT & generatedCommandsInfo ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkCmdExecuteGeneratedCommandsEXT &&
+                         "Function <vkCmdExecuteGeneratedCommandsEXT> requires <VK_EXT_device_generated_commands>" );
+
+      getDispatcher()->vkCmdExecuteGeneratedCommandsEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
+                                                         static_cast<VkBool32>( isPreprocessed ),
+                                                         reinterpret_cast<const VkGeneratedCommandsInfoEXT *>( &generatedCommandsInfo ) );
+    }
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::IndirectCommandsLayoutEXT>::Type
+      Device::createIndirectCommandsLayoutEXT( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoEXT const &               createInfo,
+                                               VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
+    {
+      VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT indirectCommandsLayout;
+      VULKAN_HPP_NAMESPACE::Result                    result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateIndirectCommandsLayoutEXT(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoEXT *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkIndirectCommandsLayoutEXT *>( &indirectCommandsLayout ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createIndirectCommandsLayoutEXT" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::IndirectCommandsLayoutEXT(
+        *this, *reinterpret_cast<VkIndirectCommandsLayoutEXT *>( &indirectCommandsLayout ), allocator );
+    }
+
+    VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
+      VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::IndirectExecutionSetEXT>::Type
+      Device::createIndirectExecutionSetEXT( VULKAN_HPP_NAMESPACE::IndirectExecutionSetCreateInfoEXT const &                 createInfo,
+                                             VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
+      VULKAN_HPP_RAII_CREATE_NOEXCEPT
+    {
+      VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT indirectExecutionSet;
+      VULKAN_HPP_NAMESPACE::Result                  result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateIndirectExecutionSetEXT(
+        static_cast<VkDevice>( m_device ),
+        reinterpret_cast<const VkIndirectExecutionSetCreateInfoEXT *>( &createInfo ),
+        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
+        reinterpret_cast<VkIndirectExecutionSetEXT *>( &indirectExecutionSet ) ) );
+      if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess )
+      {
+#  if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS )
+        return VULKAN_HPP_UNEXPECTED( result );
+#  else
+        VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createIndirectExecutionSetEXT" );
+#  endif
+      }
+
+      return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::IndirectExecutionSetEXT(
+        *this, *reinterpret_cast<VkIndirectExecutionSetEXT *>( &indirectExecutionSet ), allocator );
+    }
+
+    VULKAN_HPP_INLINE void IndirectExecutionSetEXT::updatePipeline(
+      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetPipelineEXT> const & executionSetWrites ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkUpdateIndirectExecutionSetPipelineEXT &&
+                         "Function <vkUpdateIndirectExecutionSetPipelineEXT> requires <VK_EXT_device_generated_commands>" );
+
+      getDispatcher()->vkUpdateIndirectExecutionSetPipelineEXT( static_cast<VkDevice>( m_device ),
+                                                                static_cast<VkIndirectExecutionSetEXT>( m_indirectExecutionSet ),
+                                                                executionSetWrites.size(),
+                                                                reinterpret_cast<const VkWriteIndirectExecutionSetPipelineEXT *>( executionSetWrites.data() ) );
+    }
+
+    VULKAN_HPP_INLINE void IndirectExecutionSetEXT::updateShader(
+      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetShaderEXT> const & executionSetWrites ) const VULKAN_HPP_NOEXCEPT
+    {
+      VULKAN_HPP_ASSERT( getDispatcher()->vkUpdateIndirectExecutionSetShaderEXT &&
+                         "Function <vkUpdateIndirectExecutionSetShaderEXT> requires <VK_EXT_device_generated_commands>" );
+
+      getDispatcher()->vkUpdateIndirectExecutionSetShaderEXT( static_cast<VkDevice>( m_device ),
+                                                              static_cast<VkIndirectExecutionSetEXT>( m_indirectExecutionSet ),
+                                                              executionSetWrites.size(),
+                                                              reinterpret_cast<const VkWriteIndirectExecutionSetShaderEXT *>( executionSetWrites.data() ) );
+    }
+
     //====================
     //=== RAII Helpers ===
     //====================
diff --git a/include/vulkan/vulkan_shared.hpp b/include/vulkan/vulkan_shared.hpp
index 1bff517..fbb871b 100644
--- a/include/vulkan/vulkan_shared.hpp
+++ b/include/vulkan/vulkan_shared.hpp
@@ -8,9 +8,12 @@
 #ifndef VULKAN_SHARED_HPP
 #define VULKAN_SHARED_HPP
 
-#include <atomic>  // std::atomic_size_t
 #include <vulkan/vulkan.hpp>
 
+#if !( defined( VULKAN_HPP_ENABLE_STD_MODULE ) && defined( VULKAN_HPP_STD_MODULE ) )
+#  include <atomic>  // std::atomic_size_t
+#endif
+
 namespace VULKAN_HPP_NAMESPACE
 {
 #if !defined( VULKAN_HPP_NO_SMART_HANDLE )
@@ -971,6 +974,27 @@
 
   using SharedPipelineBinaryKHR = SharedHandle<PipelineBinaryKHR>;
 
+  //=== VK_EXT_device_generated_commands ===
+  template <>
+  class SharedHandleTraits<IndirectCommandsLayoutEXT>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<IndirectCommandsLayoutEXT>;
+  };
+
+  using SharedIndirectCommandsLayoutEXT = SharedHandle<IndirectCommandsLayoutEXT>;
+
+  template <>
+  class SharedHandleTraits<IndirectExecutionSetEXT>
+  {
+  public:
+    using DestructorType = Device;
+    using deleter        = ObjectDestroyShared<IndirectExecutionSetEXT>;
+  };
+
+  using SharedIndirectExecutionSetEXT = SharedHandle<IndirectExecutionSetEXT>;
+
   enum class SwapchainOwns
   {
     no,
diff --git a/include/vulkan/vulkan_static_assertions.hpp b/include/vulkan/vulkan_static_assertions.hpp
index 1d0e054..c7af29a 100644
--- a/include/vulkan/vulkan_static_assertions.hpp
+++ b/include/vulkan/vulkan_static_assertions.hpp
@@ -7759,6 +7759,176 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingValidationFeaturesNV>::value,
                           "PhysicalDeviceRayTracingValidationFeaturesNV is not nothrow_move_constructible!" );
 
+//=== VK_EXT_device_generated_commands ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT ) ==
+                            sizeof( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT>::value,
+                          "PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT ) ==
+                            sizeof( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT>::value,
+                          "PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoEXT ) == sizeof( VkGeneratedCommandsMemoryRequirementsInfoEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoEXT>::value,
+                          "GeneratedCommandsMemoryRequirementsInfoEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::IndirectExecutionSetCreateInfoEXT ) == sizeof( VkIndirectExecutionSetCreateInfoEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::IndirectExecutionSetCreateInfoEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::IndirectExecutionSetCreateInfoEXT>::value,
+                          "IndirectExecutionSetCreateInfoEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::IndirectExecutionSetInfoEXT ) == sizeof( VkIndirectExecutionSetInfoEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::IndirectExecutionSetInfoEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::IndirectExecutionSetInfoEXT>::value,
+                          "IndirectExecutionSetInfoEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::IndirectExecutionSetPipelineInfoEXT ) == sizeof( VkIndirectExecutionSetPipelineInfoEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::IndirectExecutionSetPipelineInfoEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::IndirectExecutionSetPipelineInfoEXT>::value,
+                          "IndirectExecutionSetPipelineInfoEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::IndirectExecutionSetShaderInfoEXT ) == sizeof( VkIndirectExecutionSetShaderInfoEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::IndirectExecutionSetShaderInfoEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::IndirectExecutionSetShaderInfoEXT>::value,
+                          "IndirectExecutionSetShaderInfoEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT ) == sizeof( VkGeneratedCommandsInfoEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT>::value,
+                          "GeneratedCommandsInfoEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetPipelineEXT ) == sizeof( VkWriteIndirectExecutionSetPipelineEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetPipelineEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetPipelineEXT>::value,
+                          "WriteIndirectExecutionSetPipelineEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoEXT ) == sizeof( VkIndirectCommandsLayoutCreateInfoEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoEXT>::value,
+                          "IndirectCommandsLayoutCreateInfoEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenEXT ) == sizeof( VkIndirectCommandsLayoutTokenEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenEXT>::value,
+                          "IndirectCommandsLayoutTokenEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DrawIndirectCountIndirectCommandEXT ) == sizeof( VkDrawIndirectCountIndirectCommandEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::DrawIndirectCountIndirectCommandEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::DrawIndirectCountIndirectCommandEXT>::value,
+                          "DrawIndirectCountIndirectCommandEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::IndirectCommandsVertexBufferTokenEXT ) == sizeof( VkIndirectCommandsVertexBufferTokenEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::IndirectCommandsVertexBufferTokenEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::IndirectCommandsVertexBufferTokenEXT>::value,
+                          "IndirectCommandsVertexBufferTokenEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandEXT ) == sizeof( VkBindVertexBufferIndirectCommandEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandEXT>::value,
+                          "BindVertexBufferIndirectCommandEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::IndirectCommandsIndexBufferTokenEXT ) == sizeof( VkIndirectCommandsIndexBufferTokenEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::IndirectCommandsIndexBufferTokenEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::IndirectCommandsIndexBufferTokenEXT>::value,
+                          "IndirectCommandsIndexBufferTokenEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandEXT ) == sizeof( VkBindIndexBufferIndirectCommandEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandEXT>::value,
+                          "BindIndexBufferIndirectCommandEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::IndirectCommandsPushConstantTokenEXT ) == sizeof( VkIndirectCommandsPushConstantTokenEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::IndirectCommandsPushConstantTokenEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::IndirectCommandsPushConstantTokenEXT>::value,
+                          "IndirectCommandsPushConstantTokenEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::IndirectCommandsExecutionSetTokenEXT ) == sizeof( VkIndirectCommandsExecutionSetTokenEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::IndirectCommandsExecutionSetTokenEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::IndirectCommandsExecutionSetTokenEXT>::value,
+                          "IndirectCommandsExecutionSetTokenEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenDataEXT ) == sizeof( VkIndirectCommandsTokenDataEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::IndirectCommandsTokenDataEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::IndirectCommandsTokenDataEXT>::value,
+                          "IndirectCommandsTokenDataEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT ) == sizeof( VkIndirectCommandsLayoutEXT ),
+                          "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT>::value,
+                          "IndirectCommandsLayoutEXT is not copy_constructible!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT>::value,
+                          "IndirectCommandsLayoutEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT ) == sizeof( VkIndirectExecutionSetEXT ),
+                          "handle and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_copy_constructible<VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT>::value,
+                          "IndirectExecutionSetEXT is not copy_constructible!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT>::value,
+                          "IndirectExecutionSetEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::IndirectExecutionSetShaderLayoutInfoEXT ) == sizeof( VkIndirectExecutionSetShaderLayoutInfoEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::IndirectExecutionSetShaderLayoutInfoEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::IndirectExecutionSetShaderLayoutInfoEXT>::value,
+                          "IndirectExecutionSetShaderLayoutInfoEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::GeneratedCommandsPipelineInfoEXT ) == sizeof( VkGeneratedCommandsPipelineInfoEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::GeneratedCommandsPipelineInfoEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::GeneratedCommandsPipelineInfoEXT>::value,
+                          "GeneratedCommandsPipelineInfoEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::GeneratedCommandsShaderInfoEXT ) == sizeof( VkGeneratedCommandsShaderInfoEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::GeneratedCommandsShaderInfoEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::GeneratedCommandsShaderInfoEXT>::value,
+                          "GeneratedCommandsShaderInfoEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetShaderEXT ) == sizeof( VkWriteIndirectExecutionSetShaderEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetShaderEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetShaderEXT>::value,
+                          "WriteIndirectExecutionSetShaderEXT is not nothrow_move_constructible!" );
+
 //=== VK_MESA_image_alignment_control ===
 
 VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageAlignmentControlFeaturesMESA ) ==
@@ -7784,4 +7954,26 @@
 VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::ImageAlignmentControlCreateInfoMESA>::value,
                           "ImageAlignmentControlCreateInfoMESA is not nothrow_move_constructible!" );
 
+//=== VK_EXT_depth_clamp_control ===
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampControlFeaturesEXT ) == sizeof( VkPhysicalDeviceDepthClampControlFeaturesEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampControlFeaturesEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampControlFeaturesEXT>::value,
+                          "PhysicalDeviceDepthClampControlFeaturesEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::PipelineViewportDepthClampControlCreateInfoEXT ) ==
+                            sizeof( VkPipelineViewportDepthClampControlCreateInfoEXT ),
+                          "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::PipelineViewportDepthClampControlCreateInfoEXT>::value,
+                          "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::PipelineViewportDepthClampControlCreateInfoEXT>::value,
+                          "PipelineViewportDepthClampControlCreateInfoEXT is not nothrow_move_constructible!" );
+
+VULKAN_HPP_STATIC_ASSERT( sizeof( VULKAN_HPP_NAMESPACE::DepthClampRangeEXT ) == sizeof( VkDepthClampRangeEXT ), "struct and wrapper have different size!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_standard_layout<VULKAN_HPP_NAMESPACE::DepthClampRangeEXT>::value, "struct wrapper is not a standard layout!" );
+VULKAN_HPP_STATIC_ASSERT( std::is_nothrow_move_constructible<VULKAN_HPP_NAMESPACE::DepthClampRangeEXT>::value,
+                          "DepthClampRangeEXT is not nothrow_move_constructible!" );
+
 #endif
diff --git a/include/vulkan/vulkan_structs.hpp b/include/vulkan/vulkan_structs.hpp
index 5f6391c..1ac3c48 100644
--- a/include/vulkan/vulkan_structs.hpp
+++ b/include/vulkan/vulkan_structs.hpp
@@ -8695,6 +8695,103 @@
 
   using BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo;
 
+  struct BindIndexBufferIndirectCommandEXT
+  {
+    using NativeType = VkBindIndexBufferIndirectCommandEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR
+      BindIndexBufferIndirectCommandEXT( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {},
+                                         uint32_t                            size_          = {},
+                                         VULKAN_HPP_NAMESPACE::IndexType     indexType_     = VULKAN_HPP_NAMESPACE::IndexType::eUint16 ) VULKAN_HPP_NOEXCEPT
+      : bufferAddress{ bufferAddress_ }
+      , size{ size_ }
+      , indexType{ indexType_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR BindIndexBufferIndirectCommandEXT( BindIndexBufferIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    BindIndexBufferIndirectCommandEXT( VkBindIndexBufferIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : BindIndexBufferIndirectCommandEXT( *reinterpret_cast<BindIndexBufferIndirectCommandEXT const *>( &rhs ) )
+    {
+    }
+
+    BindIndexBufferIndirectCommandEXT & operator=( BindIndexBufferIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    BindIndexBufferIndirectCommandEXT & operator=( VkBindIndexBufferIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 BindIndexBufferIndirectCommandEXT & setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT
+    {
+      bufferAddress = bufferAddress_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 BindIndexBufferIndirectCommandEXT & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
+    {
+      size = size_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 BindIndexBufferIndirectCommandEXT & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT
+    {
+      indexType = indexType_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkBindIndexBufferIndirectCommandEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkBindIndexBufferIndirectCommandEXT *>( this );
+    }
+
+    operator VkBindIndexBufferIndirectCommandEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkBindIndexBufferIndirectCommandEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &, uint32_t const &, VULKAN_HPP_NAMESPACE::IndexType const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( bufferAddress, size, indexType );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( BindIndexBufferIndirectCommandEXT const & ) const = default;
+#else
+    bool operator==( BindIndexBufferIndirectCommandEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( bufferAddress == rhs.bufferAddress ) && ( size == rhs.size ) && ( indexType == rhs.indexType );
+#  endif
+    }
+
+    bool operator!=( BindIndexBufferIndirectCommandEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {};
+    uint32_t                            size          = {};
+    VULKAN_HPP_NAMESPACE::IndexType     indexType     = VULKAN_HPP_NAMESPACE::IndexType::eUint16;
+  };
+
   struct BindIndexBufferIndirectCommandNV
   {
     using NativeType = VkBindIndexBufferIndirectCommandNV;
@@ -10179,6 +10276,102 @@
     using Type = BindSparseInfo;
   };
 
+  struct BindVertexBufferIndirectCommandEXT
+  {
+    using NativeType = VkBindVertexBufferIndirectCommandEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR BindVertexBufferIndirectCommandEXT( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {},
+                                                             uint32_t                            size_          = {},
+                                                             uint32_t                            stride_        = {} ) VULKAN_HPP_NOEXCEPT
+      : bufferAddress{ bufferAddress_ }
+      , size{ size_ }
+      , stride{ stride_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR BindVertexBufferIndirectCommandEXT( BindVertexBufferIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    BindVertexBufferIndirectCommandEXT( VkBindVertexBufferIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : BindVertexBufferIndirectCommandEXT( *reinterpret_cast<BindVertexBufferIndirectCommandEXT const *>( &rhs ) )
+    {
+    }
+
+    BindVertexBufferIndirectCommandEXT & operator=( BindVertexBufferIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    BindVertexBufferIndirectCommandEXT & operator=( VkBindVertexBufferIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 BindVertexBufferIndirectCommandEXT & setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT
+    {
+      bufferAddress = bufferAddress_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 BindVertexBufferIndirectCommandEXT & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
+    {
+      size = size_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 BindVertexBufferIndirectCommandEXT & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
+    {
+      stride = stride_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkBindVertexBufferIndirectCommandEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkBindVertexBufferIndirectCommandEXT *>( this );
+    }
+
+    operator VkBindVertexBufferIndirectCommandEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkBindVertexBufferIndirectCommandEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &, uint32_t const &, uint32_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( bufferAddress, size, stride );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( BindVertexBufferIndirectCommandEXT const & ) const = default;
+#else
+    bool operator==( BindVertexBufferIndirectCommandEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( bufferAddress == rhs.bufferAddress ) && ( size == rhs.size ) && ( stride == rhs.stride );
+#  endif
+    }
+
+    bool operator!=( BindVertexBufferIndirectCommandEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {};
+    uint32_t                            size          = {};
+    uint32_t                            stride        = {};
+  };
+
   struct BindVertexBufferIndirectCommandNV
   {
     using NativeType = VkBindVertexBufferIndirectCommandNV;
@@ -23509,6 +23702,89 @@
     using Type = DepthBiasRepresentationInfoEXT;
   };
 
+  struct DepthClampRangeEXT
+  {
+    using NativeType = VkDepthClampRangeEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR DepthClampRangeEXT( float minDepthClamp_ = {}, float maxDepthClamp_ = {} ) VULKAN_HPP_NOEXCEPT
+      : minDepthClamp{ minDepthClamp_ }
+      , maxDepthClamp{ maxDepthClamp_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR DepthClampRangeEXT( DepthClampRangeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    DepthClampRangeEXT( VkDepthClampRangeEXT const & rhs ) VULKAN_HPP_NOEXCEPT : DepthClampRangeEXT( *reinterpret_cast<DepthClampRangeEXT const *>( &rhs ) ) {}
+
+    DepthClampRangeEXT & operator=( DepthClampRangeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    DepthClampRangeEXT & operator=( VkDepthClampRangeEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DepthClampRangeEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 DepthClampRangeEXT & setMinDepthClamp( float minDepthClamp_ ) VULKAN_HPP_NOEXCEPT
+    {
+      minDepthClamp = minDepthClamp_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 DepthClampRangeEXT & setMaxDepthClamp( float maxDepthClamp_ ) VULKAN_HPP_NOEXCEPT
+    {
+      maxDepthClamp = maxDepthClamp_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkDepthClampRangeEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkDepthClampRangeEXT *>( this );
+    }
+
+    operator VkDepthClampRangeEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkDepthClampRangeEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<float const &, float const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( minDepthClamp, maxDepthClamp );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( DepthClampRangeEXT const & ) const = default;
+#else
+    bool operator==( DepthClampRangeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( minDepthClamp == rhs.minDepthClamp ) && ( maxDepthClamp == rhs.maxDepthClamp );
+#  endif
+    }
+
+    bool operator!=( DepthClampRangeEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    float minDepthClamp = {};
+    float maxDepthClamp = {};
+  };
+
   struct DescriptorAddressInfoEXT
   {
     using NativeType = VkDescriptorAddressInfoEXT;
@@ -33201,6 +33477,102 @@
     uint32_t firstInstance = {};
   };
 
+  struct DrawIndirectCountIndirectCommandEXT
+  {
+    using NativeType = VkDrawIndirectCountIndirectCommandEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR DrawIndirectCountIndirectCommandEXT( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {},
+                                                              uint32_t                            stride_        = {},
+                                                              uint32_t                            commandCount_  = {} ) VULKAN_HPP_NOEXCEPT
+      : bufferAddress{ bufferAddress_ }
+      , stride{ stride_ }
+      , commandCount{ commandCount_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR DrawIndirectCountIndirectCommandEXT( DrawIndirectCountIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    DrawIndirectCountIndirectCommandEXT( VkDrawIndirectCountIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : DrawIndirectCountIndirectCommandEXT( *reinterpret_cast<DrawIndirectCountIndirectCommandEXT const *>( &rhs ) )
+    {
+    }
+
+    DrawIndirectCountIndirectCommandEXT & operator=( DrawIndirectCountIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    DrawIndirectCountIndirectCommandEXT & operator=( VkDrawIndirectCountIndirectCommandEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::DrawIndirectCountIndirectCommandEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 DrawIndirectCountIndirectCommandEXT & setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT
+    {
+      bufferAddress = bufferAddress_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 DrawIndirectCountIndirectCommandEXT & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT
+    {
+      stride = stride_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 DrawIndirectCountIndirectCommandEXT & setCommandCount( uint32_t commandCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      commandCount = commandCount_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkDrawIndirectCountIndirectCommandEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkDrawIndirectCountIndirectCommandEXT *>( this );
+    }
+
+    operator VkDrawIndirectCountIndirectCommandEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkDrawIndirectCountIndirectCommandEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::DeviceAddress const &, uint32_t const &, uint32_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( bufferAddress, stride, commandCount );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( DrawIndirectCountIndirectCommandEXT const & ) const = default;
+#else
+    bool operator==( DrawIndirectCountIndirectCommandEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( bufferAddress == rhs.bufferAddress ) && ( stride == rhs.stride ) && ( commandCount == rhs.commandCount );
+#  endif
+    }
+
+    bool operator!=( DrawIndirectCountIndirectCommandEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {};
+    uint32_t                            stride        = {};
+    uint32_t                            commandCount  = {};
+  };
+
   struct DrawMeshTasksIndirectCommandEXT
   {
     using NativeType = VkDrawMeshTasksIndirectCommandEXT;
@@ -38834,6 +39206,211 @@
     using Type = FramebufferMixedSamplesCombinationNV;
   };
 
+  struct GeneratedCommandsInfoEXT
+  {
+    using NativeType = VkGeneratedCommandsInfoEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eGeneratedCommandsInfoEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR GeneratedCommandsInfoEXT( VULKAN_HPP_NAMESPACE::ShaderStageFlags          shaderStages_           = {},
+                                                   VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT   indirectExecutionSet_   = {},
+                                                   VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT indirectCommandsLayout_ = {},
+                                                   VULKAN_HPP_NAMESPACE::DeviceAddress             indirectAddress_        = {},
+                                                   VULKAN_HPP_NAMESPACE::DeviceSize                indirectAddressSize_    = {},
+                                                   VULKAN_HPP_NAMESPACE::DeviceAddress             preprocessAddress_      = {},
+                                                   VULKAN_HPP_NAMESPACE::DeviceSize                preprocessSize_         = {},
+                                                   uint32_t                                        maxSequenceCount_       = {},
+                                                   VULKAN_HPP_NAMESPACE::DeviceAddress             sequenceCountAddress_   = {},
+                                                   uint32_t                                        maxDrawCount_           = {},
+                                                   const void *                                    pNext_                  = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext{ pNext_ }
+      , shaderStages{ shaderStages_ }
+      , indirectExecutionSet{ indirectExecutionSet_ }
+      , indirectCommandsLayout{ indirectCommandsLayout_ }
+      , indirectAddress{ indirectAddress_ }
+      , indirectAddressSize{ indirectAddressSize_ }
+      , preprocessAddress{ preprocessAddress_ }
+      , preprocessSize{ preprocessSize_ }
+      , maxSequenceCount{ maxSequenceCount_ }
+      , sequenceCountAddress{ sequenceCountAddress_ }
+      , maxDrawCount{ maxDrawCount_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR GeneratedCommandsInfoEXT( GeneratedCommandsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    GeneratedCommandsInfoEXT( VkGeneratedCommandsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : GeneratedCommandsInfoEXT( *reinterpret_cast<GeneratedCommandsInfoEXT const *>( &rhs ) )
+    {
+    }
+
+    GeneratedCommandsInfoEXT & operator=( GeneratedCommandsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    GeneratedCommandsInfoEXT & operator=( VkGeneratedCommandsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoEXT & setShaderStages( VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStages_ ) VULKAN_HPP_NOEXCEPT
+    {
+      shaderStages = shaderStages_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoEXT &
+      setIndirectExecutionSet( VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT indirectExecutionSet_ ) VULKAN_HPP_NOEXCEPT
+    {
+      indirectExecutionSet = indirectExecutionSet_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoEXT &
+      setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT
+    {
+      indirectCommandsLayout = indirectCommandsLayout_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoEXT & setIndirectAddress( VULKAN_HPP_NAMESPACE::DeviceAddress indirectAddress_ ) VULKAN_HPP_NOEXCEPT
+    {
+      indirectAddress = indirectAddress_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoEXT & setIndirectAddressSize( VULKAN_HPP_NAMESPACE::DeviceSize indirectAddressSize_ ) VULKAN_HPP_NOEXCEPT
+    {
+      indirectAddressSize = indirectAddressSize_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoEXT & setPreprocessAddress( VULKAN_HPP_NAMESPACE::DeviceAddress preprocessAddress_ ) VULKAN_HPP_NOEXCEPT
+    {
+      preprocessAddress = preprocessAddress_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoEXT & setPreprocessSize( VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ ) VULKAN_HPP_NOEXCEPT
+    {
+      preprocessSize = preprocessSize_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoEXT & setMaxSequenceCount( uint32_t maxSequenceCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      maxSequenceCount = maxSequenceCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoEXT & setSequenceCountAddress( VULKAN_HPP_NAMESPACE::DeviceAddress sequenceCountAddress_ ) VULKAN_HPP_NOEXCEPT
+    {
+      sequenceCountAddress = sequenceCountAddress_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsInfoEXT & setMaxDrawCount( uint32_t maxDrawCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      maxDrawCount = maxDrawCount_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkGeneratedCommandsInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkGeneratedCommandsInfoEXT *>( this );
+    }
+
+    operator VkGeneratedCommandsInfoEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkGeneratedCommandsInfoEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
+               VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT const &,
+               VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT const &,
+               VULKAN_HPP_NAMESPACE::DeviceAddress const &,
+               VULKAN_HPP_NAMESPACE::DeviceSize const &,
+               VULKAN_HPP_NAMESPACE::DeviceAddress const &,
+               VULKAN_HPP_NAMESPACE::DeviceSize const &,
+               uint32_t const &,
+               VULKAN_HPP_NAMESPACE::DeviceAddress const &,
+               uint32_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType,
+                       pNext,
+                       shaderStages,
+                       indirectExecutionSet,
+                       indirectCommandsLayout,
+                       indirectAddress,
+                       indirectAddressSize,
+                       preprocessAddress,
+                       preprocessSize,
+                       maxSequenceCount,
+                       sequenceCountAddress,
+                       maxDrawCount );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( GeneratedCommandsInfoEXT const & ) const = default;
+#else
+    bool operator==( GeneratedCommandsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderStages == rhs.shaderStages ) && ( indirectExecutionSet == rhs.indirectExecutionSet ) &&
+             ( indirectCommandsLayout == rhs.indirectCommandsLayout ) && ( indirectAddress == rhs.indirectAddress ) &&
+             ( indirectAddressSize == rhs.indirectAddressSize ) && ( preprocessAddress == rhs.preprocessAddress ) && ( preprocessSize == rhs.preprocessSize ) &&
+             ( maxSequenceCount == rhs.maxSequenceCount ) && ( sequenceCountAddress == rhs.sequenceCountAddress ) && ( maxDrawCount == rhs.maxDrawCount );
+#  endif
+    }
+
+    bool operator!=( GeneratedCommandsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType             sType                  = StructureType::eGeneratedCommandsInfoEXT;
+    const void *                                    pNext                  = {};
+    VULKAN_HPP_NAMESPACE::ShaderStageFlags          shaderStages           = {};
+    VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT   indirectExecutionSet   = {};
+    VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT indirectCommandsLayout = {};
+    VULKAN_HPP_NAMESPACE::DeviceAddress             indirectAddress        = {};
+    VULKAN_HPP_NAMESPACE::DeviceSize                indirectAddressSize    = {};
+    VULKAN_HPP_NAMESPACE::DeviceAddress             preprocessAddress      = {};
+    VULKAN_HPP_NAMESPACE::DeviceSize                preprocessSize         = {};
+    uint32_t                                        maxSequenceCount       = {};
+    VULKAN_HPP_NAMESPACE::DeviceAddress             sequenceCountAddress   = {};
+    uint32_t                                        maxDrawCount           = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eGeneratedCommandsInfoEXT>
+  {
+    using Type = GeneratedCommandsInfoEXT;
+  };
+
   struct IndirectCommandsStreamNV
   {
     using NativeType = VkIndirectCommandsStreamNV;
@@ -39203,6 +39780,138 @@
     using Type = GeneratedCommandsInfoNV;
   };
 
+  struct GeneratedCommandsMemoryRequirementsInfoEXT
+  {
+    using NativeType = VkGeneratedCommandsMemoryRequirementsInfoEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eGeneratedCommandsMemoryRequirementsInfoEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR GeneratedCommandsMemoryRequirementsInfoEXT( VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT   indirectExecutionSet_   = {},
+                                                                     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT indirectCommandsLayout_ = {},
+                                                                     uint32_t                                        maxSequenceCount_       = {},
+                                                                     uint32_t                                        maxDrawCount_           = {},
+                                                                     void *                                          pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext{ pNext_ }
+      , indirectExecutionSet{ indirectExecutionSet_ }
+      , indirectCommandsLayout{ indirectCommandsLayout_ }
+      , maxSequenceCount{ maxSequenceCount_ }
+      , maxDrawCount{ maxDrawCount_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR GeneratedCommandsMemoryRequirementsInfoEXT( GeneratedCommandsMemoryRequirementsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    GeneratedCommandsMemoryRequirementsInfoEXT( VkGeneratedCommandsMemoryRequirementsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : GeneratedCommandsMemoryRequirementsInfoEXT( *reinterpret_cast<GeneratedCommandsMemoryRequirementsInfoEXT const *>( &rhs ) )
+    {
+    }
+
+    GeneratedCommandsMemoryRequirementsInfoEXT & operator=( GeneratedCommandsMemoryRequirementsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    GeneratedCommandsMemoryRequirementsInfoEXT & operator=( VkGeneratedCommandsMemoryRequirementsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoEXT &
+      setIndirectExecutionSet( VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT indirectExecutionSet_ ) VULKAN_HPP_NOEXCEPT
+    {
+      indirectExecutionSet = indirectExecutionSet_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoEXT &
+      setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT
+    {
+      indirectCommandsLayout = indirectCommandsLayout_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoEXT & setMaxSequenceCount( uint32_t maxSequenceCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      maxSequenceCount = maxSequenceCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsMemoryRequirementsInfoEXT & setMaxDrawCount( uint32_t maxDrawCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      maxDrawCount = maxDrawCount_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkGeneratedCommandsMemoryRequirementsInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoEXT *>( this );
+    }
+
+    operator VkGeneratedCommandsMemoryRequirementsInfoEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkGeneratedCommandsMemoryRequirementsInfoEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               void * const &,
+               VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT const &,
+               VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT const &,
+               uint32_t const &,
+               uint32_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, indirectExecutionSet, indirectCommandsLayout, maxSequenceCount, maxDrawCount );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( GeneratedCommandsMemoryRequirementsInfoEXT const & ) const = default;
+#else
+    bool operator==( GeneratedCommandsMemoryRequirementsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( indirectExecutionSet == rhs.indirectExecutionSet ) &&
+             ( indirectCommandsLayout == rhs.indirectCommandsLayout ) && ( maxSequenceCount == rhs.maxSequenceCount ) && ( maxDrawCount == rhs.maxDrawCount );
+#  endif
+    }
+
+    bool operator!=( GeneratedCommandsMemoryRequirementsInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType             sType                  = StructureType::eGeneratedCommandsMemoryRequirementsInfoEXT;
+    void *                                          pNext                  = {};
+    VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT   indirectExecutionSet   = {};
+    VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT indirectCommandsLayout = {};
+    uint32_t                                        maxSequenceCount       = {};
+    uint32_t                                        maxDrawCount           = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eGeneratedCommandsMemoryRequirementsInfoEXT>
+  {
+    using Type = GeneratedCommandsMemoryRequirementsInfoEXT;
+  };
+
   struct GeneratedCommandsMemoryRequirementsInfoNV
   {
     using NativeType = VkGeneratedCommandsMemoryRequirementsInfoNV;
@@ -39336,6 +40045,226 @@
     using Type = GeneratedCommandsMemoryRequirementsInfoNV;
   };
 
+  struct GeneratedCommandsPipelineInfoEXT
+  {
+    using NativeType = VkGeneratedCommandsPipelineInfoEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eGeneratedCommandsPipelineInfoEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR GeneratedCommandsPipelineInfoEXT( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext{ pNext_ }
+      , pipeline{ pipeline_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR GeneratedCommandsPipelineInfoEXT( GeneratedCommandsPipelineInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    GeneratedCommandsPipelineInfoEXT( VkGeneratedCommandsPipelineInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : GeneratedCommandsPipelineInfoEXT( *reinterpret_cast<GeneratedCommandsPipelineInfoEXT const *>( &rhs ) )
+    {
+    }
+
+    GeneratedCommandsPipelineInfoEXT & operator=( GeneratedCommandsPipelineInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    GeneratedCommandsPipelineInfoEXT & operator=( VkGeneratedCommandsPipelineInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeneratedCommandsPipelineInfoEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsPipelineInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsPipelineInfoEXT & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pipeline = pipeline_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkGeneratedCommandsPipelineInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkGeneratedCommandsPipelineInfoEXT *>( this );
+    }
+
+    operator VkGeneratedCommandsPipelineInfoEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkGeneratedCommandsPipelineInfoEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Pipeline const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, pipeline );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( GeneratedCommandsPipelineInfoEXT const & ) const = default;
+#else
+    bool operator==( GeneratedCommandsPipelineInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( pipeline == rhs.pipeline );
+#  endif
+    }
+
+    bool operator!=( GeneratedCommandsPipelineInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType    = StructureType::eGeneratedCommandsPipelineInfoEXT;
+    void *                              pNext    = {};
+    VULKAN_HPP_NAMESPACE::Pipeline      pipeline = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eGeneratedCommandsPipelineInfoEXT>
+  {
+    using Type = GeneratedCommandsPipelineInfoEXT;
+  };
+
+  struct GeneratedCommandsShaderInfoEXT
+  {
+    using NativeType = VkGeneratedCommandsShaderInfoEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eGeneratedCommandsShaderInfoEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR GeneratedCommandsShaderInfoEXT( uint32_t                                shaderCount_ = {},
+                                                         const VULKAN_HPP_NAMESPACE::ShaderEXT * pShaders_    = {},
+                                                         void *                                  pNext_       = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext{ pNext_ }
+      , shaderCount{ shaderCount_ }
+      , pShaders{ pShaders_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR GeneratedCommandsShaderInfoEXT( GeneratedCommandsShaderInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    GeneratedCommandsShaderInfoEXT( VkGeneratedCommandsShaderInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : GeneratedCommandsShaderInfoEXT( *reinterpret_cast<GeneratedCommandsShaderInfoEXT const *>( &rhs ) )
+    {
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    GeneratedCommandsShaderInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShaderEXT> const & shaders_,
+                                    void *                                                                                       pNext_ = nullptr )
+      : pNext( pNext_ ), shaderCount( static_cast<uint32_t>( shaders_.size() ) ), pShaders( shaders_.data() )
+    {
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    GeneratedCommandsShaderInfoEXT & operator=( GeneratedCommandsShaderInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    GeneratedCommandsShaderInfoEXT & operator=( VkGeneratedCommandsShaderInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::GeneratedCommandsShaderInfoEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsShaderInfoEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsShaderInfoEXT & setShaderCount( uint32_t shaderCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      shaderCount = shaderCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 GeneratedCommandsShaderInfoEXT & setPShaders( const VULKAN_HPP_NAMESPACE::ShaderEXT * pShaders_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pShaders = pShaders_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    GeneratedCommandsShaderInfoEXT &
+      setShaders( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShaderEXT> const & shaders_ ) VULKAN_HPP_NOEXCEPT
+    {
+      shaderCount = static_cast<uint32_t>( shaders_.size() );
+      pShaders    = shaders_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkGeneratedCommandsShaderInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkGeneratedCommandsShaderInfoEXT *>( this );
+    }
+
+    operator VkGeneratedCommandsShaderInfoEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkGeneratedCommandsShaderInfoEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::ShaderEXT * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, shaderCount, pShaders );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( GeneratedCommandsShaderInfoEXT const & ) const = default;
+#else
+    bool operator==( GeneratedCommandsShaderInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderCount == rhs.shaderCount ) && ( pShaders == rhs.pShaders );
+#  endif
+    }
+
+    bool operator!=( GeneratedCommandsShaderInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType     sType       = StructureType::eGeneratedCommandsShaderInfoEXT;
+    void *                                  pNext       = {};
+    uint32_t                                shaderCount = {};
+    const VULKAN_HPP_NAMESPACE::ShaderEXT * pShaders    = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eGeneratedCommandsShaderInfoEXT>
+  {
+    using Type = GeneratedCommandsShaderInfoEXT;
+  };
+
   struct LatencyTimingsFrameReportNV
   {
     using NativeType = VkLatencyTimingsFrameReportNV;
@@ -48702,6 +49631,786 @@
   };
 #endif /*VK_USE_PLATFORM_FUCHSIA*/
 
+  struct IndirectCommandsExecutionSetTokenEXT
+  {
+    using NativeType = VkIndirectCommandsExecutionSetTokenEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR IndirectCommandsExecutionSetTokenEXT(
+      VULKAN_HPP_NAMESPACE::IndirectExecutionSetInfoTypeEXT type_         = VULKAN_HPP_NAMESPACE::IndirectExecutionSetInfoTypeEXT::ePipelines,
+      VULKAN_HPP_NAMESPACE::ShaderStageFlags                shaderStages_ = {} ) VULKAN_HPP_NOEXCEPT
+      : type{ type_ }
+      , shaderStages{ shaderStages_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR IndirectCommandsExecutionSetTokenEXT( IndirectCommandsExecutionSetTokenEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    IndirectCommandsExecutionSetTokenEXT( VkIndirectCommandsExecutionSetTokenEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : IndirectCommandsExecutionSetTokenEXT( *reinterpret_cast<IndirectCommandsExecutionSetTokenEXT const *>( &rhs ) )
+    {
+    }
+
+    IndirectCommandsExecutionSetTokenEXT & operator=( IndirectCommandsExecutionSetTokenEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    IndirectCommandsExecutionSetTokenEXT & operator=( VkIndirectCommandsExecutionSetTokenEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsExecutionSetTokenEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsExecutionSetTokenEXT & setType( VULKAN_HPP_NAMESPACE::IndirectExecutionSetInfoTypeEXT type_ ) VULKAN_HPP_NOEXCEPT
+    {
+      type = type_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsExecutionSetTokenEXT & setShaderStages( VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStages_ ) VULKAN_HPP_NOEXCEPT
+    {
+      shaderStages = shaderStages_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkIndirectCommandsExecutionSetTokenEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkIndirectCommandsExecutionSetTokenEXT *>( this );
+    }
+
+    operator VkIndirectCommandsExecutionSetTokenEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkIndirectCommandsExecutionSetTokenEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::IndirectExecutionSetInfoTypeEXT const &, VULKAN_HPP_NAMESPACE::ShaderStageFlags const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( type, shaderStages );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( IndirectCommandsExecutionSetTokenEXT const & ) const = default;
+#else
+    bool operator==( IndirectCommandsExecutionSetTokenEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( type == rhs.type ) && ( shaderStages == rhs.shaderStages );
+#  endif
+    }
+
+    bool operator!=( IndirectCommandsExecutionSetTokenEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::IndirectExecutionSetInfoTypeEXT type         = VULKAN_HPP_NAMESPACE::IndirectExecutionSetInfoTypeEXT::ePipelines;
+    VULKAN_HPP_NAMESPACE::ShaderStageFlags                shaderStages = {};
+  };
+
+  struct IndirectCommandsIndexBufferTokenEXT
+  {
+    using NativeType = VkIndirectCommandsIndexBufferTokenEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR
+      IndirectCommandsIndexBufferTokenEXT( VULKAN_HPP_NAMESPACE::IndirectCommandsInputModeFlagBitsEXT mode_ =
+                                             VULKAN_HPP_NAMESPACE::IndirectCommandsInputModeFlagBitsEXT::eVulkanIndexBuffer ) VULKAN_HPP_NOEXCEPT
+      : mode{ mode_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR IndirectCommandsIndexBufferTokenEXT( IndirectCommandsIndexBufferTokenEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    IndirectCommandsIndexBufferTokenEXT( VkIndirectCommandsIndexBufferTokenEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : IndirectCommandsIndexBufferTokenEXT( *reinterpret_cast<IndirectCommandsIndexBufferTokenEXT const *>( &rhs ) )
+    {
+    }
+
+    IndirectCommandsIndexBufferTokenEXT & operator=( IndirectCommandsIndexBufferTokenEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    IndirectCommandsIndexBufferTokenEXT & operator=( VkIndirectCommandsIndexBufferTokenEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsIndexBufferTokenEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsIndexBufferTokenEXT &
+      setMode( VULKAN_HPP_NAMESPACE::IndirectCommandsInputModeFlagBitsEXT mode_ ) VULKAN_HPP_NOEXCEPT
+    {
+      mode = mode_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkIndirectCommandsIndexBufferTokenEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkIndirectCommandsIndexBufferTokenEXT *>( this );
+    }
+
+    operator VkIndirectCommandsIndexBufferTokenEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkIndirectCommandsIndexBufferTokenEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::IndirectCommandsInputModeFlagBitsEXT const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( mode );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( IndirectCommandsIndexBufferTokenEXT const & ) const = default;
+#else
+    bool operator==( IndirectCommandsIndexBufferTokenEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( mode == rhs.mode );
+#  endif
+    }
+
+    bool operator!=( IndirectCommandsIndexBufferTokenEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::IndirectCommandsInputModeFlagBitsEXT mode = VULKAN_HPP_NAMESPACE::IndirectCommandsInputModeFlagBitsEXT::eVulkanIndexBuffer;
+  };
+
+  struct PushConstantRange
+  {
+    using NativeType = VkPushConstantRange;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR
+      PushConstantRange( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {}, uint32_t offset_ = {}, uint32_t size_ = {} ) VULKAN_HPP_NOEXCEPT
+      : stageFlags{ stageFlags_ }
+      , offset{ offset_ }
+      , size{ size_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PushConstantRange( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PushConstantRange( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT : PushConstantRange( *reinterpret_cast<PushConstantRange const *>( &rhs ) ) {}
+
+    PushConstantRange & operator=( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PushConstantRange & operator=( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PushConstantRange const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PushConstantRange & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
+    {
+      stageFlags = stageFlags_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PushConstantRange & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
+    {
+      offset = offset_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PushConstantRange & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
+    {
+      size = size_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPushConstantRange const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPushConstantRange *>( this );
+    }
+
+    operator VkPushConstantRange &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPushConstantRange *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::ShaderStageFlags const &, uint32_t const &, uint32_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( stageFlags, offset, size );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PushConstantRange const & ) const = default;
+#else
+    bool operator==( PushConstantRange const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( stageFlags == rhs.stageFlags ) && ( offset == rhs.offset ) && ( size == rhs.size );
+#  endif
+    }
+
+    bool operator!=( PushConstantRange const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {};
+    uint32_t                               offset     = {};
+    uint32_t                               size       = {};
+  };
+
+  struct IndirectCommandsPushConstantTokenEXT
+  {
+    using NativeType = VkIndirectCommandsPushConstantTokenEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR IndirectCommandsPushConstantTokenEXT( VULKAN_HPP_NAMESPACE::PushConstantRange updateRange_ = {} ) VULKAN_HPP_NOEXCEPT
+      : updateRange{ updateRange_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR IndirectCommandsPushConstantTokenEXT( IndirectCommandsPushConstantTokenEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    IndirectCommandsPushConstantTokenEXT( VkIndirectCommandsPushConstantTokenEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : IndirectCommandsPushConstantTokenEXT( *reinterpret_cast<IndirectCommandsPushConstantTokenEXT const *>( &rhs ) )
+    {
+    }
+
+    IndirectCommandsPushConstantTokenEXT & operator=( IndirectCommandsPushConstantTokenEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    IndirectCommandsPushConstantTokenEXT & operator=( VkIndirectCommandsPushConstantTokenEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsPushConstantTokenEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsPushConstantTokenEXT &
+      setUpdateRange( VULKAN_HPP_NAMESPACE::PushConstantRange const & updateRange_ ) VULKAN_HPP_NOEXCEPT
+    {
+      updateRange = updateRange_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkIndirectCommandsPushConstantTokenEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkIndirectCommandsPushConstantTokenEXT *>( this );
+    }
+
+    operator VkIndirectCommandsPushConstantTokenEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkIndirectCommandsPushConstantTokenEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::PushConstantRange const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( updateRange );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( IndirectCommandsPushConstantTokenEXT const & ) const = default;
+#else
+    bool operator==( IndirectCommandsPushConstantTokenEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( updateRange == rhs.updateRange );
+#  endif
+    }
+
+    bool operator!=( IndirectCommandsPushConstantTokenEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::PushConstantRange updateRange = {};
+  };
+
+  struct IndirectCommandsVertexBufferTokenEXT
+  {
+    using NativeType = VkIndirectCommandsVertexBufferTokenEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR IndirectCommandsVertexBufferTokenEXT( uint32_t vertexBindingUnit_ = {} ) VULKAN_HPP_NOEXCEPT : vertexBindingUnit{ vertexBindingUnit_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR IndirectCommandsVertexBufferTokenEXT( IndirectCommandsVertexBufferTokenEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    IndirectCommandsVertexBufferTokenEXT( VkIndirectCommandsVertexBufferTokenEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : IndirectCommandsVertexBufferTokenEXT( *reinterpret_cast<IndirectCommandsVertexBufferTokenEXT const *>( &rhs ) )
+    {
+    }
+
+    IndirectCommandsVertexBufferTokenEXT & operator=( IndirectCommandsVertexBufferTokenEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    IndirectCommandsVertexBufferTokenEXT & operator=( VkIndirectCommandsVertexBufferTokenEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsVertexBufferTokenEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsVertexBufferTokenEXT & setVertexBindingUnit( uint32_t vertexBindingUnit_ ) VULKAN_HPP_NOEXCEPT
+    {
+      vertexBindingUnit = vertexBindingUnit_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkIndirectCommandsVertexBufferTokenEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkIndirectCommandsVertexBufferTokenEXT *>( this );
+    }
+
+    operator VkIndirectCommandsVertexBufferTokenEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkIndirectCommandsVertexBufferTokenEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<uint32_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( vertexBindingUnit );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( IndirectCommandsVertexBufferTokenEXT const & ) const = default;
+#else
+    bool operator==( IndirectCommandsVertexBufferTokenEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( vertexBindingUnit == rhs.vertexBindingUnit );
+#  endif
+    }
+
+    bool operator!=( IndirectCommandsVertexBufferTokenEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    uint32_t vertexBindingUnit = {};
+  };
+
+  union IndirectCommandsTokenDataEXT
+  {
+    using NativeType = VkIndirectCommandsTokenDataEXT;
+#if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsTokenDataEXT( const VULKAN_HPP_NAMESPACE::IndirectCommandsPushConstantTokenEXT * pPushConstant_ = {} )
+      : pPushConstant( pPushConstant_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsTokenDataEXT( const VULKAN_HPP_NAMESPACE::IndirectCommandsVertexBufferTokenEXT * pVertexBuffer_ )
+      : pVertexBuffer( pVertexBuffer_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsTokenDataEXT( const VULKAN_HPP_NAMESPACE::IndirectCommandsIndexBufferTokenEXT * pIndexBuffer_ )
+      : pIndexBuffer( pIndexBuffer_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsTokenDataEXT( const VULKAN_HPP_NAMESPACE::IndirectCommandsExecutionSetTokenEXT * pExecutionSet_ )
+      : pExecutionSet( pExecutionSet_ )
+    {
+    }
+#endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
+
+#if !defined( VULKAN_HPP_NO_UNION_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsTokenDataEXT &
+      setPPushConstant( const VULKAN_HPP_NAMESPACE::IndirectCommandsPushConstantTokenEXT * pPushConstant_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pPushConstant = pPushConstant_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsTokenDataEXT &
+      setPVertexBuffer( const VULKAN_HPP_NAMESPACE::IndirectCommandsVertexBufferTokenEXT * pVertexBuffer_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pVertexBuffer = pVertexBuffer_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsTokenDataEXT &
+      setPIndexBuffer( const VULKAN_HPP_NAMESPACE::IndirectCommandsIndexBufferTokenEXT * pIndexBuffer_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pIndexBuffer = pIndexBuffer_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsTokenDataEXT &
+      setPExecutionSet( const VULKAN_HPP_NAMESPACE::IndirectCommandsExecutionSetTokenEXT * pExecutionSet_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pExecutionSet = pExecutionSet_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_UNION_SETTERS*/
+
+    operator VkIndirectCommandsTokenDataEXT const &() const
+    {
+      return *reinterpret_cast<const VkIndirectCommandsTokenDataEXT *>( this );
+    }
+
+    operator VkIndirectCommandsTokenDataEXT &()
+    {
+      return *reinterpret_cast<VkIndirectCommandsTokenDataEXT *>( this );
+    }
+
+#ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
+    const VULKAN_HPP_NAMESPACE::IndirectCommandsPushConstantTokenEXT * pPushConstant;
+    const VULKAN_HPP_NAMESPACE::IndirectCommandsVertexBufferTokenEXT * pVertexBuffer;
+    const VULKAN_HPP_NAMESPACE::IndirectCommandsIndexBufferTokenEXT *  pIndexBuffer;
+    const VULKAN_HPP_NAMESPACE::IndirectCommandsExecutionSetTokenEXT * pExecutionSet;
+#else
+    const VkIndirectCommandsPushConstantTokenEXT * pPushConstant;
+    const VkIndirectCommandsVertexBufferTokenEXT * pVertexBuffer;
+    const VkIndirectCommandsIndexBufferTokenEXT *  pIndexBuffer;
+    const VkIndirectCommandsExecutionSetTokenEXT * pExecutionSet;
+#endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
+  };
+
+  struct IndirectCommandsLayoutTokenEXT
+  {
+    using NativeType = VkIndirectCommandsLayoutTokenEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eIndirectCommandsLayoutTokenEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenEXT(
+      VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeEXT type_   = VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeEXT::eExecutionSet,
+      VULKAN_HPP_NAMESPACE::IndirectCommandsTokenDataEXT data_   = {},
+      uint32_t                                           offset_ = {},
+      const void *                                       pNext_  = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext{ pNext_ }
+      , type{ type_ }
+      , data{ data_ }
+      , offset{ offset_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenEXT( IndirectCommandsLayoutTokenEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    IndirectCommandsLayoutTokenEXT( VkIndirectCommandsLayoutTokenEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : IndirectCommandsLayoutTokenEXT( *reinterpret_cast<IndirectCommandsLayoutTokenEXT const *>( &rhs ) )
+    {
+    }
+
+    IndirectCommandsLayoutTokenEXT & operator=( IndirectCommandsLayoutTokenEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    IndirectCommandsLayoutTokenEXT & operator=( VkIndirectCommandsLayoutTokenEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenEXT & setType( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeEXT type_ ) VULKAN_HPP_NOEXCEPT
+    {
+      type = type_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenEXT & setData( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenDataEXT const & data_ ) VULKAN_HPP_NOEXCEPT
+    {
+      data = data_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutTokenEXT & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
+    {
+      offset = offset_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkIndirectCommandsLayoutTokenEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkIndirectCommandsLayoutTokenEXT *>( this );
+    }
+
+    operator VkIndirectCommandsLayoutTokenEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkIndirectCommandsLayoutTokenEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeEXT const &,
+               VULKAN_HPP_NAMESPACE::IndirectCommandsTokenDataEXT const &,
+               uint32_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, type, data, offset );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType                sType  = StructureType::eIndirectCommandsLayoutTokenEXT;
+    const void *                                       pNext  = {};
+    VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeEXT type   = VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeEXT::eExecutionSet;
+    VULKAN_HPP_NAMESPACE::IndirectCommandsTokenDataEXT data   = {};
+    uint32_t                                           offset = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eIndirectCommandsLayoutTokenEXT>
+  {
+    using Type = IndirectCommandsLayoutTokenEXT;
+  };
+
+  struct IndirectCommandsLayoutCreateInfoEXT
+  {
+    using NativeType = VkIndirectCommandsLayoutCreateInfoEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eIndirectCommandsLayoutCreateInfoEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutCreateInfoEXT( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsEXT    flags_          = {},
+                                                              VULKAN_HPP_NAMESPACE::ShaderStageFlags                       shaderStages_   = {},
+                                                              uint32_t                                                     indirectStride_ = {},
+                                                              VULKAN_HPP_NAMESPACE::PipelineLayout                         pipelineLayout_ = {},
+                                                              uint32_t                                                     tokenCount_     = {},
+                                                              const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenEXT * pTokens_        = {},
+                                                              const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext{ pNext_ }
+      , flags{ flags_ }
+      , shaderStages{ shaderStages_ }
+      , indirectStride{ indirectStride_ }
+      , pipelineLayout{ pipelineLayout_ }
+      , tokenCount{ tokenCount_ }
+      , pTokens{ pTokens_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutCreateInfoEXT( IndirectCommandsLayoutCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    IndirectCommandsLayoutCreateInfoEXT( VkIndirectCommandsLayoutCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : IndirectCommandsLayoutCreateInfoEXT( *reinterpret_cast<IndirectCommandsLayoutCreateInfoEXT const *>( &rhs ) )
+    {
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    IndirectCommandsLayoutCreateInfoEXT(
+      VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsEXT                                                         flags_,
+      VULKAN_HPP_NAMESPACE::ShaderStageFlags                                                                            shaderStages_,
+      uint32_t                                                                                                          indirectStride_,
+      VULKAN_HPP_NAMESPACE::PipelineLayout                                                                              pipelineLayout_,
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenEXT> const & tokens_,
+      const void *                                                                                                      pNext_ = nullptr )
+      : pNext( pNext_ )
+      , flags( flags_ )
+      , shaderStages( shaderStages_ )
+      , indirectStride( indirectStride_ )
+      , pipelineLayout( pipelineLayout_ )
+      , tokenCount( static_cast<uint32_t>( tokens_.size() ) )
+      , pTokens( tokens_.data() )
+    {
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    IndirectCommandsLayoutCreateInfoEXT & operator=( IndirectCommandsLayoutCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    IndirectCommandsLayoutCreateInfoEXT & operator=( VkIndirectCommandsLayoutCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoEXT &
+      setFlags( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT
+    {
+      flags = flags_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoEXT & setShaderStages( VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStages_ ) VULKAN_HPP_NOEXCEPT
+    {
+      shaderStages = shaderStages_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoEXT & setIndirectStride( uint32_t indirectStride_ ) VULKAN_HPP_NOEXCEPT
+    {
+      indirectStride = indirectStride_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoEXT & setPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pipelineLayout = pipelineLayout_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoEXT & setTokenCount( uint32_t tokenCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      tokenCount = tokenCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectCommandsLayoutCreateInfoEXT &
+      setPTokens( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenEXT * pTokens_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pTokens = pTokens_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    IndirectCommandsLayoutCreateInfoEXT &
+      setTokens( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenEXT> const & tokens_ ) VULKAN_HPP_NOEXCEPT
+    {
+      tokenCount = static_cast<uint32_t>( tokens_.size() );
+      pTokens    = tokens_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkIndirectCommandsLayoutCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoEXT *>( this );
+    }
+
+    operator VkIndirectCommandsLayoutCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkIndirectCommandsLayoutCreateInfoEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsEXT const &,
+               VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
+               uint32_t const &,
+               VULKAN_HPP_NAMESPACE::PipelineLayout const &,
+               uint32_t const &,
+               const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenEXT * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, flags, shaderStages, indirectStride, pipelineLayout, tokenCount, pTokens );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( IndirectCommandsLayoutCreateInfoEXT const & ) const = default;
+#else
+    bool                                           operator==( IndirectCommandsLayoutCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( flags == rhs.flags ) && ( shaderStages == rhs.shaderStages ) &&
+             ( indirectStride == rhs.indirectStride ) && ( pipelineLayout == rhs.pipelineLayout ) && ( tokenCount == rhs.tokenCount ) &&
+             ( pTokens == rhs.pTokens );
+#  endif
+    }
+
+    bool operator!=( IndirectCommandsLayoutCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType                          sType          = StructureType::eIndirectCommandsLayoutCreateInfoEXT;
+    const void *                                                 pNext          = {};
+    VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsEXT    flags          = {};
+    VULKAN_HPP_NAMESPACE::ShaderStageFlags                       shaderStages   = {};
+    uint32_t                                                     indirectStride = {};
+    VULKAN_HPP_NAMESPACE::PipelineLayout                         pipelineLayout = {};
+    uint32_t                                                     tokenCount     = {};
+    const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenEXT * pTokens        = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eIndirectCommandsLayoutCreateInfoEXT>
+  {
+    using Type = IndirectCommandsLayoutCreateInfoEXT;
+  };
+
   struct IndirectCommandsLayoutTokenNV
   {
     using NativeType = VkIndirectCommandsLayoutTokenNV;
@@ -49196,6 +50905,593 @@
     using Type = IndirectCommandsLayoutCreateInfoNV;
   };
 
+  struct IndirectExecutionSetPipelineInfoEXT
+  {
+    using NativeType = VkIndirectExecutionSetPipelineInfoEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eIndirectExecutionSetPipelineInfoEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR IndirectExecutionSetPipelineInfoEXT( VULKAN_HPP_NAMESPACE::Pipeline initialPipeline_  = {},
+                                                              uint32_t                       maxPipelineCount_ = {},
+                                                              const void *                   pNext_            = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext{ pNext_ }
+      , initialPipeline{ initialPipeline_ }
+      , maxPipelineCount{ maxPipelineCount_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR IndirectExecutionSetPipelineInfoEXT( IndirectExecutionSetPipelineInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    IndirectExecutionSetPipelineInfoEXT( VkIndirectExecutionSetPipelineInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : IndirectExecutionSetPipelineInfoEXT( *reinterpret_cast<IndirectExecutionSetPipelineInfoEXT const *>( &rhs ) )
+    {
+    }
+
+    IndirectExecutionSetPipelineInfoEXT & operator=( IndirectExecutionSetPipelineInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    IndirectExecutionSetPipelineInfoEXT & operator=( VkIndirectExecutionSetPipelineInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectExecutionSetPipelineInfoEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 IndirectExecutionSetPipelineInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectExecutionSetPipelineInfoEXT & setInitialPipeline( VULKAN_HPP_NAMESPACE::Pipeline initialPipeline_ ) VULKAN_HPP_NOEXCEPT
+    {
+      initialPipeline = initialPipeline_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectExecutionSetPipelineInfoEXT & setMaxPipelineCount( uint32_t maxPipelineCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      maxPipelineCount = maxPipelineCount_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkIndirectExecutionSetPipelineInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkIndirectExecutionSetPipelineInfoEXT *>( this );
+    }
+
+    operator VkIndirectExecutionSetPipelineInfoEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkIndirectExecutionSetPipelineInfoEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, VULKAN_HPP_NAMESPACE::Pipeline const &, uint32_t const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, initialPipeline, maxPipelineCount );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( IndirectExecutionSetPipelineInfoEXT const & ) const = default;
+#else
+    bool operator==( IndirectExecutionSetPipelineInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( initialPipeline == rhs.initialPipeline ) && ( maxPipelineCount == rhs.maxPipelineCount );
+#  endif
+    }
+
+    bool operator!=( IndirectExecutionSetPipelineInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType            = StructureType::eIndirectExecutionSetPipelineInfoEXT;
+    const void *                        pNext            = {};
+    VULKAN_HPP_NAMESPACE::Pipeline      initialPipeline  = {};
+    uint32_t                            maxPipelineCount = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eIndirectExecutionSetPipelineInfoEXT>
+  {
+    using Type = IndirectExecutionSetPipelineInfoEXT;
+  };
+
+  struct IndirectExecutionSetShaderLayoutInfoEXT
+  {
+    using NativeType = VkIndirectExecutionSetShaderLayoutInfoEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eIndirectExecutionSetShaderLayoutInfoEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR IndirectExecutionSetShaderLayoutInfoEXT( uint32_t                                          setLayoutCount_ = {},
+                                                                  const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_    = {},
+                                                                  const void *                                      pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext{ pNext_ }
+      , setLayoutCount{ setLayoutCount_ }
+      , pSetLayouts{ pSetLayouts_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR IndirectExecutionSetShaderLayoutInfoEXT( IndirectExecutionSetShaderLayoutInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    IndirectExecutionSetShaderLayoutInfoEXT( VkIndirectExecutionSetShaderLayoutInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : IndirectExecutionSetShaderLayoutInfoEXT( *reinterpret_cast<IndirectExecutionSetShaderLayoutInfoEXT const *>( &rhs ) )
+    {
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    IndirectExecutionSetShaderLayoutInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_,
+                                             const void * pNext_ = nullptr )
+      : pNext( pNext_ ), setLayoutCount( static_cast<uint32_t>( setLayouts_.size() ) ), pSetLayouts( setLayouts_.data() )
+    {
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    IndirectExecutionSetShaderLayoutInfoEXT & operator=( IndirectExecutionSetShaderLayoutInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    IndirectExecutionSetShaderLayoutInfoEXT & operator=( VkIndirectExecutionSetShaderLayoutInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectExecutionSetShaderLayoutInfoEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 IndirectExecutionSetShaderLayoutInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectExecutionSetShaderLayoutInfoEXT & setSetLayoutCount( uint32_t setLayoutCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      setLayoutCount = setLayoutCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectExecutionSetShaderLayoutInfoEXT &
+      setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pSetLayouts = pSetLayouts_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    IndirectExecutionSetShaderLayoutInfoEXT &
+      setSetLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::DescriptorSetLayout> const & setLayouts_ ) VULKAN_HPP_NOEXCEPT
+    {
+      setLayoutCount = static_cast<uint32_t>( setLayouts_.size() );
+      pSetLayouts    = setLayouts_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkIndirectExecutionSetShaderLayoutInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkIndirectExecutionSetShaderLayoutInfoEXT *>( this );
+    }
+
+    operator VkIndirectExecutionSetShaderLayoutInfoEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkIndirectExecutionSetShaderLayoutInfoEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, setLayoutCount, pSetLayouts );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( IndirectExecutionSetShaderLayoutInfoEXT const & ) const = default;
+#else
+    bool operator==( IndirectExecutionSetShaderLayoutInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( setLayoutCount == rhs.setLayoutCount ) && ( pSetLayouts == rhs.pSetLayouts );
+#  endif
+    }
+
+    bool operator!=( IndirectExecutionSetShaderLayoutInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType               sType          = StructureType::eIndirectExecutionSetShaderLayoutInfoEXT;
+    const void *                                      pNext          = {};
+    uint32_t                                          setLayoutCount = {};
+    const VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayouts    = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eIndirectExecutionSetShaderLayoutInfoEXT>
+  {
+    using Type = IndirectExecutionSetShaderLayoutInfoEXT;
+  };
+
+  struct IndirectExecutionSetShaderInfoEXT
+  {
+    using NativeType = VkIndirectExecutionSetShaderInfoEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eIndirectExecutionSetShaderInfoEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR IndirectExecutionSetShaderInfoEXT( uint32_t                                                              shaderCount_            = {},
+                                                            const VULKAN_HPP_NAMESPACE::ShaderEXT *                               pInitialShaders_        = {},
+                                                            const VULKAN_HPP_NAMESPACE::IndirectExecutionSetShaderLayoutInfoEXT * pSetLayoutInfos_        = {},
+                                                            uint32_t                                                              maxShaderCount_         = {},
+                                                            uint32_t                                                              pushConstantRangeCount_ = {},
+                                                            const VULKAN_HPP_NAMESPACE::PushConstantRange *                       pPushConstantRanges_    = {},
+                                                            const void * pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext{ pNext_ }
+      , shaderCount{ shaderCount_ }
+      , pInitialShaders{ pInitialShaders_ }
+      , pSetLayoutInfos{ pSetLayoutInfos_ }
+      , maxShaderCount{ maxShaderCount_ }
+      , pushConstantRangeCount{ pushConstantRangeCount_ }
+      , pPushConstantRanges{ pPushConstantRanges_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR IndirectExecutionSetShaderInfoEXT( IndirectExecutionSetShaderInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    IndirectExecutionSetShaderInfoEXT( VkIndirectExecutionSetShaderInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : IndirectExecutionSetShaderInfoEXT( *reinterpret_cast<IndirectExecutionSetShaderInfoEXT const *>( &rhs ) )
+    {
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    IndirectExecutionSetShaderInfoEXT(
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShaderEXT> const &                               initialShaders_,
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectExecutionSetShaderLayoutInfoEXT> const & setLayoutInfos_     = {},
+      uint32_t                                                                                                                   maxShaderCount_     = {},
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PushConstantRange> const &                       pushConstantRanges_ = {},
+      const void *                                                                                                               pNext_              = nullptr )
+      : pNext( pNext_ )
+      , shaderCount( static_cast<uint32_t>( initialShaders_.size() ) )
+      , pInitialShaders( initialShaders_.data() )
+      , pSetLayoutInfos( setLayoutInfos_.data() )
+      , maxShaderCount( maxShaderCount_ )
+      , pushConstantRangeCount( static_cast<uint32_t>( pushConstantRanges_.size() ) )
+      , pPushConstantRanges( pushConstantRanges_.data() )
+    {
+#    ifdef VULKAN_HPP_NO_EXCEPTIONS
+      VULKAN_HPP_ASSERT( setLayoutInfos_.empty() || ( initialShaders_.size() == setLayoutInfos_.size() ) );
+#    else
+      if ( !setLayoutInfos_.empty() && ( initialShaders_.size() != setLayoutInfos_.size() ) )
+      {
+        throw LogicError(
+          VULKAN_HPP_NAMESPACE_STRING
+          "::IndirectExecutionSetShaderInfoEXT::IndirectExecutionSetShaderInfoEXT: !setLayoutInfos_.empty() && ( initialShaders_.size() != setLayoutInfos_.size() )" );
+      }
+#    endif /*VULKAN_HPP_NO_EXCEPTIONS*/
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    IndirectExecutionSetShaderInfoEXT & operator=( IndirectExecutionSetShaderInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    IndirectExecutionSetShaderInfoEXT & operator=( VkIndirectExecutionSetShaderInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectExecutionSetShaderInfoEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 IndirectExecutionSetShaderInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectExecutionSetShaderInfoEXT & setShaderCount( uint32_t shaderCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      shaderCount = shaderCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectExecutionSetShaderInfoEXT &
+      setPInitialShaders( const VULKAN_HPP_NAMESPACE::ShaderEXT * pInitialShaders_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pInitialShaders = pInitialShaders_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    IndirectExecutionSetShaderInfoEXT &
+      setInitialShaders( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::ShaderEXT> const & initialShaders_ ) VULKAN_HPP_NOEXCEPT
+    {
+      shaderCount     = static_cast<uint32_t>( initialShaders_.size() );
+      pInitialShaders = initialShaders_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectExecutionSetShaderInfoEXT &
+      setPSetLayoutInfos( const VULKAN_HPP_NAMESPACE::IndirectExecutionSetShaderLayoutInfoEXT * pSetLayoutInfos_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pSetLayoutInfos = pSetLayoutInfos_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    IndirectExecutionSetShaderInfoEXT & setSetLayoutInfos(
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::IndirectExecutionSetShaderLayoutInfoEXT> const & setLayoutInfos_ )
+      VULKAN_HPP_NOEXCEPT
+    {
+      shaderCount     = static_cast<uint32_t>( setLayoutInfos_.size() );
+      pSetLayoutInfos = setLayoutInfos_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectExecutionSetShaderInfoEXT & setMaxShaderCount( uint32_t maxShaderCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      maxShaderCount = maxShaderCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectExecutionSetShaderInfoEXT & setPushConstantRangeCount( uint32_t pushConstantRangeCount_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pushConstantRangeCount = pushConstantRangeCount_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectExecutionSetShaderInfoEXT &
+      setPPushConstantRanges( const VULKAN_HPP_NAMESPACE::PushConstantRange * pPushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pPushConstantRanges = pPushConstantRanges_;
+      return *this;
+    }
+
+#  if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE )
+    IndirectExecutionSetShaderInfoEXT & setPushConstantRanges(
+      VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries<const VULKAN_HPP_NAMESPACE::PushConstantRange> const & pushConstantRanges_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pushConstantRangeCount = static_cast<uint32_t>( pushConstantRanges_.size() );
+      pPushConstantRanges    = pushConstantRanges_.data();
+      return *this;
+    }
+#  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
+#endif   /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkIndirectExecutionSetShaderInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkIndirectExecutionSetShaderInfoEXT *>( this );
+    }
+
+    operator VkIndirectExecutionSetShaderInfoEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkIndirectExecutionSetShaderInfoEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               uint32_t const &,
+               const VULKAN_HPP_NAMESPACE::ShaderEXT * const &,
+               const VULKAN_HPP_NAMESPACE::IndirectExecutionSetShaderLayoutInfoEXT * const &,
+               uint32_t const &,
+               uint32_t const &,
+               const VULKAN_HPP_NAMESPACE::PushConstantRange * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, shaderCount, pInitialShaders, pSetLayoutInfos, maxShaderCount, pushConstantRangeCount, pPushConstantRanges );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( IndirectExecutionSetShaderInfoEXT const & ) const = default;
+#else
+    bool operator==( IndirectExecutionSetShaderInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( shaderCount == rhs.shaderCount ) && ( pInitialShaders == rhs.pInitialShaders ) &&
+             ( pSetLayoutInfos == rhs.pSetLayoutInfos ) && ( maxShaderCount == rhs.maxShaderCount ) &&
+             ( pushConstantRangeCount == rhs.pushConstantRangeCount ) && ( pPushConstantRanges == rhs.pPushConstantRanges );
+#  endif
+    }
+
+    bool operator!=( IndirectExecutionSetShaderInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType                                   sType                  = StructureType::eIndirectExecutionSetShaderInfoEXT;
+    const void *                                                          pNext                  = {};
+    uint32_t                                                              shaderCount            = {};
+    const VULKAN_HPP_NAMESPACE::ShaderEXT *                               pInitialShaders        = {};
+    const VULKAN_HPP_NAMESPACE::IndirectExecutionSetShaderLayoutInfoEXT * pSetLayoutInfos        = {};
+    uint32_t                                                              maxShaderCount         = {};
+    uint32_t                                                              pushConstantRangeCount = {};
+    const VULKAN_HPP_NAMESPACE::PushConstantRange *                       pPushConstantRanges    = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eIndirectExecutionSetShaderInfoEXT>
+  {
+    using Type = IndirectExecutionSetShaderInfoEXT;
+  };
+
+  union IndirectExecutionSetInfoEXT
+  {
+    using NativeType = VkIndirectExecutionSetInfoEXT;
+#if !defined( VULKAN_HPP_NO_UNION_CONSTRUCTORS )
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectExecutionSetInfoEXT( const VULKAN_HPP_NAMESPACE::IndirectExecutionSetPipelineInfoEXT * pPipelineInfo_ = {} )
+      : pPipelineInfo( pPipelineInfo_ )
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectExecutionSetInfoEXT( const VULKAN_HPP_NAMESPACE::IndirectExecutionSetShaderInfoEXT * pShaderInfo_ )
+      : pShaderInfo( pShaderInfo_ )
+    {
+    }
+#endif /*VULKAN_HPP_NO_UNION_CONSTRUCTORS*/
+
+#if !defined( VULKAN_HPP_NO_UNION_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 IndirectExecutionSetInfoEXT &
+      setPPipelineInfo( const VULKAN_HPP_NAMESPACE::IndirectExecutionSetPipelineInfoEXT * pPipelineInfo_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pPipelineInfo = pPipelineInfo_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectExecutionSetInfoEXT &
+      setPShaderInfo( const VULKAN_HPP_NAMESPACE::IndirectExecutionSetShaderInfoEXT * pShaderInfo_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pShaderInfo = pShaderInfo_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_UNION_SETTERS*/
+
+    operator VkIndirectExecutionSetInfoEXT const &() const
+    {
+      return *reinterpret_cast<const VkIndirectExecutionSetInfoEXT *>( this );
+    }
+
+    operator VkIndirectExecutionSetInfoEXT &()
+    {
+      return *reinterpret_cast<VkIndirectExecutionSetInfoEXT *>( this );
+    }
+
+#ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS
+    const VULKAN_HPP_NAMESPACE::IndirectExecutionSetPipelineInfoEXT * pPipelineInfo;
+    const VULKAN_HPP_NAMESPACE::IndirectExecutionSetShaderInfoEXT *   pShaderInfo;
+#else
+    const VkIndirectExecutionSetPipelineInfoEXT * pPipelineInfo;
+    const VkIndirectExecutionSetShaderInfoEXT *   pShaderInfo;
+#endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/
+  };
+
+  struct IndirectExecutionSetCreateInfoEXT
+  {
+    using NativeType = VkIndirectExecutionSetCreateInfoEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eIndirectExecutionSetCreateInfoEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR_14 IndirectExecutionSetCreateInfoEXT(
+      VULKAN_HPP_NAMESPACE::IndirectExecutionSetInfoTypeEXT type_  = VULKAN_HPP_NAMESPACE::IndirectExecutionSetInfoTypeEXT::ePipelines,
+      VULKAN_HPP_NAMESPACE::IndirectExecutionSetInfoEXT     info_  = {},
+      const void *                                          pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext{ pNext_ }
+      , type{ type_ }
+      , info{ info_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectExecutionSetCreateInfoEXT( IndirectExecutionSetCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    IndirectExecutionSetCreateInfoEXT( VkIndirectExecutionSetCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : IndirectExecutionSetCreateInfoEXT( *reinterpret_cast<IndirectExecutionSetCreateInfoEXT const *>( &rhs ) )
+    {
+    }
+
+    IndirectExecutionSetCreateInfoEXT & operator=( IndirectExecutionSetCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    IndirectExecutionSetCreateInfoEXT & operator=( VkIndirectExecutionSetCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::IndirectExecutionSetCreateInfoEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 IndirectExecutionSetCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectExecutionSetCreateInfoEXT & setType( VULKAN_HPP_NAMESPACE::IndirectExecutionSetInfoTypeEXT type_ ) VULKAN_HPP_NOEXCEPT
+    {
+      type = type_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 IndirectExecutionSetCreateInfoEXT & setInfo( VULKAN_HPP_NAMESPACE::IndirectExecutionSetInfoEXT const & info_ ) VULKAN_HPP_NOEXCEPT
+    {
+      info = info_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkIndirectExecutionSetCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkIndirectExecutionSetCreateInfoEXT *>( this );
+    }
+
+    operator VkIndirectExecutionSetCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkIndirectExecutionSetCreateInfoEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::IndirectExecutionSetInfoTypeEXT const &,
+               VULKAN_HPP_NAMESPACE::IndirectExecutionSetInfoEXT const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, type, info );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType                   sType = StructureType::eIndirectExecutionSetCreateInfoEXT;
+    const void *                                          pNext = {};
+    VULKAN_HPP_NAMESPACE::IndirectExecutionSetInfoTypeEXT type  = VULKAN_HPP_NAMESPACE::IndirectExecutionSetInfoTypeEXT::ePipelines;
+    VULKAN_HPP_NAMESPACE::IndirectExecutionSetInfoEXT     info  = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eIndirectExecutionSetCreateInfoEXT>
+  {
+    using Type = IndirectExecutionSetCreateInfoEXT;
+  };
+
   struct InitializePerformanceApiInfoINTEL
   {
     using NativeType = VkInitializePerformanceApiInfoINTEL;
@@ -49265,7 +51561,7 @@
 #if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
     auto operator<=>( InitializePerformanceApiInfoINTEL const & ) const = default;
 #else
-    bool operator==( InitializePerformanceApiInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
+    bool                                          operator==( InitializePerformanceApiInfoINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT
     {
 #  if defined( VULKAN_HPP_USE_REFLECT )
       return this->reflect() == rhs.reflect();
@@ -60876,6 +63172,104 @@
     using Type = PhysicalDeviceDepthBiasControlFeaturesEXT;
   };
 
+  struct PhysicalDeviceDepthClampControlFeaturesEXT
+  {
+    using NativeType = VkPhysicalDeviceDepthClampControlFeaturesEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceDepthClampControlFeaturesEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClampControlFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 depthClampControl_ = {},
+                                                                     void *                       pNext_             = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext{ pNext_ }
+      , depthClampControl{ depthClampControl_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClampControlFeaturesEXT( PhysicalDeviceDepthClampControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceDepthClampControlFeaturesEXT( VkPhysicalDeviceDepthClampControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceDepthClampControlFeaturesEXT( *reinterpret_cast<PhysicalDeviceDepthClampControlFeaturesEXT const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceDepthClampControlFeaturesEXT & operator=( PhysicalDeviceDepthClampControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceDepthClampControlFeaturesEXT & operator=( VkPhysicalDeviceDepthClampControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampControlFeaturesEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClampControlFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDepthClampControlFeaturesEXT &
+      setDepthClampControl( VULKAN_HPP_NAMESPACE::Bool32 depthClampControl_ ) VULKAN_HPP_NOEXCEPT
+    {
+      depthClampControl = depthClampControl_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceDepthClampControlFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceDepthClampControlFeaturesEXT *>( this );
+    }
+
+    operator VkPhysicalDeviceDepthClampControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceDepthClampControlFeaturesEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, depthClampControl );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceDepthClampControlFeaturesEXT const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceDepthClampControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( depthClampControl == rhs.depthClampControl );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceDepthClampControlFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType             = StructureType::ePhysicalDeviceDepthClampControlFeaturesEXT;
+    void *                              pNext             = {};
+    VULKAN_HPP_NAMESPACE::Bool32        depthClampControl = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceDepthClampControlFeaturesEXT>
+  {
+    using Type = PhysicalDeviceDepthClampControlFeaturesEXT;
+  };
+
   struct PhysicalDeviceDepthClampZeroOneFeaturesEXT
   {
     using NativeType = VkPhysicalDeviceDepthClampZeroOneFeaturesEXT;
@@ -62668,6 +65062,116 @@
     using Type = PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
   };
 
+  struct PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT
+  {
+    using NativeType = VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_        = {},
+                                                                           VULKAN_HPP_NAMESPACE::Bool32 dynamicGeneratedPipelineLayout_ = {},
+                                                                           void *                       pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext{ pNext_ }
+      , deviceGeneratedCommands{ deviceGeneratedCommands_ }
+      , dynamicGeneratedPipelineLayout{ dynamicGeneratedPipelineLayout_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR
+      PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT( PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT( *reinterpret_cast<PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT & operator=( PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT & operator=( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT & setPNext( void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT &
+      setDeviceGeneratedCommands( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ ) VULKAN_HPP_NOEXCEPT
+    {
+      deviceGeneratedCommands = deviceGeneratedCommands_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT &
+      setDynamicGeneratedPipelineLayout( VULKAN_HPP_NAMESPACE::Bool32 dynamicGeneratedPipelineLayout_ ) VULKAN_HPP_NOEXCEPT
+    {
+      dynamicGeneratedPipelineLayout = dynamicGeneratedPipelineLayout_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT *>( this );
+    }
+
+    operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, void * const &, VULKAN_HPP_NAMESPACE::Bool32 const &, VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, deviceGeneratedCommands, dynamicGeneratedPipelineLayout );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( deviceGeneratedCommands == rhs.deviceGeneratedCommands ) &&
+             ( dynamicGeneratedPipelineLayout == rhs.dynamicGeneratedPipelineLayout );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType                          = StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesEXT;
+    void *                              pNext                          = {};
+    VULKAN_HPP_NAMESPACE::Bool32        deviceGeneratedCommands        = {};
+    VULKAN_HPP_NAMESPACE::Bool32        dynamicGeneratedPipelineLayout = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesEXT>
+  {
+    using Type = PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT;
+  };
+
   struct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV
   {
     using NativeType = VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
@@ -62767,6 +65271,161 @@
     using Type = PhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
   };
 
+  struct PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT
+  {
+    using NativeType = VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR
+      PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT( uint32_t                                                maxIndirectPipelineCount_              = {},
+                                                          uint32_t                                                maxIndirectShaderObjectCount_          = {},
+                                                          uint32_t                                                maxIndirectSequenceCount_              = {},
+                                                          uint32_t                                                maxIndirectCommandsTokenCount_         = {},
+                                                          uint32_t                                                maxIndirectCommandsTokenOffset_        = {},
+                                                          uint32_t                                                maxIndirectCommandsIndirectStride_     = {},
+                                                          VULKAN_HPP_NAMESPACE::IndirectCommandsInputModeFlagsEXT supportedIndirectCommandsInputModes_   = {},
+                                                          VULKAN_HPP_NAMESPACE::ShaderStageFlags                  supportedIndirectCommandsShaderStages_ = {},
+                                                          VULKAN_HPP_NAMESPACE::ShaderStageFlags supportedIndirectCommandsShaderStagesPipelineBinding_   = {},
+                                                          VULKAN_HPP_NAMESPACE::ShaderStageFlags supportedIndirectCommandsShaderStagesShaderBinding_     = {},
+                                                          VULKAN_HPP_NAMESPACE::Bool32           deviceGeneratedCommandsTransformFeedback_               = {},
+                                                          VULKAN_HPP_NAMESPACE::Bool32           deviceGeneratedCommandsMultiDrawIndirectCount_          = {},
+                                                          void *                                 pNext_ = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext{ pNext_ }
+      , maxIndirectPipelineCount{ maxIndirectPipelineCount_ }
+      , maxIndirectShaderObjectCount{ maxIndirectShaderObjectCount_ }
+      , maxIndirectSequenceCount{ maxIndirectSequenceCount_ }
+      , maxIndirectCommandsTokenCount{ maxIndirectCommandsTokenCount_ }
+      , maxIndirectCommandsTokenOffset{ maxIndirectCommandsTokenOffset_ }
+      , maxIndirectCommandsIndirectStride{ maxIndirectCommandsIndirectStride_ }
+      , supportedIndirectCommandsInputModes{ supportedIndirectCommandsInputModes_ }
+      , supportedIndirectCommandsShaderStages{ supportedIndirectCommandsShaderStages_ }
+      , supportedIndirectCommandsShaderStagesPipelineBinding{ supportedIndirectCommandsShaderStagesPipelineBinding_ }
+      , supportedIndirectCommandsShaderStagesShaderBinding{ supportedIndirectCommandsShaderStagesShaderBinding_ }
+      , deviceGeneratedCommandsTransformFeedback{ deviceGeneratedCommandsTransformFeedback_ }
+      , deviceGeneratedCommandsMultiDrawIndirectCount{ deviceGeneratedCommandsMultiDrawIndirectCount_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR
+      PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT( PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT( *reinterpret_cast<PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT const *>( &rhs ) )
+    {
+    }
+
+    PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT &
+      operator=( PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT & operator=( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT const *>( &rhs );
+      return *this;
+    }
+
+    operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT *>( this );
+    }
+
+    operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               void * const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &,
+               uint32_t const &,
+               VULKAN_HPP_NAMESPACE::IndirectCommandsInputModeFlagsEXT const &,
+               VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
+               VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
+               VULKAN_HPP_NAMESPACE::ShaderStageFlags const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &,
+               VULKAN_HPP_NAMESPACE::Bool32 const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType,
+                       pNext,
+                       maxIndirectPipelineCount,
+                       maxIndirectShaderObjectCount,
+                       maxIndirectSequenceCount,
+                       maxIndirectCommandsTokenCount,
+                       maxIndirectCommandsTokenOffset,
+                       maxIndirectCommandsIndirectStride,
+                       supportedIndirectCommandsInputModes,
+                       supportedIndirectCommandsShaderStages,
+                       supportedIndirectCommandsShaderStagesPipelineBinding,
+                       supportedIndirectCommandsShaderStagesShaderBinding,
+                       deviceGeneratedCommandsTransformFeedback,
+                       deviceGeneratedCommandsMultiDrawIndirectCount );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT const & ) const = default;
+#else
+    bool operator==( PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( maxIndirectPipelineCount == rhs.maxIndirectPipelineCount ) &&
+             ( maxIndirectShaderObjectCount == rhs.maxIndirectShaderObjectCount ) && ( maxIndirectSequenceCount == rhs.maxIndirectSequenceCount ) &&
+             ( maxIndirectCommandsTokenCount == rhs.maxIndirectCommandsTokenCount ) &&
+             ( maxIndirectCommandsTokenOffset == rhs.maxIndirectCommandsTokenOffset ) &&
+             ( maxIndirectCommandsIndirectStride == rhs.maxIndirectCommandsIndirectStride ) &&
+             ( supportedIndirectCommandsInputModes == rhs.supportedIndirectCommandsInputModes ) &&
+             ( supportedIndirectCommandsShaderStages == rhs.supportedIndirectCommandsShaderStages ) &&
+             ( supportedIndirectCommandsShaderStagesPipelineBinding == rhs.supportedIndirectCommandsShaderStagesPipelineBinding ) &&
+             ( supportedIndirectCommandsShaderStagesShaderBinding == rhs.supportedIndirectCommandsShaderStagesShaderBinding ) &&
+             ( deviceGeneratedCommandsTransformFeedback == rhs.deviceGeneratedCommandsTransformFeedback ) &&
+             ( deviceGeneratedCommandsMultiDrawIndirectCount == rhs.deviceGeneratedCommandsMultiDrawIndirectCount );
+#  endif
+    }
+
+    bool operator!=( PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType                     sType                          = StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesEXT;
+    void *                                                  pNext                          = {};
+    uint32_t                                                maxIndirectPipelineCount       = {};
+    uint32_t                                                maxIndirectShaderObjectCount   = {};
+    uint32_t                                                maxIndirectSequenceCount       = {};
+    uint32_t                                                maxIndirectCommandsTokenCount  = {};
+    uint32_t                                                maxIndirectCommandsTokenOffset = {};
+    uint32_t                                                maxIndirectCommandsIndirectStride                    = {};
+    VULKAN_HPP_NAMESPACE::IndirectCommandsInputModeFlagsEXT supportedIndirectCommandsInputModes                  = {};
+    VULKAN_HPP_NAMESPACE::ShaderStageFlags                  supportedIndirectCommandsShaderStages                = {};
+    VULKAN_HPP_NAMESPACE::ShaderStageFlags                  supportedIndirectCommandsShaderStagesPipelineBinding = {};
+    VULKAN_HPP_NAMESPACE::ShaderStageFlags                  supportedIndirectCommandsShaderStagesShaderBinding   = {};
+    VULKAN_HPP_NAMESPACE::Bool32                            deviceGeneratedCommandsTransformFeedback             = {};
+    VULKAN_HPP_NAMESPACE::Bool32                            deviceGeneratedCommandsMultiDrawIndirectCount        = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesEXT>
+  {
+    using Type = PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT;
+  };
+
   struct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV
   {
     using NativeType = VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
@@ -96561,98 +99220,6 @@
 
   using PipelineInfoEXT = PipelineInfoKHR;
 
-  struct PushConstantRange
-  {
-    using NativeType = VkPushConstantRange;
-
-#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
-    VULKAN_HPP_CONSTEXPR
-      PushConstantRange( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {}, uint32_t offset_ = {}, uint32_t size_ = {} ) VULKAN_HPP_NOEXCEPT
-      : stageFlags{ stageFlags_ }
-      , offset{ offset_ }
-      , size{ size_ }
-    {
-    }
-
-    VULKAN_HPP_CONSTEXPR PushConstantRange( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-
-    PushConstantRange( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT : PushConstantRange( *reinterpret_cast<PushConstantRange const *>( &rhs ) ) {}
-
-    PushConstantRange & operator=( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT = default;
-#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
-
-    PushConstantRange & operator=( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT
-    {
-      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PushConstantRange const *>( &rhs );
-      return *this;
-    }
-
-#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
-    VULKAN_HPP_CONSTEXPR_14 PushConstantRange & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT
-    {
-      stageFlags = stageFlags_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 PushConstantRange & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT
-    {
-      offset = offset_;
-      return *this;
-    }
-
-    VULKAN_HPP_CONSTEXPR_14 PushConstantRange & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT
-    {
-      size = size_;
-      return *this;
-    }
-#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
-
-    operator VkPushConstantRange const &() const VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<const VkPushConstantRange *>( this );
-    }
-
-    operator VkPushConstantRange &() VULKAN_HPP_NOEXCEPT
-    {
-      return *reinterpret_cast<VkPushConstantRange *>( this );
-    }
-
-#if defined( VULKAN_HPP_USE_REFLECT )
-#  if 14 <= VULKAN_HPP_CPP_VERSION
-    auto
-#  else
-    std::tuple<VULKAN_HPP_NAMESPACE::ShaderStageFlags const &, uint32_t const &, uint32_t const &>
-#  endif
-      reflect() const VULKAN_HPP_NOEXCEPT
-    {
-      return std::tie( stageFlags, offset, size );
-    }
-#endif
-
-#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
-    auto operator<=>( PushConstantRange const & ) const = default;
-#else
-    bool operator==( PushConstantRange const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-#  if defined( VULKAN_HPP_USE_REFLECT )
-      return this->reflect() == rhs.reflect();
-#  else
-      return ( stageFlags == rhs.stageFlags ) && ( offset == rhs.offset ) && ( size == rhs.size );
-#  endif
-    }
-
-    bool operator!=( PushConstantRange const & rhs ) const VULKAN_HPP_NOEXCEPT
-    {
-      return !operator==( rhs );
-    }
-#endif
-
-  public:
-    VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {};
-    uint32_t                               offset     = {};
-    uint32_t                               size       = {};
-  };
-
   struct PipelineLayoutCreateInfo
   {
     using NativeType = VkPipelineLayoutCreateInfo;
@@ -98922,6 +101489,119 @@
     using Type = PipelineViewportCoarseSampleOrderStateCreateInfoNV;
   };
 
+  struct PipelineViewportDepthClampControlCreateInfoEXT
+  {
+    using NativeType = VkPipelineViewportDepthClampControlCreateInfoEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::ePipelineViewportDepthClampControlCreateInfoEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR PipelineViewportDepthClampControlCreateInfoEXT(
+      VULKAN_HPP_NAMESPACE::DepthClampModeEXT          depthClampMode_   = VULKAN_HPP_NAMESPACE::DepthClampModeEXT::eViewportRange,
+      const VULKAN_HPP_NAMESPACE::DepthClampRangeEXT * pDepthClampRange_ = {},
+      const void *                                     pNext_            = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext{ pNext_ }
+      , depthClampMode{ depthClampMode_ }
+      , pDepthClampRange{ pDepthClampRange_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR
+      PipelineViewportDepthClampControlCreateInfoEXT( PipelineViewportDepthClampControlCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    PipelineViewportDepthClampControlCreateInfoEXT( VkPipelineViewportDepthClampControlCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : PipelineViewportDepthClampControlCreateInfoEXT( *reinterpret_cast<PipelineViewportDepthClampControlCreateInfoEXT const *>( &rhs ) )
+    {
+    }
+
+    PipelineViewportDepthClampControlCreateInfoEXT & operator=( PipelineViewportDepthClampControlCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    PipelineViewportDepthClampControlCreateInfoEXT & operator=( VkPipelineViewportDepthClampControlCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::PipelineViewportDepthClampControlCreateInfoEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 PipelineViewportDepthClampControlCreateInfoEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PipelineViewportDepthClampControlCreateInfoEXT &
+      setDepthClampMode( VULKAN_HPP_NAMESPACE::DepthClampModeEXT depthClampMode_ ) VULKAN_HPP_NOEXCEPT
+    {
+      depthClampMode = depthClampMode_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 PipelineViewportDepthClampControlCreateInfoEXT &
+      setPDepthClampRange( const VULKAN_HPP_NAMESPACE::DepthClampRangeEXT * pDepthClampRange_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pDepthClampRange = pDepthClampRange_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkPipelineViewportDepthClampControlCreateInfoEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkPipelineViewportDepthClampControlCreateInfoEXT *>( this );
+    }
+
+    operator VkPipelineViewportDepthClampControlCreateInfoEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkPipelineViewportDepthClampControlCreateInfoEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &,
+               const void * const &,
+               VULKAN_HPP_NAMESPACE::DepthClampModeEXT const &,
+               const VULKAN_HPP_NAMESPACE::DepthClampRangeEXT * const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, depthClampMode, pDepthClampRange );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( PipelineViewportDepthClampControlCreateInfoEXT const & ) const = default;
+#else
+    bool operator==( PipelineViewportDepthClampControlCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( depthClampMode == rhs.depthClampMode ) && ( pDepthClampRange == rhs.pDepthClampRange );
+#  endif
+    }
+
+    bool operator!=( PipelineViewportDepthClampControlCreateInfoEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType              sType            = StructureType::ePipelineViewportDepthClampControlCreateInfoEXT;
+    const void *                                     pNext            = {};
+    VULKAN_HPP_NAMESPACE::DepthClampModeEXT          depthClampMode   = VULKAN_HPP_NAMESPACE::DepthClampModeEXT::eViewportRange;
+    const VULKAN_HPP_NAMESPACE::DepthClampRangeEXT * pDepthClampRange = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::ePipelineViewportDepthClampControlCreateInfoEXT>
+  {
+    using Type = PipelineViewportDepthClampControlCreateInfoEXT;
+  };
+
   struct PipelineViewportDepthClipControlCreateInfoEXT
   {
     using NativeType = VkPipelineViewportDepthClipControlCreateInfoEXT;
@@ -128671,6 +131351,218 @@
 
   using WriteDescriptorSetInlineUniformBlockEXT = WriteDescriptorSetInlineUniformBlock;
 
+  struct WriteIndirectExecutionSetPipelineEXT
+  {
+    using NativeType = VkWriteIndirectExecutionSetPipelineEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eWriteIndirectExecutionSetPipelineEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR WriteIndirectExecutionSetPipelineEXT( uint32_t                       index_    = {},
+                                                               VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {},
+                                                               const void *                   pNext_    = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext{ pNext_ }
+      , index{ index_ }
+      , pipeline{ pipeline_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR WriteIndirectExecutionSetPipelineEXT( WriteIndirectExecutionSetPipelineEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    WriteIndirectExecutionSetPipelineEXT( VkWriteIndirectExecutionSetPipelineEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : WriteIndirectExecutionSetPipelineEXT( *reinterpret_cast<WriteIndirectExecutionSetPipelineEXT const *>( &rhs ) )
+    {
+    }
+
+    WriteIndirectExecutionSetPipelineEXT & operator=( WriteIndirectExecutionSetPipelineEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    WriteIndirectExecutionSetPipelineEXT & operator=( VkWriteIndirectExecutionSetPipelineEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetPipelineEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 WriteIndirectExecutionSetPipelineEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 WriteIndirectExecutionSetPipelineEXT & setIndex( uint32_t index_ ) VULKAN_HPP_NOEXCEPT
+    {
+      index = index_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 WriteIndirectExecutionSetPipelineEXT & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pipeline = pipeline_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkWriteIndirectExecutionSetPipelineEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkWriteIndirectExecutionSetPipelineEXT *>( this );
+    }
+
+    operator VkWriteIndirectExecutionSetPipelineEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkWriteIndirectExecutionSetPipelineEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::Pipeline const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, index, pipeline );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( WriteIndirectExecutionSetPipelineEXT const & ) const = default;
+#else
+    bool operator==( WriteIndirectExecutionSetPipelineEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( index == rhs.index ) && ( pipeline == rhs.pipeline );
+#  endif
+    }
+
+    bool operator!=( WriteIndirectExecutionSetPipelineEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType    = StructureType::eWriteIndirectExecutionSetPipelineEXT;
+    const void *                        pNext    = {};
+    uint32_t                            index    = {};
+    VULKAN_HPP_NAMESPACE::Pipeline      pipeline = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eWriteIndirectExecutionSetPipelineEXT>
+  {
+    using Type = WriteIndirectExecutionSetPipelineEXT;
+  };
+
+  struct WriteIndirectExecutionSetShaderEXT
+  {
+    using NativeType = VkWriteIndirectExecutionSetShaderEXT;
+
+    static const bool                                  allowDuplicate = false;
+    static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType  = StructureType::eWriteIndirectExecutionSetShaderEXT;
+
+#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS )
+    VULKAN_HPP_CONSTEXPR WriteIndirectExecutionSetShaderEXT( uint32_t                        index_  = {},
+                                                             VULKAN_HPP_NAMESPACE::ShaderEXT shader_ = {},
+                                                             const void *                    pNext_  = nullptr ) VULKAN_HPP_NOEXCEPT
+      : pNext{ pNext_ }
+      , index{ index_ }
+      , shader{ shader_ }
+    {
+    }
+
+    VULKAN_HPP_CONSTEXPR WriteIndirectExecutionSetShaderEXT( WriteIndirectExecutionSetShaderEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+
+    WriteIndirectExecutionSetShaderEXT( VkWriteIndirectExecutionSetShaderEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+      : WriteIndirectExecutionSetShaderEXT( *reinterpret_cast<WriteIndirectExecutionSetShaderEXT const *>( &rhs ) )
+    {
+    }
+
+    WriteIndirectExecutionSetShaderEXT & operator=( WriteIndirectExecutionSetShaderEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default;
+#endif /*VULKAN_HPP_NO_STRUCT_CONSTRUCTORS*/
+
+    WriteIndirectExecutionSetShaderEXT & operator=( VkWriteIndirectExecutionSetShaderEXT const & rhs ) VULKAN_HPP_NOEXCEPT
+    {
+      *this = *reinterpret_cast<VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetShaderEXT const *>( &rhs );
+      return *this;
+    }
+
+#if !defined( VULKAN_HPP_NO_STRUCT_SETTERS )
+    VULKAN_HPP_CONSTEXPR_14 WriteIndirectExecutionSetShaderEXT & setPNext( const void * pNext_ ) VULKAN_HPP_NOEXCEPT
+    {
+      pNext = pNext_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 WriteIndirectExecutionSetShaderEXT & setIndex( uint32_t index_ ) VULKAN_HPP_NOEXCEPT
+    {
+      index = index_;
+      return *this;
+    }
+
+    VULKAN_HPP_CONSTEXPR_14 WriteIndirectExecutionSetShaderEXT & setShader( VULKAN_HPP_NAMESPACE::ShaderEXT shader_ ) VULKAN_HPP_NOEXCEPT
+    {
+      shader = shader_;
+      return *this;
+    }
+#endif /*VULKAN_HPP_NO_STRUCT_SETTERS*/
+
+    operator VkWriteIndirectExecutionSetShaderEXT const &() const VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<const VkWriteIndirectExecutionSetShaderEXT *>( this );
+    }
+
+    operator VkWriteIndirectExecutionSetShaderEXT &() VULKAN_HPP_NOEXCEPT
+    {
+      return *reinterpret_cast<VkWriteIndirectExecutionSetShaderEXT *>( this );
+    }
+
+#if defined( VULKAN_HPP_USE_REFLECT )
+#  if 14 <= VULKAN_HPP_CPP_VERSION
+    auto
+#  else
+    std::tuple<VULKAN_HPP_NAMESPACE::StructureType const &, const void * const &, uint32_t const &, VULKAN_HPP_NAMESPACE::ShaderEXT const &>
+#  endif
+      reflect() const VULKAN_HPP_NOEXCEPT
+    {
+      return std::tie( sType, pNext, index, shader );
+    }
+#endif
+
+#if defined( VULKAN_HPP_HAS_SPACESHIP_OPERATOR )
+    auto operator<=>( WriteIndirectExecutionSetShaderEXT const & ) const = default;
+#else
+    bool operator==( WriteIndirectExecutionSetShaderEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+#  if defined( VULKAN_HPP_USE_REFLECT )
+      return this->reflect() == rhs.reflect();
+#  else
+      return ( sType == rhs.sType ) && ( pNext == rhs.pNext ) && ( index == rhs.index ) && ( shader == rhs.shader );
+#  endif
+    }
+
+    bool operator!=( WriteIndirectExecutionSetShaderEXT const & rhs ) const VULKAN_HPP_NOEXCEPT
+    {
+      return !operator==( rhs );
+    }
+#endif
+
+  public:
+    VULKAN_HPP_NAMESPACE::StructureType sType  = StructureType::eWriteIndirectExecutionSetShaderEXT;
+    const void *                        pNext  = {};
+    uint32_t                            index  = {};
+    VULKAN_HPP_NAMESPACE::ShaderEXT     shader = {};
+  };
+
+  template <>
+  struct CppType<StructureType, StructureType::eWriteIndirectExecutionSetShaderEXT>
+  {
+    using Type = WriteIndirectExecutionSetShaderEXT;
+  };
+
 #if defined( VK_USE_PLATFORM_XCB_KHR )
   struct XcbSurfaceCreateInfoKHR
   {
diff --git a/include/vulkan/vulkan_to_string.hpp b/include/vulkan/vulkan_to_string.hpp
index 8417c14..4e5b5ae 100644
--- a/include/vulkan/vulkan_to_string.hpp
+++ b/include/vulkan/vulkan_to_string.hpp
@@ -10,10 +10,23 @@
 
 #include <vulkan/vulkan_enums.hpp>
 
-#if __cpp_lib_format
-#  include <format>  // std::format
+// ignore warnings on using deprecated enum values in this header
+#if defined( __clang__ ) || defined( __GNUC__ )
+#  pragma GCC diagnostic push
+#  pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#elif defined( _MSC_VER )
+#  pragma warning( push )
+#  pragma warning( disable : 4996 )
+#endif
+
+#if defined( VULKAN_HPP_ENABLE_STD_MODULE ) && defined( VULKAN_HPP_STD_MODULE )
+import VULKAN_HPP_STD_MODULE;
 #else
-#  include <sstream>  // std::stringstream
+#  if __cpp_lib_format
+#    include <format>  // std::format
+#  else
+#    include <sstream>  // std::stringstream
+#  endif
 #endif
 
 namespace VULKAN_HPP_NAMESPACE
@@ -3432,6 +3445,8 @@
       result += "DescriptorBufferEXT | ";
     if ( value & PipelineCreateFlagBits2KHR::eCaptureData )
       result += "CaptureData | ";
+    if ( value & PipelineCreateFlagBits2KHR::eIndirectBindableEXT )
+      result += "IndirectBindableEXT | ";
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
@@ -3496,6 +3511,8 @@
       result += "MicromapBuildInputReadOnlyEXT | ";
     if ( value & BufferUsageFlagBits2KHR::eMicromapStorageEXT )
       result += "MicromapStorageEXT | ";
+    if ( value & BufferUsageFlagBits2KHR::ePreprocessBufferEXT )
+      result += "PreprocessBufferEXT | ";
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
@@ -3522,6 +3539,38 @@
       result += "FragmentShadingRateAttachment | ";
     if ( value & ShaderCreateFlagBitsEXT::eFragmentDensityMapAttachment )
       result += "FragmentDensityMapAttachment | ";
+    if ( value & ShaderCreateFlagBitsEXT::eIndirectBindable )
+      result += "IndirectBindable | ";
+
+    return "{ " + result.substr( 0, result.size() - 3 ) + " }";
+  }
+
+  //=== VK_EXT_device_generated_commands ===
+
+  VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagsEXT value )
+  {
+    if ( !value )
+      return "{}";
+
+    std::string result;
+    if ( value & IndirectCommandsLayoutUsageFlagBitsEXT::eExplicitPreprocess )
+      result += "ExplicitPreprocess | ";
+    if ( value & IndirectCommandsLayoutUsageFlagBitsEXT::eUnorderedSequences )
+      result += "UnorderedSequences | ";
+
+    return "{ " + result.substr( 0, result.size() - 3 ) + " }";
+  }
+
+  VULKAN_HPP_INLINE std::string to_string( IndirectCommandsInputModeFlagsEXT value )
+  {
+    if ( !value )
+      return "{}";
+
+    std::string result;
+    if ( value & IndirectCommandsInputModeFlagBitsEXT::eVulkanIndexBuffer )
+      result += "VulkanIndexBuffer | ";
+    if ( value & IndirectCommandsInputModeFlagBitsEXT::eDxgiIndexBuffer )
+      result += "DxgiIndexBuffer | ";
 
     return "{ " + result.substr( 0, result.size() - 3 ) + " }";
   }
@@ -4580,9 +4629,25 @@
       case StructureType::ePhysicalDeviceShaderAtomicFloat16VectorFeaturesNV: return "PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV";
       case StructureType::ePhysicalDeviceShaderReplicatedCompositesFeaturesEXT: return "PhysicalDeviceShaderReplicatedCompositesFeaturesEXT";
       case StructureType::ePhysicalDeviceRayTracingValidationFeaturesNV: return "PhysicalDeviceRayTracingValidationFeaturesNV";
+      case StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesEXT: return "PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT";
+      case StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesEXT: return "PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT";
+      case StructureType::eGeneratedCommandsMemoryRequirementsInfoEXT: return "GeneratedCommandsMemoryRequirementsInfoEXT";
+      case StructureType::eIndirectExecutionSetCreateInfoEXT: return "IndirectExecutionSetCreateInfoEXT";
+      case StructureType::eGeneratedCommandsInfoEXT: return "GeneratedCommandsInfoEXT";
+      case StructureType::eIndirectCommandsLayoutCreateInfoEXT: return "IndirectCommandsLayoutCreateInfoEXT";
+      case StructureType::eIndirectCommandsLayoutTokenEXT: return "IndirectCommandsLayoutTokenEXT";
+      case StructureType::eWriteIndirectExecutionSetPipelineEXT: return "WriteIndirectExecutionSetPipelineEXT";
+      case StructureType::eWriteIndirectExecutionSetShaderEXT: return "WriteIndirectExecutionSetShaderEXT";
+      case StructureType::eIndirectExecutionSetPipelineInfoEXT: return "IndirectExecutionSetPipelineInfoEXT";
+      case StructureType::eIndirectExecutionSetShaderInfoEXT: return "IndirectExecutionSetShaderInfoEXT";
+      case StructureType::eIndirectExecutionSetShaderLayoutInfoEXT: return "IndirectExecutionSetShaderLayoutInfoEXT";
+      case StructureType::eGeneratedCommandsPipelineInfoEXT: return "GeneratedCommandsPipelineInfoEXT";
+      case StructureType::eGeneratedCommandsShaderInfoEXT: return "GeneratedCommandsShaderInfoEXT";
       case StructureType::ePhysicalDeviceImageAlignmentControlFeaturesMESA: return "PhysicalDeviceImageAlignmentControlFeaturesMESA";
       case StructureType::ePhysicalDeviceImageAlignmentControlPropertiesMESA: return "PhysicalDeviceImageAlignmentControlPropertiesMESA";
       case StructureType::eImageAlignmentControlCreateInfoMESA: return "ImageAlignmentControlCreateInfoMESA";
+      case StructureType::ePhysicalDeviceDepthClampControlFeaturesEXT: return "PhysicalDeviceDepthClampControlFeaturesEXT";
+      case StructureType::ePipelineViewportDepthClampControlCreateInfoEXT: return "PipelineViewportDepthClampControlCreateInfoEXT";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -4656,6 +4721,8 @@
       case ObjectType::eOpticalFlowSessionNV: return "OpticalFlowSessionNV";
       case ObjectType::eShaderEXT: return "ShaderEXT";
       case ObjectType::ePipelineBinaryKHR: return "PipelineBinaryKHR";
+      case ObjectType::eIndirectCommandsLayoutEXT: return "IndirectCommandsLayoutEXT";
+      case ObjectType::eIndirectExecutionSetEXT: return "IndirectExecutionSetEXT";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -5701,6 +5768,7 @@
       case DynamicState::eCoverageReductionModeNV: return "CoverageReductionModeNV";
       case DynamicState::eAttachmentFeedbackLoopEnableEXT: return "AttachmentFeedbackLoopEnableEXT";
       case DynamicState::eLineStippleKHR: return "LineStippleKHR";
+      case DynamicState::eDepthClampRangeEXT: return "DepthClampRangeEXT";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -8879,6 +8947,7 @@
       case PipelineCreateFlagBits2KHR::eRayTracingDisplacementMicromapNV: return "RayTracingDisplacementMicromapNV";
       case PipelineCreateFlagBits2KHR::eDescriptorBufferEXT: return "DescriptorBufferEXT";
       case PipelineCreateFlagBits2KHR::eCaptureData: return "CaptureData";
+      case PipelineCreateFlagBits2KHR::eIndirectBindableEXT: return "IndirectBindableEXT";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -8915,6 +8984,7 @@
       case BufferUsageFlagBits2KHR::ePushDescriptorsDescriptorBufferEXT: return "PushDescriptorsDescriptorBufferEXT";
       case BufferUsageFlagBits2KHR::eMicromapBuildInputReadOnlyEXT: return "MicromapBuildInputReadOnlyEXT";
       case BufferUsageFlagBits2KHR::eMicromapStorageEXT: return "MicromapStorageEXT";
+      case BufferUsageFlagBits2KHR::ePreprocessBufferEXT: return "PreprocessBufferEXT";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -8955,6 +9025,7 @@
       case ShaderCreateFlagBitsEXT::eDispatchBase: return "DispatchBase";
       case ShaderCreateFlagBitsEXT::eFragmentShadingRateAttachment: return "FragmentShadingRateAttachment";
       case ShaderCreateFlagBitsEXT::eFragmentDensityMapAttachment: return "FragmentDensityMapAttachment";
+      case ShaderCreateFlagBitsEXT::eIndirectBindable: return "IndirectBindable";
       default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
     }
   }
@@ -9145,5 +9216,79 @@
     }
   }
 
+  //=== VK_EXT_device_generated_commands ===
+
+  VULKAN_HPP_INLINE std::string to_string( IndirectCommandsTokenTypeEXT value )
+  {
+    switch ( value )
+    {
+      case IndirectCommandsTokenTypeEXT::eExecutionSet: return "ExecutionSet";
+      case IndirectCommandsTokenTypeEXT::ePushConstant: return "PushConstant";
+      case IndirectCommandsTokenTypeEXT::eSequenceIndex: return "SequenceIndex";
+      case IndirectCommandsTokenTypeEXT::eIndexBuffer: return "IndexBuffer";
+      case IndirectCommandsTokenTypeEXT::eVertexBuffer: return "VertexBuffer";
+      case IndirectCommandsTokenTypeEXT::eDrawIndexed: return "DrawIndexed";
+      case IndirectCommandsTokenTypeEXT::eDraw: return "Draw";
+      case IndirectCommandsTokenTypeEXT::eDrawIndexedCount: return "DrawIndexedCount";
+      case IndirectCommandsTokenTypeEXT::eDrawCount: return "DrawCount";
+      case IndirectCommandsTokenTypeEXT::eDispatch: return "Dispatch";
+      case IndirectCommandsTokenTypeEXT::eDrawMeshTasksNV: return "DrawMeshTasksNV";
+      case IndirectCommandsTokenTypeEXT::eDrawMeshTasksCountNV: return "DrawMeshTasksCountNV";
+      case IndirectCommandsTokenTypeEXT::eDrawMeshTasks: return "DrawMeshTasks";
+      case IndirectCommandsTokenTypeEXT::eDrawMeshTasksCount: return "DrawMeshTasksCount";
+      case IndirectCommandsTokenTypeEXT::eTraceRays2: return "TraceRays2";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
+  VULKAN_HPP_INLINE std::string to_string( IndirectExecutionSetInfoTypeEXT value )
+  {
+    switch ( value )
+    {
+      case IndirectExecutionSetInfoTypeEXT::ePipelines: return "Pipelines";
+      case IndirectExecutionSetInfoTypeEXT::eShaderObjects: return "ShaderObjects";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
+  VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagBitsEXT value )
+  {
+    switch ( value )
+    {
+      case IndirectCommandsLayoutUsageFlagBitsEXT::eExplicitPreprocess: return "ExplicitPreprocess";
+      case IndirectCommandsLayoutUsageFlagBitsEXT::eUnorderedSequences: return "UnorderedSequences";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
+  VULKAN_HPP_INLINE std::string to_string( IndirectCommandsInputModeFlagBitsEXT value )
+  {
+    switch ( value )
+    {
+      case IndirectCommandsInputModeFlagBitsEXT::eVulkanIndexBuffer: return "VulkanIndexBuffer";
+      case IndirectCommandsInputModeFlagBitsEXT::eDxgiIndexBuffer: return "DxgiIndexBuffer";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
+  //=== VK_EXT_depth_clamp_control ===
+
+  VULKAN_HPP_INLINE std::string to_string( DepthClampModeEXT value )
+  {
+    switch ( value )
+    {
+      case DepthClampModeEXT::eViewportRange: return "ViewportRange";
+      case DepthClampModeEXT::eUserDefinedRange: return "UserDefinedRange";
+      default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast<uint32_t>( value ) ) + " )";
+    }
+  }
+
 }  // namespace VULKAN_HPP_NAMESPACE
+
+#if defined( __clang__ ) || defined( __GNUC__ )
+#  pragma GCC diagnostic pop
+#elif defined( _MSC_VER )
+#  pragma warning( pop )
+#endif
+
 #endif
diff --git a/registry/validusage.json b/registry/validusage.json
index d4148c3..73f7277 100644
--- a/registry/validusage.json
+++ b/registry/validusage.json
@@ -1,9 +1,9 @@
 {
   "version info": {
     "schema version": 2,
-    "api version": "1.3.295",
-    "comment": "from git branch: github-main commit: 8e435deb15124bbf9a7e3340e6cc7975999ed5c5",
-    "date": "2024-08-30 09:13:37Z"
+    "api version": "1.3.296",
+    "comment": "from git branch: github-main commit: 486e4b289053a7d64784e7ce791711843c60c235",
+    "date": "2024-09-26 07:23:50Z"
   },
   "validation": {
     "vkGetInstanceProcAddr": {
@@ -369,7 +369,7 @@
         },
         {
           "vuid": "VUID-VkPhysicalDeviceProperties2-pNext-pNext",
-          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI\">VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI</a>, <a href=\"#VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR\">VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceConservativeRasterizationPropertiesEXT\">VkPhysicalDeviceConservativeRasterizationPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesKHR\">VkPhysicalDeviceCooperativeMatrixPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesNV\">VkPhysicalDeviceCooperativeMatrixPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCopyMemoryIndirectPropertiesNV\">VkPhysicalDeviceCopyMemoryIndirectPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCudaKernelLaunchPropertiesNV\">VkPhysicalDeviceCudaKernelLaunchPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorPropertiesEXT\">VkPhysicalDeviceCustomBorderColorPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT\">VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingProperties\">VkPhysicalDeviceDescriptorIndexingProperties</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceDiscardRectanglePropertiesEXT\">VkPhysicalDeviceDiscardRectanglePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDisplacementMicromapPropertiesNV\">VkPhysicalDeviceDisplacementMicromapPropertiesNV</a>, <a href=\"#VkPhysicalDeviceDriverProperties\">VkPhysicalDeviceDriverProperties</a>, <a href=\"#VkPhysicalDeviceDrmPropertiesEXT\">VkPhysicalDeviceDrmPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState3PropertiesEXT\">VkPhysicalDeviceExtendedDynamicState3PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV\">VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV</a>, <a href=\"#VkPhysicalDeviceExternalFormatResolvePropertiesANDROID\">VkPhysicalDeviceExternalFormatResolvePropertiesANDROID</a>, <a href=\"#VkPhysicalDeviceExternalMemoryHostPropertiesEXT\">VkPhysicalDeviceExternalMemoryHostPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFloatControlsProperties\">VkPhysicalDeviceFloatControlsProperties</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2PropertiesEXT\">VkPhysicalDeviceFragmentDensityMap2PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM\">VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapPropertiesEXT\">VkPhysicalDeviceFragmentDensityMapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR\">VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV\">VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRatePropertiesKHR\">VkPhysicalDeviceFragmentShadingRatePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT\">VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceHostImageCopyPropertiesEXT\">VkPhysicalDeviceHostImageCopyPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceIDProperties\">VkPhysicalDeviceIDProperties</a>, <a href=\"#VkPhysicalDeviceImageAlignmentControlPropertiesMESA\">VkPhysicalDeviceImageAlignmentControlPropertiesMESA</a>, <a href=\"#VkPhysicalDeviceImageProcessing2PropertiesQCOM\">VkPhysicalDeviceImageProcessing2PropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceImageProcessingPropertiesQCOM\">VkPhysicalDeviceImageProcessingPropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockProperties\">VkPhysicalDeviceInlineUniformBlockProperties</a>, <a href=\"#VkPhysicalDeviceLayeredApiPropertiesListKHR\">VkPhysicalDeviceLayeredApiPropertiesListKHR</a>, <a href=\"#VkPhysicalDeviceLayeredDriverPropertiesMSFT\">VkPhysicalDeviceLayeredDriverPropertiesMSFT</a>, <a href=\"#VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT\">VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceLineRasterizationPropertiesKHR\">VkPhysicalDeviceLineRasterizationPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance3Properties\">VkPhysicalDeviceMaintenance3Properties</a>, <a href=\"#VkPhysicalDeviceMaintenance4Properties\">VkPhysicalDeviceMaintenance4Properties</a>, <a href=\"#VkPhysicalDeviceMaintenance5PropertiesKHR\">VkPhysicalDeviceMaintenance5PropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance6PropertiesKHR\">VkPhysicalDeviceMaintenance6PropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance7PropertiesKHR\">VkPhysicalDeviceMaintenance7PropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMapMemoryPlacedPropertiesEXT\">VkPhysicalDeviceMapMemoryPlacedPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMemoryDecompressionPropertiesNV\">VkPhysicalDeviceMemoryDecompressionPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesNV\">VkPhysicalDeviceMeshShaderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawPropertiesEXT\">VkPhysicalDeviceMultiDrawPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX\">VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX</a>, <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>, <a href=\"#VkPhysicalDeviceNestedCommandBufferPropertiesEXT\">VkPhysicalDeviceNestedCommandBufferPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceOpacityMicromapPropertiesEXT\">VkPhysicalDeviceOpacityMicromapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceOpticalFlowPropertiesNV\">VkPhysicalDeviceOpticalFlowPropertiesNV</a>, <a href=\"#VkPhysicalDevicePCIBusInfoPropertiesEXT\">VkPhysicalDevicePCIBusInfoPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePerformanceQueryPropertiesKHR\">VkPhysicalDevicePerformanceQueryPropertiesKHR</a>, <a href=\"#VkPhysicalDevicePipelineBinaryPropertiesKHR\">VkPhysicalDevicePipelineBinaryPropertiesKHR</a>, <a href=\"#VkPhysicalDevicePipelineRobustnessPropertiesEXT\">VkPhysicalDevicePipelineRobustnessPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePointClippingProperties\">VkPhysicalDevicePointClippingProperties</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetPropertiesKHR\">VkPhysicalDevicePortabilitySubsetPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryProperties\">VkPhysicalDeviceProtectedMemoryProperties</a>, <a href=\"#VkPhysicalDeviceProvokingVertexPropertiesEXT\">VkPhysicalDeviceProvokingVertexPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePushDescriptorPropertiesKHR\">VkPhysicalDevicePushDescriptorPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV\">VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelinePropertiesKHR\">VkPhysicalDeviceRayTracingPipelinePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>, <a href=\"#VkPhysicalDeviceRenderPassStripedPropertiesARM\">VkPhysicalDeviceRenderPassStripedPropertiesARM</a>, <a href=\"#VkPhysicalDeviceRobustness2PropertiesEXT\">VkPhysicalDeviceRobustness2PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerFilterMinmaxProperties\">VkPhysicalDeviceSamplerFilterMinmaxProperties</a>, <a href=\"#VkPhysicalDeviceSchedulingControlsPropertiesARM\">VkPhysicalDeviceSchedulingControlsPropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM\">VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderCoreProperties2AMD\">VkPhysicalDeviceShaderCoreProperties2AMD</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesAMD\">VkPhysicalDeviceShaderCorePropertiesAMD</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesARM\">VkPhysicalDeviceShaderCorePropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderEnqueuePropertiesAMDX\">VkPhysicalDeviceShaderEnqueuePropertiesAMDX</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductProperties\">VkPhysicalDeviceShaderIntegerDotProductProperties</a>, <a href=\"#VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT\">VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShaderObjectPropertiesEXT\">VkPhysicalDeviceShaderObjectPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsPropertiesNV\">VkPhysicalDeviceShaderSMBuiltinsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceShaderTileImagePropertiesEXT\">VkPhysicalDeviceShaderTileImagePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShadingRateImagePropertiesNV\">VkPhysicalDeviceShadingRateImagePropertiesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupProperties\">VkPhysicalDeviceSubgroupProperties</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlProperties\">VkPhysicalDeviceSubgroupSizeControlProperties</a>, <a href=\"#VkPhysicalDeviceSubpassShadingPropertiesHUAWEI\">VkPhysicalDeviceSubpassShadingPropertiesHUAWEI</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentProperties\">VkPhysicalDeviceTexelBufferAlignmentProperties</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreProperties\">VkPhysicalDeviceTimelineSemaphoreProperties</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT\">VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR\">VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceVulkan11Properties\">VkPhysicalDeviceVulkan11Properties</a>, <a href=\"#VkPhysicalDeviceVulkan12Properties\">VkPhysicalDeviceVulkan12Properties</a>, or <a href=\"#VkPhysicalDeviceVulkan13Properties\">VkPhysicalDeviceVulkan13Properties</a>",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkPhysicalDeviceAccelerationStructurePropertiesKHR\">VkPhysicalDeviceAccelerationStructurePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT\">VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI\">VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI</a>, <a href=\"#VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR\">VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceConservativeRasterizationPropertiesEXT\">VkPhysicalDeviceConservativeRasterizationPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesKHR\">VkPhysicalDeviceCooperativeMatrixPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixPropertiesNV\">VkPhysicalDeviceCooperativeMatrixPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCopyMemoryIndirectPropertiesNV\">VkPhysicalDeviceCopyMemoryIndirectPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCudaKernelLaunchPropertiesNV\">VkPhysicalDeviceCudaKernelLaunchPropertiesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorPropertiesEXT\">VkPhysicalDeviceCustomBorderColorPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDepthStencilResolveProperties\">VkPhysicalDeviceDepthStencilResolveProperties</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT\">VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferPropertiesEXT\">VkPhysicalDeviceDescriptorBufferPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingProperties\">VkPhysicalDeviceDescriptorIndexingProperties</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV\">VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceDiscardRectanglePropertiesEXT\">VkPhysicalDeviceDiscardRectanglePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceDisplacementMicromapPropertiesNV\">VkPhysicalDeviceDisplacementMicromapPropertiesNV</a>, <a href=\"#VkPhysicalDeviceDriverProperties\">VkPhysicalDeviceDriverProperties</a>, <a href=\"#VkPhysicalDeviceDrmPropertiesEXT\">VkPhysicalDeviceDrmPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState3PropertiesEXT\">VkPhysicalDeviceExtendedDynamicState3PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV\">VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV</a>, <a href=\"#VkPhysicalDeviceExternalFormatResolvePropertiesANDROID\">VkPhysicalDeviceExternalFormatResolvePropertiesANDROID</a>, <a href=\"#VkPhysicalDeviceExternalMemoryHostPropertiesEXT\">VkPhysicalDeviceExternalMemoryHostPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFloatControlsProperties\">VkPhysicalDeviceFloatControlsProperties</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2PropertiesEXT\">VkPhysicalDeviceFragmentDensityMap2PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM\">VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapPropertiesEXT\">VkPhysicalDeviceFragmentDensityMapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR\">VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV\">VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRatePropertiesKHR\">VkPhysicalDeviceFragmentShadingRatePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT\">VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceHostImageCopyPropertiesEXT\">VkPhysicalDeviceHostImageCopyPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceIDProperties\">VkPhysicalDeviceIDProperties</a>, <a href=\"#VkPhysicalDeviceImageAlignmentControlPropertiesMESA\">VkPhysicalDeviceImageAlignmentControlPropertiesMESA</a>, <a href=\"#VkPhysicalDeviceImageProcessing2PropertiesQCOM\">VkPhysicalDeviceImageProcessing2PropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceImageProcessingPropertiesQCOM\">VkPhysicalDeviceImageProcessingPropertiesQCOM</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockProperties\">VkPhysicalDeviceInlineUniformBlockProperties</a>, <a href=\"#VkPhysicalDeviceLayeredApiPropertiesListKHR\">VkPhysicalDeviceLayeredApiPropertiesListKHR</a>, <a href=\"#VkPhysicalDeviceLayeredDriverPropertiesMSFT\">VkPhysicalDeviceLayeredDriverPropertiesMSFT</a>, <a href=\"#VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT\">VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceLineRasterizationPropertiesKHR\">VkPhysicalDeviceLineRasterizationPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance3Properties\">VkPhysicalDeviceMaintenance3Properties</a>, <a href=\"#VkPhysicalDeviceMaintenance4Properties\">VkPhysicalDeviceMaintenance4Properties</a>, <a href=\"#VkPhysicalDeviceMaintenance5PropertiesKHR\">VkPhysicalDeviceMaintenance5PropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance6PropertiesKHR\">VkPhysicalDeviceMaintenance6PropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance7PropertiesKHR\">VkPhysicalDeviceMaintenance7PropertiesKHR</a>, <a href=\"#VkPhysicalDeviceMapMemoryPlacedPropertiesEXT\">VkPhysicalDeviceMapMemoryPlacedPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMemoryDecompressionPropertiesNV\">VkPhysicalDeviceMemoryDecompressionPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesEXT\">VkPhysicalDeviceMeshShaderPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderPropertiesNV\">VkPhysicalDeviceMeshShaderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawPropertiesEXT\">VkPhysicalDeviceMultiDrawPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX\">VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX</a>, <a href=\"#VkPhysicalDeviceMultiviewProperties\">VkPhysicalDeviceMultiviewProperties</a>, <a href=\"#VkPhysicalDeviceNestedCommandBufferPropertiesEXT\">VkPhysicalDeviceNestedCommandBufferPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceOpacityMicromapPropertiesEXT\">VkPhysicalDeviceOpacityMicromapPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceOpticalFlowPropertiesNV\">VkPhysicalDeviceOpticalFlowPropertiesNV</a>, <a href=\"#VkPhysicalDevicePCIBusInfoPropertiesEXT\">VkPhysicalDevicePCIBusInfoPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePerformanceQueryPropertiesKHR\">VkPhysicalDevicePerformanceQueryPropertiesKHR</a>, <a href=\"#VkPhysicalDevicePipelineBinaryPropertiesKHR\">VkPhysicalDevicePipelineBinaryPropertiesKHR</a>, <a href=\"#VkPhysicalDevicePipelineRobustnessPropertiesEXT\">VkPhysicalDevicePipelineRobustnessPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePointClippingProperties\">VkPhysicalDevicePointClippingProperties</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetPropertiesKHR\">VkPhysicalDevicePortabilitySubsetPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryProperties\">VkPhysicalDeviceProtectedMemoryProperties</a>, <a href=\"#VkPhysicalDeviceProvokingVertexPropertiesEXT\">VkPhysicalDeviceProvokingVertexPropertiesEXT</a>, <a href=\"#VkPhysicalDevicePushDescriptorPropertiesKHR\">VkPhysicalDevicePushDescriptorPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV\">VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelinePropertiesKHR\">VkPhysicalDeviceRayTracingPipelinePropertiesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingPropertiesNV\">VkPhysicalDeviceRayTracingPropertiesNV</a>, <a href=\"#VkPhysicalDeviceRenderPassStripedPropertiesARM\">VkPhysicalDeviceRenderPassStripedPropertiesARM</a>, <a href=\"#VkPhysicalDeviceRobustness2PropertiesEXT\">VkPhysicalDeviceRobustness2PropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSampleLocationsPropertiesEXT\">VkPhysicalDeviceSampleLocationsPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerFilterMinmaxProperties\">VkPhysicalDeviceSamplerFilterMinmaxProperties</a>, <a href=\"#VkPhysicalDeviceSchedulingControlsPropertiesARM\">VkPhysicalDeviceSchedulingControlsPropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM\">VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderCoreProperties2AMD\">VkPhysicalDeviceShaderCoreProperties2AMD</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesAMD\">VkPhysicalDeviceShaderCorePropertiesAMD</a>, <a href=\"#VkPhysicalDeviceShaderCorePropertiesARM\">VkPhysicalDeviceShaderCorePropertiesARM</a>, <a href=\"#VkPhysicalDeviceShaderEnqueuePropertiesAMDX\">VkPhysicalDeviceShaderEnqueuePropertiesAMDX</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductProperties\">VkPhysicalDeviceShaderIntegerDotProductProperties</a>, <a href=\"#VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT\">VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShaderObjectPropertiesEXT\">VkPhysicalDeviceShaderObjectPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsPropertiesNV\">VkPhysicalDeviceShaderSMBuiltinsPropertiesNV</a>, <a href=\"#VkPhysicalDeviceShaderTileImagePropertiesEXT\">VkPhysicalDeviceShaderTileImagePropertiesEXT</a>, <a href=\"#VkPhysicalDeviceShadingRateImagePropertiesNV\">VkPhysicalDeviceShadingRateImagePropertiesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupProperties\">VkPhysicalDeviceSubgroupProperties</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlProperties\">VkPhysicalDeviceSubgroupSizeControlProperties</a>, <a href=\"#VkPhysicalDeviceSubpassShadingPropertiesHUAWEI\">VkPhysicalDeviceSubpassShadingPropertiesHUAWEI</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentProperties\">VkPhysicalDeviceTexelBufferAlignmentProperties</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreProperties\">VkPhysicalDeviceTimelineSemaphoreProperties</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackPropertiesEXT\">VkPhysicalDeviceTransformFeedbackPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT\">VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR\">VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR</a>, <a href=\"#VkPhysicalDeviceVulkan11Properties\">VkPhysicalDeviceVulkan11Properties</a>, <a href=\"#VkPhysicalDeviceVulkan12Properties\">VkPhysicalDeviceVulkan12Properties</a>, or <a href=\"#VkPhysicalDeviceVulkan13Properties\">VkPhysicalDeviceVulkan13Properties</a>",
           "page": "vkspec"
         },
         {
@@ -886,7 +886,7 @@
         },
         {
           "vuid": "VUID-VkDeviceCreateInfo-pNext-pNext",
-          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceDeviceMemoryReportCreateInfoEXT\">VkDeviceDeviceMemoryReportCreateInfoEXT</a>, <a href=\"#VkDeviceDiagnosticsConfigCreateInfoNV\">VkDeviceDiagnosticsConfigCreateInfoNV</a>, <a href=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>, <a href=\"#VkDeviceMemoryOverallocationCreateInfoAMD\">VkDeviceMemoryOverallocationCreateInfoAMD</a>, <a href=\"#VkDevicePipelineBinaryInternalCacheControlKHR\">VkDevicePipelineBinaryInternalCacheControlKHR</a>, <a href=\"#VkDevicePrivateDataCreateInfo\">VkDevicePrivateDataCreateInfo</a>, <a href=\"#VkDeviceQueueShaderCoreControlCreateInfoARM\">VkDeviceQueueShaderCoreControlCreateInfoARM</a>, <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDevice4444FormatsFeaturesEXT\">VkPhysicalDevice4444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDevice8BitStorageFeatures\">VkPhysicalDevice8BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceASTCDecodeFeaturesEXT\">VkPhysicalDeviceASTCDecodeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAccelerationStructureFeaturesKHR\">VkPhysicalDeviceAccelerationStructureFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceAddressBindingReportFeaturesEXT\">VkPhysicalDeviceAddressBindingReportFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAmigoProfilingFeaturesSEC\">VkPhysicalDeviceAmigoProfilingFeaturesSEC</a>, <a href=\"#VkPhysicalDeviceAntiLagFeaturesAMD\">VkPhysicalDeviceAntiLagFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT\">VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT\">VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT\">VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBorderColorSwizzleFeaturesEXT\">VkPhysicalDeviceBorderColorSwizzleFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeaturesEXT\">VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI\">VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceCoherentMemoryFeaturesAMD\">VkPhysicalDeviceCoherentMemoryFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceColorWriteEnableFeaturesEXT\">VkPhysicalDeviceColorWriteEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCommandBufferInheritanceFeaturesNV\">VkPhysicalDeviceCommandBufferInheritanceFeaturesNV</a>, <a href=\"#VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR\">VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceConditionalRenderingFeaturesEXT\">VkPhysicalDeviceConditionalRenderingFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesKHR\">VkPhysicalDeviceCooperativeMatrixFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesNV\">VkPhysicalDeviceCooperativeMatrixFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCopyMemoryIndirectFeaturesNV\">VkPhysicalDeviceCopyMemoryIndirectFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCornerSampledImageFeaturesNV\">VkPhysicalDeviceCornerSampledImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCoverageReductionModeFeaturesNV\">VkPhysicalDeviceCoverageReductionModeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCubicClampFeaturesQCOM\">VkPhysicalDeviceCubicClampFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceCubicWeightsFeaturesQCOM\">VkPhysicalDeviceCubicWeightsFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceCudaKernelLaunchFeaturesNV\">VkPhysicalDeviceCudaKernelLaunchFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorFeaturesEXT\">VkPhysicalDeviceCustomBorderColorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV\">VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDepthBiasControlFeaturesEXT\">VkPhysicalDeviceDepthBiasControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClampZeroOneFeaturesEXT\">VkPhysicalDeviceDepthClampZeroOneFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipControlFeaturesEXT\">VkPhysicalDeviceDepthClipControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipEnableFeaturesEXT\">VkPhysicalDeviceDepthClipEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferFeaturesEXT\">VkPhysicalDeviceDescriptorBufferFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>, <a href=\"#VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV\">VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE\">VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDeviceMemoryReportFeaturesEXT\">VkPhysicalDeviceDeviceMemoryReportFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDiagnosticsConfigFeaturesNV\">VkPhysicalDeviceDiagnosticsConfigFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDisplacementMicromapFeaturesNV\">VkPhysicalDeviceDisplacementMicromapFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingFeatures\">VkPhysicalDeviceDynamicRenderingFeatures</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR\">VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT\">VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExclusiveScissorFeaturesNV\">VkPhysicalDeviceExclusiveScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState2FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState3FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState3FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicStateFeaturesEXT\">VkPhysicalDeviceExtendedDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV\">VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExternalFormatResolveFeaturesANDROID\">VkPhysicalDeviceExternalFormatResolveFeaturesANDROID</a>, <a href=\"#VkPhysicalDeviceExternalMemoryRDMAFeaturesNV\">VkPhysicalDeviceExternalMemoryRDMAFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX\">VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX</a>, <a href=\"#VkPhysicalDeviceFaultFeaturesEXT\">VkPhysicalDeviceFaultFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2FeaturesEXT\">VkPhysicalDeviceFragmentDensityMap2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapFeaturesEXT\">VkPhysicalDeviceFragmentDensityMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM\">VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR\">VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT\">VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV\">VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateFeaturesKHR\">VkPhysicalDeviceFragmentShadingRateFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceFrameBoundaryFeaturesEXT\">VkPhysicalDeviceFrameBoundaryFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR\">VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT\">VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostImageCopyFeaturesEXT\">VkPhysicalDeviceHostImageCopyFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostQueryResetFeatures\">VkPhysicalDeviceHostQueryResetFeatures</a>, <a href=\"#VkPhysicalDeviceImage2DViewOf3DFeaturesEXT\">VkPhysicalDeviceImage2DViewOf3DFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageAlignmentControlFeaturesMESA\">VkPhysicalDeviceImageAlignmentControlFeaturesMESA</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlFeaturesEXT\">VkPhysicalDeviceImageCompressionControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT\">VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageProcessing2FeaturesQCOM\">VkPhysicalDeviceImageProcessing2FeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceImageProcessingFeaturesQCOM\">VkPhysicalDeviceImageProcessingFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceImageRobustnessFeatures\">VkPhysicalDeviceImageRobustnessFeatures</a>, <a href=\"#VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT\">VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageViewMinLodFeaturesEXT\">VkPhysicalDeviceImageViewMinLodFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImagelessFramebufferFeatures\">VkPhysicalDeviceImagelessFramebufferFeatures</a>, <a href=\"#VkPhysicalDeviceIndexTypeUint8FeaturesKHR\">VkPhysicalDeviceIndexTypeUint8FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceInheritedViewportScissorFeaturesNV\">VkPhysicalDeviceInheritedViewportScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockFeatures\">VkPhysicalDeviceInlineUniformBlockFeatures</a>, <a href=\"#VkPhysicalDeviceInvocationMaskFeaturesHUAWEI\">VkPhysicalDeviceInvocationMaskFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceLegacyDitheringFeaturesEXT\">VkPhysicalDeviceLegacyDitheringFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT\">VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLineRasterizationFeaturesKHR\">VkPhysicalDeviceLineRasterizationFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceLinearColorAttachmentFeaturesNV\">VkPhysicalDeviceLinearColorAttachmentFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMaintenance4Features\">VkPhysicalDeviceMaintenance4Features</a>, <a href=\"#VkPhysicalDeviceMaintenance5FeaturesKHR\">VkPhysicalDeviceMaintenance5FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance6FeaturesKHR\">VkPhysicalDeviceMaintenance6FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance7FeaturesKHR\">VkPhysicalDeviceMaintenance7FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceMapMemoryPlacedFeaturesEXT\">VkPhysicalDeviceMapMemoryPlacedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMemoryDecompressionFeaturesNV\">VkPhysicalDeviceMemoryDecompressionFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMemoryPriorityFeaturesEXT\">VkPhysicalDeviceMemoryPriorityFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesEXT\">VkPhysicalDeviceMeshShaderFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesNV\">VkPhysicalDeviceMeshShaderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawFeaturesEXT\">VkPhysicalDeviceMultiDrawFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT\">VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM\">VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM\">VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT\">VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceNestedCommandBufferFeaturesEXT\">VkPhysicalDeviceNestedCommandBufferFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT\">VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceOpacityMicromapFeaturesEXT\">VkPhysicalDeviceOpacityMicromapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceOpticalFlowFeaturesNV\">VkPhysicalDeviceOpticalFlowFeaturesNV</a>, <a href=\"#VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT\">VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePerStageDescriptorSetFeaturesNV\">VkPhysicalDevicePerStageDescriptorSetFeaturesNV</a>, <a href=\"#VkPhysicalDevicePerformanceQueryFeaturesKHR\">VkPhysicalDevicePerformanceQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineBinaryFeaturesKHR\">VkPhysicalDevicePipelineBinaryFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineCreationCacheControlFeatures\">VkPhysicalDevicePipelineCreationCacheControlFeatures</a>, <a href=\"#VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR\">VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT\">VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelinePropertiesFeaturesEXT\">VkPhysicalDevicePipelinePropertiesFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineProtectedAccessFeaturesEXT\">VkPhysicalDevicePipelineProtectedAccessFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineRobustnessFeaturesEXT\">VkPhysicalDevicePipelineRobustnessFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentBarrierFeaturesNV\">VkPhysicalDevicePresentBarrierFeaturesNV</a>, <a href=\"#VkPhysicalDevicePresentIdFeaturesKHR\">VkPhysicalDevicePresentIdFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentWaitFeaturesKHR\">VkPhysicalDevicePresentWaitFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT\">VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT\">VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePrivateDataFeatures\">VkPhysicalDevicePrivateDataFeatures</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceProvokingVertexFeaturesEXT\">VkPhysicalDeviceProvokingVertexFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT\">VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT\">VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRawAccessChainsFeaturesNV\">VkPhysicalDeviceRawAccessChainsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayQueryFeaturesKHR\">VkPhysicalDeviceRayQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV\">VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR\">VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingMotionBlurFeaturesNV\">VkPhysicalDeviceRayTracingMotionBlurFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelineFeaturesKHR\">VkPhysicalDeviceRayTracingPipelineFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR\">VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingValidationFeaturesNV\">VkPhysicalDeviceRayTracingValidationFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG\">VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG</a>, <a href=\"#VkPhysicalDeviceRenderPassStripedFeaturesARM\">VkPhysicalDeviceRenderPassStripedFeaturesARM</a>, <a href=\"#VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV\">VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRobustness2FeaturesEXT\">VkPhysicalDeviceRobustness2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, <a href=\"#VkPhysicalDeviceScalarBlockLayoutFeatures\">VkPhysicalDeviceScalarBlockLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceSchedulingControlsFeaturesARM\">VkPhysicalDeviceSchedulingControlsFeaturesARM</a>, <a href=\"#VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures\">VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV\">VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT\">VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloatFeaturesEXT\">VkPhysicalDeviceShaderAtomicFloatFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicInt64Features\">VkPhysicalDeviceShaderAtomicInt64Features</a>, <a href=\"#VkPhysicalDeviceShaderClockFeaturesKHR\">VkPhysicalDeviceShaderClockFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM\">VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM</a>, <a href=\"#VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures\">VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShaderDrawParametersFeatures\">VkPhysicalDeviceShaderDrawParametersFeatures</a>, <a href=\"#VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD\">VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceShaderEnqueueFeaturesAMDX\">VkPhysicalDeviceShaderEnqueueFeaturesAMDX</a>, <a href=\"#VkPhysicalDeviceShaderExpectAssumeFeaturesKHR\">VkPhysicalDeviceShaderExpectAssumeFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderFloat16Int8Features\">VkPhysicalDeviceShaderFloat16Int8Features</a>, <a href=\"#VkPhysicalDeviceShaderFloatControls2FeaturesKHR\">VkPhysicalDeviceShaderFloatControls2FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT\">VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderImageFootprintFeaturesNV\">VkPhysicalDeviceShaderImageFootprintFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductFeatures\">VkPhysicalDeviceShaderIntegerDotProductFeatures</a>, <a href=\"#VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL\">VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL</a>, <a href=\"#VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR\">VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT\">VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderObjectFeaturesEXT\">VkPhysicalDeviceShaderObjectFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderQuadControlFeaturesKHR\">VkPhysicalDeviceShaderQuadControlFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR\">VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT\">VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsFeaturesNV\">VkPhysicalDeviceShaderSMBuiltinsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures\">VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR\">VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR\">VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderTerminateInvocationFeatures\">VkPhysicalDeviceShaderTerminateInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShaderTileImageFeaturesEXT\">VkPhysicalDeviceShaderTileImageFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShadingRateImageFeaturesNV\">VkPhysicalDeviceShadingRateImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlFeatures\">VkPhysicalDeviceSubgroupSizeControlFeatures</a>, <a href=\"#VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT\">VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSubpassShadingFeaturesHUAWEI\">VkPhysicalDeviceSubpassShadingFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT\">VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSynchronization2Features\">VkPhysicalDeviceSynchronization2Features</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT\">VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTextureCompressionASTCHDRFeatures\">VkPhysicalDeviceTextureCompressionASTCHDRFeatures</a>, <a href=\"#VkPhysicalDeviceTilePropertiesFeaturesQCOM\">VkPhysicalDeviceTilePropertiesFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreFeatures\">VkPhysicalDeviceTimelineSemaphoreFeatures</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackFeaturesEXT\">VkPhysicalDeviceTransformFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceUniformBufferStandardLayoutFeatures\">VkPhysicalDeviceUniformBufferStandardLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceVariablePointersFeatures\">VkPhysicalDeviceVariablePointersFeatures</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR\">VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT\">VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVideoMaintenance1FeaturesKHR\">VkPhysicalDeviceVideoMaintenance1FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceVulkan11Features\">VkPhysicalDeviceVulkan11Features</a>, <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a>, <a href=\"#VkPhysicalDeviceVulkan13Features\">VkPhysicalDeviceVulkan13Features</a>, <a href=\"#VkPhysicalDeviceVulkanMemoryModelFeatures\">VkPhysicalDeviceVulkanMemoryModelFeatures</a>, <a href=\"#VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR\">VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT\">VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceYcbcrDegammaFeaturesQCOM\">VkPhysicalDeviceYcbcrDegammaFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceYcbcrImageArraysFeaturesEXT\">VkPhysicalDeviceYcbcrImageArraysFeaturesEXT</a>, or <a href=\"#VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures\">VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures</a>",
+          "text": "Each <code>pNext</code> member of any structure (including this one) in the <code>pNext</code> chain <strong class=\"purple\">must</strong> be either <code>NULL</code> or a pointer to a valid instance of <a href=\"#VkDeviceDeviceMemoryReportCreateInfoEXT\">VkDeviceDeviceMemoryReportCreateInfoEXT</a>, <a href=\"#VkDeviceDiagnosticsConfigCreateInfoNV\">VkDeviceDiagnosticsConfigCreateInfoNV</a>, <a href=\"#VkDeviceGroupDeviceCreateInfo\">VkDeviceGroupDeviceCreateInfo</a>, <a href=\"#VkDeviceMemoryOverallocationCreateInfoAMD\">VkDeviceMemoryOverallocationCreateInfoAMD</a>, <a href=\"#VkDevicePipelineBinaryInternalCacheControlKHR\">VkDevicePipelineBinaryInternalCacheControlKHR</a>, <a href=\"#VkDevicePrivateDataCreateInfo\">VkDevicePrivateDataCreateInfo</a>, <a href=\"#VkDeviceQueueShaderCoreControlCreateInfoARM\">VkDeviceQueueShaderCoreControlCreateInfoARM</a>, <a href=\"#VkPhysicalDevice16BitStorageFeatures\">VkPhysicalDevice16BitStorageFeatures</a>, <a href=\"#VkPhysicalDevice4444FormatsFeaturesEXT\">VkPhysicalDevice4444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDevice8BitStorageFeatures\">VkPhysicalDevice8BitStorageFeatures</a>, <a href=\"#VkPhysicalDeviceASTCDecodeFeaturesEXT\">VkPhysicalDeviceASTCDecodeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAccelerationStructureFeaturesKHR\">VkPhysicalDeviceAccelerationStructureFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceAddressBindingReportFeaturesEXT\">VkPhysicalDeviceAddressBindingReportFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAmigoProfilingFeaturesSEC\">VkPhysicalDeviceAmigoProfilingFeaturesSEC</a>, <a href=\"#VkPhysicalDeviceAntiLagFeaturesAMD\">VkPhysicalDeviceAntiLagFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT\">VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT\">VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT\">VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBorderColorSwizzleFeaturesEXT\">VkPhysicalDeviceBorderColorSwizzleFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeatures\">VkPhysicalDeviceBufferDeviceAddressFeatures</a>, <a href=\"#VkPhysicalDeviceBufferDeviceAddressFeaturesEXT\">VkPhysicalDeviceBufferDeviceAddressFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI\">VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceCoherentMemoryFeaturesAMD\">VkPhysicalDeviceCoherentMemoryFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceColorWriteEnableFeaturesEXT\">VkPhysicalDeviceColorWriteEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCommandBufferInheritanceFeaturesNV\">VkPhysicalDeviceCommandBufferInheritanceFeaturesNV</a>, <a href=\"#VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR\">VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceConditionalRenderingFeaturesEXT\">VkPhysicalDeviceConditionalRenderingFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesKHR\">VkPhysicalDeviceCooperativeMatrixFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceCooperativeMatrixFeaturesNV\">VkPhysicalDeviceCooperativeMatrixFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCopyMemoryIndirectFeaturesNV\">VkPhysicalDeviceCopyMemoryIndirectFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCornerSampledImageFeaturesNV\">VkPhysicalDeviceCornerSampledImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCoverageReductionModeFeaturesNV\">VkPhysicalDeviceCoverageReductionModeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCubicClampFeaturesQCOM\">VkPhysicalDeviceCubicClampFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceCubicWeightsFeaturesQCOM\">VkPhysicalDeviceCubicWeightsFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceCudaKernelLaunchFeaturesNV\">VkPhysicalDeviceCudaKernelLaunchFeaturesNV</a>, <a href=\"#VkPhysicalDeviceCustomBorderColorFeaturesEXT\">VkPhysicalDeviceCustomBorderColorFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV\">VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDepthBiasControlFeaturesEXT\">VkPhysicalDeviceDepthBiasControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClampControlFeaturesEXT\">VkPhysicalDeviceDepthClampControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClampZeroOneFeaturesEXT\">VkPhysicalDeviceDepthClampZeroOneFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipControlFeaturesEXT\">VkPhysicalDeviceDepthClipControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDepthClipEnableFeaturesEXT\">VkPhysicalDeviceDepthClipEnableFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorBufferFeaturesEXT\">VkPhysicalDeviceDescriptorBufferFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDescriptorIndexingFeatures\">VkPhysicalDeviceDescriptorIndexingFeatures</a>, <a href=\"#VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV\">VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE\">VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT\">VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV\">VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDeviceMemoryReportFeaturesEXT\">VkPhysicalDeviceDeviceMemoryReportFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceDiagnosticsConfigFeaturesNV\">VkPhysicalDeviceDiagnosticsConfigFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDisplacementMicromapFeaturesNV\">VkPhysicalDeviceDisplacementMicromapFeaturesNV</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingFeatures\">VkPhysicalDeviceDynamicRenderingFeatures</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR\">VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT\">VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExclusiveScissorFeaturesNV\">VkPhysicalDeviceExclusiveScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState2FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicState3FeaturesEXT\">VkPhysicalDeviceExtendedDynamicState3FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedDynamicStateFeaturesEXT\">VkPhysicalDeviceExtendedDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV\">VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExternalFormatResolveFeaturesANDROID\">VkPhysicalDeviceExternalFormatResolveFeaturesANDROID</a>, <a href=\"#VkPhysicalDeviceExternalMemoryRDMAFeaturesNV\">VkPhysicalDeviceExternalMemoryRDMAFeaturesNV</a>, <a href=\"#VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX\">VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX</a>, <a href=\"#VkPhysicalDeviceFaultFeaturesEXT\">VkPhysicalDeviceFaultFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFeatures2\">VkPhysicalDeviceFeatures2</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMap2FeaturesEXT\">VkPhysicalDeviceFragmentDensityMap2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapFeaturesEXT\">VkPhysicalDeviceFragmentDensityMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM\">VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR\">VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT\">VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV\">VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceFragmentShadingRateFeaturesKHR\">VkPhysicalDeviceFragmentShadingRateFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceFrameBoundaryFeaturesEXT\">VkPhysicalDeviceFrameBoundaryFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR\">VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT\">VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostImageCopyFeaturesEXT\">VkPhysicalDeviceHostImageCopyFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceHostQueryResetFeatures\">VkPhysicalDeviceHostQueryResetFeatures</a>, <a href=\"#VkPhysicalDeviceImage2DViewOf3DFeaturesEXT\">VkPhysicalDeviceImage2DViewOf3DFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageAlignmentControlFeaturesMESA\">VkPhysicalDeviceImageAlignmentControlFeaturesMESA</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlFeaturesEXT\">VkPhysicalDeviceImageCompressionControlFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT\">VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageProcessing2FeaturesQCOM\">VkPhysicalDeviceImageProcessing2FeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceImageProcessingFeaturesQCOM\">VkPhysicalDeviceImageProcessingFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceImageRobustnessFeatures\">VkPhysicalDeviceImageRobustnessFeatures</a>, <a href=\"#VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT\">VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImageViewMinLodFeaturesEXT\">VkPhysicalDeviceImageViewMinLodFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceImagelessFramebufferFeatures\">VkPhysicalDeviceImagelessFramebufferFeatures</a>, <a href=\"#VkPhysicalDeviceIndexTypeUint8FeaturesKHR\">VkPhysicalDeviceIndexTypeUint8FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceInheritedViewportScissorFeaturesNV\">VkPhysicalDeviceInheritedViewportScissorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceInlineUniformBlockFeatures\">VkPhysicalDeviceInlineUniformBlockFeatures</a>, <a href=\"#VkPhysicalDeviceInvocationMaskFeaturesHUAWEI\">VkPhysicalDeviceInvocationMaskFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceLegacyDitheringFeaturesEXT\">VkPhysicalDeviceLegacyDitheringFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT\">VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceLineRasterizationFeaturesKHR\">VkPhysicalDeviceLineRasterizationFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceLinearColorAttachmentFeaturesNV\">VkPhysicalDeviceLinearColorAttachmentFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMaintenance4Features\">VkPhysicalDeviceMaintenance4Features</a>, <a href=\"#VkPhysicalDeviceMaintenance5FeaturesKHR\">VkPhysicalDeviceMaintenance5FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance6FeaturesKHR\">VkPhysicalDeviceMaintenance6FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceMaintenance7FeaturesKHR\">VkPhysicalDeviceMaintenance7FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceMapMemoryPlacedFeaturesEXT\">VkPhysicalDeviceMapMemoryPlacedFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMemoryDecompressionFeaturesNV\">VkPhysicalDeviceMemoryDecompressionFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMemoryPriorityFeaturesEXT\">VkPhysicalDeviceMemoryPriorityFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesEXT\">VkPhysicalDeviceMeshShaderFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMeshShaderFeaturesNV\">VkPhysicalDeviceMeshShaderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceMultiDrawFeaturesEXT\">VkPhysicalDeviceMultiDrawFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT\">VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceMultiviewFeatures\">VkPhysicalDeviceMultiviewFeatures</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM\">VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM\">VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT\">VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceNestedCommandBufferFeaturesEXT\">VkPhysicalDeviceNestedCommandBufferFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT\">VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceOpacityMicromapFeaturesEXT\">VkPhysicalDeviceOpacityMicromapFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceOpticalFlowFeaturesNV\">VkPhysicalDeviceOpticalFlowFeaturesNV</a>, <a href=\"#VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT\">VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePerStageDescriptorSetFeaturesNV\">VkPhysicalDevicePerStageDescriptorSetFeaturesNV</a>, <a href=\"#VkPhysicalDevicePerformanceQueryFeaturesKHR\">VkPhysicalDevicePerformanceQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineBinaryFeaturesKHR\">VkPhysicalDevicePipelineBinaryFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineCreationCacheControlFeatures\">VkPhysicalDevicePipelineCreationCacheControlFeatures</a>, <a href=\"#VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR\">VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT\">VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelinePropertiesFeaturesEXT\">VkPhysicalDevicePipelinePropertiesFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineProtectedAccessFeaturesEXT\">VkPhysicalDevicePipelineProtectedAccessFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePipelineRobustnessFeaturesEXT\">VkPhysicalDevicePipelineRobustnessFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePortabilitySubsetFeaturesKHR\">VkPhysicalDevicePortabilitySubsetFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentBarrierFeaturesNV\">VkPhysicalDevicePresentBarrierFeaturesNV</a>, <a href=\"#VkPhysicalDevicePresentIdFeaturesKHR\">VkPhysicalDevicePresentIdFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePresentWaitFeaturesKHR\">VkPhysicalDevicePresentWaitFeaturesKHR</a>, <a href=\"#VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT\">VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT\">VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT</a>, <a href=\"#VkPhysicalDevicePrivateDataFeatures\">VkPhysicalDevicePrivateDataFeatures</a>, <a href=\"#VkPhysicalDeviceProtectedMemoryFeatures\">VkPhysicalDeviceProtectedMemoryFeatures</a>, <a href=\"#VkPhysicalDeviceProvokingVertexFeaturesEXT\">VkPhysicalDeviceProvokingVertexFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT\">VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT\">VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceRawAccessChainsFeaturesNV\">VkPhysicalDeviceRawAccessChainsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayQueryFeaturesKHR\">VkPhysicalDeviceRayQueryFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV\">VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR\">VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingMotionBlurFeaturesNV\">VkPhysicalDeviceRayTracingMotionBlurFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRayTracingPipelineFeaturesKHR\">VkPhysicalDeviceRayTracingPipelineFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR\">VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceRayTracingValidationFeaturesNV\">VkPhysicalDeviceRayTracingValidationFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG\">VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG</a>, <a href=\"#VkPhysicalDeviceRenderPassStripedFeaturesARM\">VkPhysicalDeviceRenderPassStripedFeaturesARM</a>, <a href=\"#VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV\">VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV</a>, <a href=\"#VkPhysicalDeviceRobustness2FeaturesEXT\">VkPhysicalDeviceRobustness2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSamplerYcbcrConversionFeatures\">VkPhysicalDeviceSamplerYcbcrConversionFeatures</a>, <a href=\"#VkPhysicalDeviceScalarBlockLayoutFeatures\">VkPhysicalDeviceScalarBlockLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceSchedulingControlsFeaturesARM\">VkPhysicalDeviceSchedulingControlsFeaturesARM</a>, <a href=\"#VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures\">VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV\">VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT\">VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicFloatFeaturesEXT\">VkPhysicalDeviceShaderAtomicFloatFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderAtomicInt64Features\">VkPhysicalDeviceShaderAtomicInt64Features</a>, <a href=\"#VkPhysicalDeviceShaderClockFeaturesKHR\">VkPhysicalDeviceShaderClockFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM\">VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM</a>, <a href=\"#VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures\">VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShaderDrawParametersFeatures\">VkPhysicalDeviceShaderDrawParametersFeatures</a>, <a href=\"#VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD\">VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD</a>, <a href=\"#VkPhysicalDeviceShaderEnqueueFeaturesAMDX\">VkPhysicalDeviceShaderEnqueueFeaturesAMDX</a>, <a href=\"#VkPhysicalDeviceShaderExpectAssumeFeaturesKHR\">VkPhysicalDeviceShaderExpectAssumeFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderFloat16Int8Features\">VkPhysicalDeviceShaderFloat16Int8Features</a>, <a href=\"#VkPhysicalDeviceShaderFloatControls2FeaturesKHR\">VkPhysicalDeviceShaderFloatControls2FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT\">VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderImageFootprintFeaturesNV\">VkPhysicalDeviceShaderImageFootprintFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderIntegerDotProductFeatures\">VkPhysicalDeviceShaderIntegerDotProductFeatures</a>, <a href=\"#VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL\">VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL</a>, <a href=\"#VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR\">VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT\">VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderObjectFeaturesEXT\">VkPhysicalDeviceShaderObjectFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderQuadControlFeaturesKHR\">VkPhysicalDeviceShaderQuadControlFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR\">VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT\">VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShaderSMBuiltinsFeaturesNV\">VkPhysicalDeviceShaderSMBuiltinsFeaturesNV</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures\">VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR\">VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR\">VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceShaderTerminateInvocationFeatures\">VkPhysicalDeviceShaderTerminateInvocationFeatures</a>, <a href=\"#VkPhysicalDeviceShaderTileImageFeaturesEXT\">VkPhysicalDeviceShaderTileImageFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceShadingRateImageFeaturesNV\">VkPhysicalDeviceShadingRateImageFeaturesNV</a>, <a href=\"#VkPhysicalDeviceSubgroupSizeControlFeatures\">VkPhysicalDeviceSubgroupSizeControlFeatures</a>, <a href=\"#VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT\">VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSubpassShadingFeaturesHUAWEI\">VkPhysicalDeviceSubpassShadingFeaturesHUAWEI</a>, <a href=\"#VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT\">VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT</a>, <a href=\"#VkPhysicalDeviceSynchronization2Features\">VkPhysicalDeviceSynchronization2Features</a>, <a href=\"#VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT\">VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceTextureCompressionASTCHDRFeatures\">VkPhysicalDeviceTextureCompressionASTCHDRFeatures</a>, <a href=\"#VkPhysicalDeviceTilePropertiesFeaturesQCOM\">VkPhysicalDeviceTilePropertiesFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceTimelineSemaphoreFeatures\">VkPhysicalDeviceTimelineSemaphoreFeatures</a>, <a href=\"#VkPhysicalDeviceTransformFeedbackFeaturesEXT\">VkPhysicalDeviceTransformFeedbackFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceUniformBufferStandardLayoutFeatures\">VkPhysicalDeviceUniformBufferStandardLayoutFeatures</a>, <a href=\"#VkPhysicalDeviceVariablePointersFeatures\">VkPhysicalDeviceVariablePointersFeatures</a>, <a href=\"#VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR\">VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT\">VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceVideoMaintenance1FeaturesKHR\">VkPhysicalDeviceVideoMaintenance1FeaturesKHR</a>, <a href=\"#VkPhysicalDeviceVulkan11Features\">VkPhysicalDeviceVulkan11Features</a>, <a href=\"#VkPhysicalDeviceVulkan12Features\">VkPhysicalDeviceVulkan12Features</a>, <a href=\"#VkPhysicalDeviceVulkan13Features\">VkPhysicalDeviceVulkan13Features</a>, <a href=\"#VkPhysicalDeviceVulkanMemoryModelFeatures\">VkPhysicalDeviceVulkanMemoryModelFeatures</a>, <a href=\"#VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR\">VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR</a>, <a href=\"#VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT\">VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT</a>, <a href=\"#VkPhysicalDeviceYcbcrDegammaFeaturesQCOM\">VkPhysicalDeviceYcbcrDegammaFeaturesQCOM</a>, <a href=\"#VkPhysicalDeviceYcbcrImageArraysFeaturesEXT\">VkPhysicalDeviceYcbcrImageArraysFeaturesEXT</a>, or <a href=\"#VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures\">VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures</a>",
           "page": "vkspec"
         },
         {
@@ -13350,6 +13350,16 @@
           "page": "vkspec"
         },
         {
+          "vuid": "VUID-VkShaderCreateInfoEXT-flags-11005",
+          "text": "If <code>flags</code> includes <code>VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT</code>, then the <a href=\"#features-deviceGeneratedCommandsEXT\"><code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkShaderCreateInfoEXT-flags-11006",
+          "text": "If <code>flags</code> includes <code>VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT</code>, then the identified entry point <strong class=\"purple\">must</strong> not specify <code>Xfb</code> execution mode",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-VkShaderCreateInfoEXT-flags-08992",
           "text": "If <code>flags</code> includes <code>VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT</code>, <code>stage</code> <strong class=\"purple\">must</strong> be one of <code>VK_SHADER_STAGE_MESH_BIT_EXT</code>, <code>VK_SHADER_STAGE_TASK_BIT_EXT</code>, or <code>VK_SHADER_STAGE_COMPUTE_BIT</code>",
           "page": "vkspec"
@@ -14681,6 +14691,11 @@
           "page": "vkspec"
         },
         {
+          "vuid": "VUID-VkComputePipelineCreateInfo-flags-11007",
+          "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT</code>, then the <a href=\"#features-deviceGeneratedCommandsEXT\"><code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-VkComputePipelineCreateInfo-pipelineCreationCacheControl-02875",
           "text": "If the <a href=\"#features-pipelineCreationCacheControl\"><code>pipelineCreationCacheControl</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> or <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>",
           "page": "vkspec"
@@ -15916,6 +15931,16 @@
           "page": "vkspec"
         },
         {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-11000",
+          "text": "If <code>flags</code> includes <code>VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT</code>, then the <a href=\"#features-deviceGeneratedCommandsEXT\"><code>deviceGeneratedCommands</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "page": "vkspec"
+        },
+        {
+          "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-11001",
+          "text": "If the pipeline requires <a href=\"#pipelines-graphics-subsets-pre-rasterization\">pre-rasterization shader state</a> and <code>flags</code> includes <code>VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT</code>, then all stages <strong class=\"purple\">must</strong> not specify <code>Xfb</code> execution mode",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-VkGraphicsPipelineCreateInfo-pipelineCreationCacheControl-02878",
           "text": "If the <a href=\"#features-pipelineCreationCacheControl\"><code>pipelineCreationCacheControl</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> or <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>",
           "page": "vkspec"
@@ -17471,6 +17496,11 @@
           "page": "vkspec"
         },
         {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-11008",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pipelineCreationCacheControl-02905",
           "text": "If the <a href=\"#features-pipelineCreationCacheControl\"><code>pipelineCreationCacheControl</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> or <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>",
           "page": "vkspec"
@@ -17665,6 +17695,11 @@
           "page": "vkspec"
         },
         {
+          "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-11008",
+          "text": "<code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT</code>",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pipelineCreationCacheControl-02905",
           "text": "If the <a href=\"#features-pipelineCreationCacheControl\"><code>pipelineCreationCacheControl</code></a> feature is not enabled, <code>flags</code> <strong class=\"purple\">must</strong> not include <code>VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT</code> or <code>VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT</code>",
           "page": "vkspec"
@@ -20257,7 +20292,7 @@
         },
         {
           "vuid": "VUID-VkImportMemoryFdInfoKHR-fd-01746",
-          "text": "The memory represented by <code>fd</code> <strong class=\"purple\">must</strong> have been created from a physical device and driver that is compatible with <code>device</code> and <code>handleType</code>, as described in <a href=\"#external-memory-handle-types-compatibility\">External memory handle types compatibility</a>",
+          "text": "The memory represented by <code>fd</code> <strong class=\"purple\">must</strong> have been created from a physical device and driver that is compatible with <code>device</code> and <code>handleType</code>, as described in <a href=\"#external-memory-handle-types-compatibility\">External Memory Handle Types Compatibility</a>",
           "page": "vkspec"
         },
         {
@@ -31493,7 +31528,7 @@
       "core": [
         {
           "vuid": "VUID-vkGetBufferOpaqueCaptureDescriptorDataEXT-None-08072",
-          "text": "The <a href=\"#features-descriptorBuffer\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "text": "The <a href=\"#features-descriptorBufferCaptureReplay\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
           "page": "vkspec"
         },
         {
@@ -31551,7 +31586,7 @@
       "core": [
         {
           "vuid": "VUID-vkGetImageOpaqueCaptureDescriptorDataEXT-None-08076",
-          "text": "The <a href=\"#features-descriptorBuffer\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "text": "The <a href=\"#features-descriptorBufferCaptureReplay\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
           "page": "vkspec"
         },
         {
@@ -31609,7 +31644,7 @@
       "core": [
         {
           "vuid": "VUID-vkGetImageViewOpaqueCaptureDescriptorDataEXT-None-08080",
-          "text": "The <a href=\"#features-descriptorBuffer\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "text": "The <a href=\"#features-descriptorBufferCaptureReplay\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
           "page": "vkspec"
         },
         {
@@ -31667,7 +31702,7 @@
       "core": [
         {
           "vuid": "VUID-vkGetSamplerOpaqueCaptureDescriptorDataEXT-None-08084",
-          "text": "The <a href=\"#features-descriptorBuffer\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "text": "The <a href=\"#features-descriptorBufferCaptureReplay\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
           "page": "vkspec"
         },
         {
@@ -31725,7 +31760,7 @@
       "core": [
         {
           "vuid": "VUID-vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT-None-08088",
-          "text": "The <a href=\"#features-descriptorBuffer\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
+          "text": "The <a href=\"#features-descriptorBufferCaptureReplay\"><code>descriptorBufferCaptureReplay</code></a> feature <strong class=\"purple\">must</strong> be enabled",
           "page": "vkspec"
         },
         {
@@ -42944,17 +42979,12 @@
         },
         {
           "vuid": "VUID-vkCmdDraw-viewportCount-04138",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
-          "page": "vkspec"
-        },
-        {
-          "vuid": "VUID-vkCmdDraw-None-09232",
-          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-08636",
-          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
           "page": "vkspec"
         },
         {
@@ -42963,23 +42993,18 @@
           "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDraw-viewportCount-04140",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
-          "page": "vkspec"
-        },
-        {
           "vuid": "VUID-vkCmdDraw-shadingRateImage-09233",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-shadingRateImage-09234",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-None-08637",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
           "page": "vkspec"
         },
         {
@@ -43493,6 +43518,11 @@
           "page": "vkspec"
         },
         {
+          "vuid": "VUID-vkCmdDraw-None-09650",
+          "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-vkCmdDraw-None-07640",
           "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
@@ -43624,12 +43654,12 @@
         },
         {
           "vuid": "VUID-vkCmdDraw-sampleLocationsPerPixel-07482",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-sampleLocationsPerPixel-07483",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
@@ -43654,17 +43684,17 @@
         },
         {
           "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07936",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07937",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-07938",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
@@ -43914,7 +43944,7 @@
         },
         {
           "vuid": "VUID-vkCmdDraw-pStrides-04913",
-          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
           "page": "vkspec"
         },
         {
@@ -43949,7 +43979,7 @@
         },
         {
           "vuid": "VUID-vkCmdDraw-None-04875",
-          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the     current command buffer set <code>primitiveTopology</code> to     <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not     subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current     command buffer prior to this drawing command",
+          "text": "If     there is a shader object bound to the     <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled,     and the <a href=\"#dynamic-state-current-value\">current value</a> of     <code>primitiveTopology</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, then     <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not     subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current     command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
@@ -44583,17 +44613,12 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-viewportCount-04138",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
-          "page": "vkspec"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexed-None-09232",
-          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-08636",
-          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
           "page": "vkspec"
         },
         {
@@ -44602,23 +44627,18 @@
           "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexed-viewportCount-04140",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
-          "page": "vkspec"
-        },
-        {
           "vuid": "VUID-vkCmdDrawIndexed-shadingRateImage-09233",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-shadingRateImage-09234",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-08637",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
           "page": "vkspec"
         },
         {
@@ -45132,6 +45152,11 @@
           "page": "vkspec"
         },
         {
+          "vuid": "VUID-vkCmdDrawIndexed-None-09650",
+          "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-vkCmdDrawIndexed-None-07640",
           "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
@@ -45263,12 +45288,12 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07482",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07483",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
@@ -45293,17 +45318,17 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07936",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07937",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-07938",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
@@ -45553,7 +45578,7 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-pStrides-04913",
-          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
           "page": "vkspec"
         },
         {
@@ -45588,7 +45613,7 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndexed-None-04875",
-          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the     current command buffer set <code>primitiveTopology</code> to     <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not     subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current     command buffer prior to this drawing command",
+          "text": "If     there is a shader object bound to the     <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled,     and the <a href=\"#dynamic-state-current-value\">current value</a> of     <code>primitiveTopology</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, then     <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not     subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current     command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
@@ -46232,17 +46257,12 @@
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-04138",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
-          "page": "vkspec"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiEXT-None-09232",
-          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-08636",
-          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
           "page": "vkspec"
         },
         {
@@ -46251,23 +46271,18 @@
           "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiEXT-viewportCount-04140",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
-          "page": "vkspec"
-        },
-        {
           "vuid": "VUID-vkCmdDrawMultiEXT-shadingRateImage-09233",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-shadingRateImage-09234",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-08637",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
           "page": "vkspec"
         },
         {
@@ -46781,6 +46796,11 @@
           "page": "vkspec"
         },
         {
+          "vuid": "VUID-vkCmdDrawMultiEXT-None-09650",
+          "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-07640",
           "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
@@ -46912,12 +46932,12 @@
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07482",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07483",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
@@ -46942,17 +46962,17 @@
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07936",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07937",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07938",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
@@ -47202,7 +47222,7 @@
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-pStrides-04913",
-          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
           "page": "vkspec"
         },
         {
@@ -47237,7 +47257,7 @@
         },
         {
           "vuid": "VUID-vkCmdDrawMultiEXT-None-04875",
-          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the     current command buffer set <code>primitiveTopology</code> to     <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not     subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current     command buffer prior to this drawing command",
+          "text": "If     there is a shader object bound to the     <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled,     and the <a href=\"#dynamic-state-current-value\">current value</a> of     <code>primitiveTopology</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, then     <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not     subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current     command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
@@ -47891,17 +47911,12 @@
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04138",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
-          "page": "vkspec"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09232",
-          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08636",
-          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
           "page": "vkspec"
         },
         {
@@ -47910,23 +47925,18 @@
           "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-04140",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
-          "page": "vkspec"
-        },
-        {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-shadingRateImage-09233",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-shadingRateImage-09234",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-08637",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
           "page": "vkspec"
         },
         {
@@ -48440,6 +48450,11 @@
           "page": "vkspec"
         },
         {
+          "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-09650",
+          "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-07640",
           "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
@@ -48571,12 +48586,12 @@
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07482",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07483",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
@@ -48601,17 +48616,17 @@
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07936",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07937",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07938",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
@@ -48861,7 +48876,7 @@
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-pStrides-04913",
-          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
           "page": "vkspec"
         },
         {
@@ -48896,7 +48911,7 @@
         },
         {
           "vuid": "VUID-vkCmdDrawMultiIndexedEXT-None-04875",
-          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the     current command buffer set <code>primitiveTopology</code> to     <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not     subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current     command buffer prior to this drawing command",
+          "text": "If     there is a shader object bound to the     <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled,     and the <a href=\"#dynamic-state-current-value\">current value</a> of     <code>primitiveTopology</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, then     <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not     subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current     command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
@@ -49565,17 +49580,12 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-viewportCount-04138",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
-          "page": "vkspec"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirect-None-09232",
-          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-08636",
-          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
           "page": "vkspec"
         },
         {
@@ -49584,23 +49594,18 @@
           "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirect-viewportCount-04140",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
-          "page": "vkspec"
-        },
-        {
           "vuid": "VUID-vkCmdDrawIndirect-shadingRateImage-09233",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-shadingRateImage-09234",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-08637",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
           "page": "vkspec"
         },
         {
@@ -50114,6 +50119,11 @@
           "page": "vkspec"
         },
         {
+          "vuid": "VUID-vkCmdDrawIndirect-None-09650",
+          "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-vkCmdDrawIndirect-None-07640",
           "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
@@ -50245,12 +50255,12 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07482",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07483",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
@@ -50275,17 +50285,17 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07936",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07937",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-07938",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
@@ -50520,7 +50530,7 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-pStrides-04913",
-          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
           "page": "vkspec"
         },
         {
@@ -50555,7 +50565,7 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndirect-None-04875",
-          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the     current command buffer set <code>primitiveTopology</code> to     <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not     subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current     command buffer prior to this drawing command",
+          "text": "If     there is a shader object bound to the     <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled,     and the <a href=\"#dynamic-state-current-value\">current value</a> of     <code>primitiveTopology</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, then     <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not     subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current     command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
@@ -50673,11 +50683,6 @@
           "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkDrawIndirectCommand-None-00500",
-          "text": "For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>",
-          "page": "vkspec"
-        },
-        {
           "vuid": "VUID-VkDrawIndirectCommand-firstInstance-00501",
           "text": "If the <a href=\"#features-drawIndirectFirstInstance\"><code>drawIndirectFirstInstance</code></a> feature is not enabled, <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>",
           "page": "vkspec"
@@ -51258,17 +51263,12 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04138",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
-          "page": "vkspec"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectCount-None-09232",
-          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-08636",
-          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
           "page": "vkspec"
         },
         {
@@ -51277,23 +51277,18 @@
           "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04140",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
-          "page": "vkspec"
-        },
-        {
           "vuid": "VUID-vkCmdDrawIndirectCount-shadingRateImage-09233",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-shadingRateImage-09234",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-08637",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
           "page": "vkspec"
         },
         {
@@ -51807,6 +51802,11 @@
           "page": "vkspec"
         },
         {
+          "vuid": "VUID-vkCmdDrawIndirectCount-None-09650",
+          "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-07640",
           "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
@@ -51938,12 +51938,12 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07482",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07483",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
@@ -51968,17 +51968,17 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07936",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07937",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07938",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
@@ -52213,7 +52213,7 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-pStrides-04913",
-          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
           "page": "vkspec"
         },
         {
@@ -52248,7 +52248,7 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectCount-None-04875",
-          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the     current command buffer set <code>primitiveTopology</code> to     <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not     subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current     command buffer prior to this drawing command",
+          "text": "If     there is a shader object bound to the     <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled,     and the <a href=\"#dynamic-state-current-value\">current value</a> of     <code>primitiveTopology</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, then     <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not     subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current     command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
@@ -52957,17 +52957,12 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04138",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
-          "page": "vkspec"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09232",
-          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08636",
-          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
           "page": "vkspec"
         },
         {
@@ -52976,23 +52971,18 @@
           "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04140",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
-          "page": "vkspec"
-        },
-        {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-shadingRateImage-09233",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-shadingRateImage-09234",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-08637",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
           "page": "vkspec"
         },
         {
@@ -53506,6 +53496,11 @@
           "page": "vkspec"
         },
         {
+          "vuid": "VUID-vkCmdDrawIndexedIndirect-None-09650",
+          "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-07640",
           "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
@@ -53637,12 +53632,12 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07482",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07483",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
@@ -53667,17 +53662,17 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07936",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07937",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07938",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
@@ -53912,7 +53907,7 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-pStrides-04913",
-          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
           "page": "vkspec"
         },
         {
@@ -53947,7 +53942,7 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04875",
-          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the     current command buffer set <code>primitiveTopology</code> to     <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not     subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current     command buffer prior to this drawing command",
+          "text": "If     there is a shader object bound to the     <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled,     and the <a href=\"#dynamic-state-current-value\">current value</a> of     <code>primitiveTopology</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, then     <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not     subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current     command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
@@ -54075,11 +54070,6 @@
           "page": "vkspec"
         },
         {
-          "vuid": "VUID-VkDrawIndexedIndirectCommand-None-00552",
-          "text": "For a given vertex buffer binding, any attribute data fetched <strong class=\"purple\">must</strong> be entirely contained within the corresponding vertex buffer binding, as described in <a href=\"#fxvertex-input\">Vertex Input Description</a>",
-          "page": "vkspec"
-        },
-        {
           "vuid": "VUID-VkDrawIndexedIndirectCommand-firstInstance-00554",
           "text": "If the <a href=\"#features-drawIndirectFirstInstance\"><code>drawIndirectFirstInstance</code></a> feature is not enabled, <code>firstInstance</code> <strong class=\"purple\">must</strong> be <code>0</code>",
           "page": "vkspec"
@@ -54660,17 +54650,12 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04138",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
-          "page": "vkspec"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09232",
-          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08636",
-          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
           "page": "vkspec"
         },
         {
@@ -54679,23 +54664,18 @@
           "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04140",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
-          "page": "vkspec"
-        },
-        {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-shadingRateImage-09233",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-shadingRateImage-09234",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-08637",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
           "page": "vkspec"
         },
         {
@@ -55209,6 +55189,11 @@
           "page": "vkspec"
         },
         {
+          "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-09650",
+          "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-07640",
           "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
@@ -55340,12 +55325,12 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07482",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07483",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
@@ -55370,17 +55355,17 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07936",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07937",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07938",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
@@ -55615,7 +55600,7 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-pStrides-04913",
-          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
           "page": "vkspec"
         },
         {
@@ -55650,7 +55635,7 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04875",
-          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the     current command buffer set <code>primitiveTopology</code> to     <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not     subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current     command buffer prior to this drawing command",
+          "text": "If     there is a shader object bound to the     <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled,     and the <a href=\"#dynamic-state-current-value\">current value</a> of     <code>primitiveTopology</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, then     <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not     subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current     command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
@@ -56364,17 +56349,12 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04138",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
-          "page": "vkspec"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09232",
-          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08636",
-          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
           "page": "vkspec"
         },
         {
@@ -56383,23 +56363,18 @@
           "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04140",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
-          "page": "vkspec"
-        },
-        {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-shadingRateImage-09233",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-shadingRateImage-09234",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-08637",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
           "page": "vkspec"
         },
         {
@@ -56913,6 +56888,11 @@
           "page": "vkspec"
         },
         {
+          "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-09650",
+          "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-07640",
           "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
@@ -57044,12 +57024,12 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07482",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07483",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
@@ -57074,17 +57054,17 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07936",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07937",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07938",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
@@ -57319,7 +57299,7 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04913",
-          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2EXT\">vkCmdBindVertexBuffers2EXT</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
+          "text": "If the bound graphics pipeline was created with the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE</code> dynamic state enabled, but without the <code>VK_DYNAMIC_STATE_VERTEX_INPUT_EXT</code> dynamic state enabled, then <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this draw command, and the <code>pStrides</code> parameter of <a href=\"#vkCmdBindVertexBuffers2\">vkCmdBindVertexBuffers2</a> <strong class=\"purple\">must</strong> not be <code>NULL</code>",
           "page": "vkspec"
         },
         {
@@ -57354,7 +57334,7 @@
         },
         {
           "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04875",
-          "text": "If     there is a shader object bound to the <code>VK_SHADER_STAGE_VERTEX_BIT</code>     stage and the most recent call to <code>vkCmdSetPrimitiveTopology</code> in the     current command buffer set <code>primitiveTopology</code> to     <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled     then <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not     subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current     command buffer prior to this drawing command",
+          "text": "If     there is a shader object bound to the     <code>VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</code> stage or     the bound graphics pipeline state was created with the     <code>VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT</code> dynamic state enabled,     and the <a href=\"#dynamic-state-current-value\">current value</a> of     <code>primitiveTopology</code> is <code>VK_PRIMITIVE_TOPOLOGY_PATCH_LIST</code>, then     <a href=\"#vkCmdSetPatchControlPointsEXT\">vkCmdSetPatchControlPointsEXT</a> <strong class=\"purple\">must</strong> have been called and not     subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current     command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
@@ -58160,17 +58140,12 @@
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04138",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
-          "page": "vkspec"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09232",
-          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08636",
-          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
           "page": "vkspec"
         },
         {
@@ -58179,23 +58154,18 @@
           "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04140",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
-          "page": "vkspec"
-        },
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-shadingRateImage-09233",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-shadingRateImage-09234",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-08637",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, and the most recent call to <a href=\"#vkCmdSetShadingRateImageEnableNV\">vkCmdSetShadingRateImageEnableNV</a> in the current command buffer set <code>shadingRateImageEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>shadingRateImageEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
           "page": "vkspec"
         },
         {
@@ -58709,6 +58679,11 @@
           "page": "vkspec"
         },
         {
+          "vuid": "VUID-vkCmdDrawMeshTasksNV-None-09650",
+          "text": "If the <a href=\"#features-depthClampControl\"><code>depthClampControl</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT</code> dynamic state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>depthClampEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetDepthClampRangeEXT\">vkCmdSetDepthClampRangeEXT</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "page": "vkspec"
+        },
+        {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-None-07640",
           "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV</code> dynamic state enabled, then <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
@@ -58840,12 +58815,12 @@
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07482",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state disabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> member of the <a href=\"#VkPipelineMultisampleStateCreateInfo\">VkPipelineMultisampleStateCreateInfo</a> structure the bound graphics pipeline has been created with",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07483",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state enabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then the <code>sampleLocationsPerPixel</code> member of <code>pSampleLocationsInfo</code> in the last call to <a href=\"#vkCmdSetSampleLocationsEXT\">vkCmdSetSampleLocationsEXT</a> <strong class=\"purple\">must</strong> equal the <code>rasterizationSamples</code> parameter of the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
@@ -58870,17 +58845,17 @@
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07936",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.width</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.width</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07937",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationGridSize.height</code> <strong class=\"purple\">must</strong> evenly divide <a href=\"#VkMultisamplePropertiesEXT\">VkMultisamplePropertiesEXT</a>::<code>sampleLocationGridSize.height</code> as returned by <a href=\"#vkGetPhysicalDeviceMultisamplePropertiesEXT\">vkGetPhysicalDeviceMultisamplePropertiesEXT</a> with a <code>samples</code> parameter equaling the value of <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07938",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, the <code>sampleLocationsEnable</code> member of a <a href=\"#VkPipelineSampleLocationsStateCreateInfoEXT\">VkPipelineSampleLocationsStateCreateInfoEXT</a>::<code>sampleLocationsEnable</code> in the bound graphics pipeline is <code>VK_TRUE</code> or <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT</code> state enabled, then, <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
+          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT</code> state disabled and the <code>VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT</code> state enabled, and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>sampleLocationsEnable</code> is <code>VK_TRUE</code>, then <code>sampleLocationsInfo.sampleLocationsPerPixel</code> <strong class=\"purple\">must</strong> equal <code>rasterizationSamples</code> in the last call to <a href=\"#vkCmdSetRasterizationSamplesEXT\">vkCmdSetRasterizationSamplesEXT</a>",
           "page": "vkspec"
         },
         {
@@ -59719,17 +59694,12 @@
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04138",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
-          "page": "vkspec"
-        },
-        {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-09232",
-          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec"
         },
         {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-08636",
-          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetViewportWScalingEnableNV\">vkCmdSetViewportWScalingEnableNV</a> in the current command buffer set <code>viewportWScalingEnable</code> to <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
+          "text": "If the <code><a href=\"#VK_NV_clip_space_w_scaling\">VK_NV_clip_space_w_scaling</a></code> extension is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV</code> dynamic state enabled, the <a href=\"#dynamic-state-current-value\">current value</a> of <code>viewportWScalingEnable</code> is <code>VK_TRUE</code>, then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWScalingNV\">vkCmdSetViewportWScalingNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
           "page": "vkspec"
         },
         {
@@ -59738,23 +59708,18 @@
           "page": "vkspec"
         },
         {
-          "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04140",
-          "text": "If the bound graphics pipeline state was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT</code> and <code>VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV</code> dynamic states enabled then the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportShadingRatePaletteNV\">vkCmdSetViewportShadingRatePaletteNV</a> <strong class=\"purple\">must</strong> be greater than or equal to the <code>viewportCount</code> parameter in the last call to <a href=\"#vkCmdSetViewportWithCount\">vkCmdSetViewportWithCount</a>",
-          "page": "vkspec"
-        },
-        {
           "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-shadingRateImage-09233",
-          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage, and the most recent call to <a href=\"#vkCmdSetRasterizerDiscardEnable\">vkCmdSetRasterizerDiscardEnable</a> in the current command buffer set <code>rasterizerDiscardEnable</code> to <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
+          "text": "If the <a href=\"#features-shadingRateImage\"><code>shadingRateImage</code></a> feature is enabled, and a shader object is bound to any graphics stage or a graphics pipeline is bound which was created with the <code>VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV</code> and the <a href=\"#dynamic-state-current-value\">current value</a> of <code>rasterizerDiscardEnable</code> is <code>VK_FALSE</code>, then <a href=\"#vkCmdSetCoarseSampleOrderNV\">vkCmdSetCoarseSampleOrderNV</a> <strong class=\"purple\">must</strong> have been called and not subsequently <a href=\"#dynamic-state-lifetime\">invalidated</a> in the current command buffer prior to this drawing command",
           "page": "vkspec&