diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -2,6 +2,10 @@
 
 ## WIP
 
+## [3.26.4] - 2025-05-31
+
+- Bump API version to v1.3.273
+
 ## [3.26.3] - 2025-05-18
 
 - Bump API version to v1.3.271
diff --git a/package.yaml b/package.yaml
--- a/package.yaml
+++ b/package.yaml
@@ -1,5 +1,5 @@
 name: vulkan
-version: "3.26.3"
+version: "3.26.4"
 synopsis: Bindings to the Vulkan graphics API.
 description: Please see [the readme](https://github.com/expipiplus1/vulkan/#readme)
 category: Graphics
diff --git a/src/Vulkan/CStruct/Extends.hs b/src/Vulkan/CStruct/Extends.hs
--- a/src/Vulkan/CStruct/Extends.hs
+++ b/src/Vulkan/CStruct/Extends.hs
@@ -125,7 +125,7 @@
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (BufferOpaqueCaptureAddressCreateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (BufferUsageFlags2CreateInfoKHR)
 import {-# SOURCE #-} Vulkan.Core10.BufferView (BufferViewCreateInfo)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_calibrated_timestamps (CalibratedTimestampInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_calibrated_timestamps (CalibratedTimestampInfoKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (CheckpointData2NV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints (CheckpointDataNV)
 import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ClearAttachment)
@@ -402,6 +402,8 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencySurfaceCapabilitiesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencyTimingsFrameReportNV)
 import {-# SOURCE #-} Vulkan.Core10.LayerDiscovery (LayerProperties)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_layer_settings (LayerSettingEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_layer_settings (LayerSettingsCreateInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_MVK_macos_surface (MacOSSurfaceCreateInfoMVK)
 import {-# SOURCE #-} Vulkan.Core10.Memory (MappedMemoryRange)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (MemoryAllocateFlagsInfo)
@@ -478,6 +480,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI)
 import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader (PhysicalDeviceClusterCullingShaderPropertiesHUAWEI)
+import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader (PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI)
 import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_device_coherent_memory (PhysicalDeviceCoherentMemoryFeaturesAMD)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_color_write_enable (PhysicalDeviceColorWriteEnableFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesNV)
@@ -660,6 +663,8 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch (PhysicalDeviceRayTracingPositionFetchFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (PhysicalDeviceRayTracingPropertiesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_IMG_relaxed_line_rasterization (PhysicalDeviceRelaxedLineRasterizationFeaturesIMG)
+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (PhysicalDeviceRenderPassStripedFeaturesARM)
+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (PhysicalDeviceRenderPassStripedPropertiesARM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PhysicalDeviceRepresentativeFragmentTestFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_robustness2 (PhysicalDeviceRobustness2FeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_robustness2 (PhysicalDeviceRobustness2PropertiesEXT)
@@ -725,8 +730,9 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PhysicalDeviceTransformFeedbackPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout (PhysicalDeviceUniformBufferStandardLayoutFeatures)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers (PhysicalDeviceVariablePointersFeatures)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorPropertiesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorPropertiesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (PhysicalDeviceVertexInputDynamicStateFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Features)
 import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Properties)
@@ -786,7 +792,7 @@
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PipelineShaderStageRequiredSubgroupSizeCreateInfo)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PipelineTessellationDomainOriginStateCreateInfo)
 import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineTessellationStateCreateInfo)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PipelineVertexInputDivisorStateCreateInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PipelineVertexInputDivisorStateCreateInfoKHR)
 import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineVertexInputStateCreateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PipelineViewportCoarseSampleOrderStateCreateInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_control (PipelineViewportDepthClipControlCreateInfoEXT)
@@ -834,6 +840,9 @@
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (RenderPassInputAttachmentAspectCreateInfo)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (RenderPassMultiviewCreateInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (RenderPassSampleLocationsBeginInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (RenderPassStripeBeginInfoARM)
+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (RenderPassStripeInfoARM)
+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (RenderPassStripeSubmitInfoARM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subpass_merge_feedback (RenderPassSubpassFeedbackCreateInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subpass_merge_feedback (RenderPassSubpassFeedbackInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_render_pass_transform (RenderPassTransformBeginInfoQCOM)
@@ -946,7 +955,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (VertexInputAttributeDescription2EXT)
 import {-# SOURCE #-} Vulkan.Core10.Pipeline (VertexInputBindingDescription)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (VertexInputBindingDescription2EXT)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (VertexInputBindingDivisorDescriptionEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (VertexInputBindingDivisorDescriptionKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NN_vi_surface (ViSurfaceCreateInfoNN)
 import {-# SOURCE #-} Vulkan.Core10.Pipeline (Viewport)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_viewport_swizzle (ViewportSwizzleNV)
@@ -1114,6 +1123,7 @@
   Extends CommandBufferInheritanceInfo CommandBufferInheritanceRenderingInfo = ()
   Extends CommandBufferInheritanceInfo AttachmentSampleCountInfoAMD = ()
   Extends CommandBufferInheritanceInfo MultiviewPerViewAttributesInfoNVX = ()
+  Extends CommandBufferSubmitInfo RenderPassStripeSubmitInfoARM = ()
   Extends ComputePipelineCreateInfo PipelineCreateFlags2CreateInfoKHR = ()
   Extends ComputePipelineCreateInfo PipelineCreationFeedbackCreateInfo = ()
   Extends ComputePipelineCreateInfo SubpassShadingPipelineCreateInfoHUAWEI = ()
@@ -1162,7 +1172,7 @@
   Extends DeviceCreateInfo PhysicalDeviceShaderAtomicInt64Features = ()
   Extends DeviceCreateInfo PhysicalDeviceShaderAtomicFloatFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceShaderAtomicFloat2FeaturesEXT = ()
-  Extends DeviceCreateInfo PhysicalDeviceVertexAttributeDivisorFeaturesEXT = ()
+  Extends DeviceCreateInfo PhysicalDeviceVertexAttributeDivisorFeaturesKHR = ()
   Extends DeviceCreateInfo PhysicalDeviceASTCDecodeFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceTransformFeedbackFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceRepresentativeFragmentTestFeaturesNV = ()
@@ -1231,7 +1241,7 @@
   Extends DeviceCreateInfo PhysicalDevicePortabilitySubsetFeaturesKHR = ()
   Extends DeviceCreateInfo PhysicalDevice4444FormatsFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceSubpassShadingFeaturesHUAWEI = ()
-  Extends DeviceCreateInfo PhysicalDeviceClusterCullingShaderFeaturesHUAWEI = ()
+  Extends DeviceCreateInfo (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI '[]) = ()
   Extends DeviceCreateInfo PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceFragmentShadingRateFeaturesKHR = ()
   Extends DeviceCreateInfo PhysicalDeviceShaderTerminateInvocationFeatures = ()
@@ -1309,6 +1319,7 @@
   Extends DeviceCreateInfo DeviceQueueShaderCoreControlCreateInfoARM = ()
   Extends DeviceCreateInfo PhysicalDeviceSchedulingControlsFeaturesARM = ()
   Extends DeviceCreateInfo PhysicalDeviceRelaxedLineRasterizationFeaturesIMG = ()
+  Extends DeviceCreateInfo PhysicalDeviceRenderPassStripedFeaturesARM = ()
   Extends DeviceQueueCreateInfo DeviceQueueGlobalPriorityCreateInfoKHR = ()
   Extends DeviceQueueCreateInfo DeviceQueueShaderCoreControlCreateInfoARM = ()
   Extends EventCreateInfo ExportMetalObjectCreateInfoEXT = ()
@@ -1384,6 +1395,7 @@
   Extends InstanceCreateInfo DebugReportCallbackCreateInfoEXT = ()
   Extends InstanceCreateInfo ValidationFlagsEXT = ()
   Extends InstanceCreateInfo ValidationFeaturesEXT = ()
+  Extends InstanceCreateInfo LayerSettingsCreateInfoEXT = ()
   Extends InstanceCreateInfo DebugUtilsMessengerCreateInfoEXT = ()
   Extends InstanceCreateInfo ExportMetalObjectCreateInfoEXT = ()
   Extends InstanceCreateInfo DirectDriverLoadingListLUNARG = ()
@@ -1408,6 +1420,7 @@
   Extends MemoryAllocateInfo ImportScreenBufferInfoQNX = ()
   Extends MemoryRequirements2 MemoryDedicatedRequirements = ()
   Extends OpticalFlowSessionCreateInfoNV OpticalFlowSessionCreatePrivateDataInfoNV = ()
+  Extends PhysicalDeviceClusterCullingShaderFeaturesHUAWEI PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI = ()
   Extends PhysicalDeviceExternalBufferInfo BufferUsageFlags2CreateInfoKHR = ()
   Extends PhysicalDeviceExternalSemaphoreInfo SemaphoreTypeCreateInfo = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = ()
@@ -1439,7 +1452,7 @@
   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderAtomicInt64Features = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderAtomicFloatFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderAtomicFloat2FeaturesEXT = ()
-  Extends PhysicalDeviceFeatures2 PhysicalDeviceVertexAttributeDivisorFeaturesEXT = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceVertexAttributeDivisorFeaturesKHR = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceASTCDecodeFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceTransformFeedbackFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceRepresentativeFragmentTestFeaturesNV = ()
@@ -1506,7 +1519,7 @@
   Extends PhysicalDeviceFeatures2 PhysicalDevicePortabilitySubsetFeaturesKHR = ()
   Extends PhysicalDeviceFeatures2 PhysicalDevice4444FormatsFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceSubpassShadingFeaturesHUAWEI = ()
-  Extends PhysicalDeviceFeatures2 PhysicalDeviceClusterCullingShaderFeaturesHUAWEI = ()
+  Extends PhysicalDeviceFeatures2 (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI '[]) = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShadingRateFeaturesKHR = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderTerminateInvocationFeatures = ()
@@ -1583,6 +1596,7 @@
   Extends PhysicalDeviceFeatures2 PhysicalDeviceCudaKernelLaunchFeaturesNV = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceSchedulingControlsFeaturesARM = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceRelaxedLineRasterizationFeaturesIMG = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceRenderPassStripedFeaturesARM = ()
   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceExternalImageFormatInfo = ()
   Extends PhysicalDeviceImageFormatInfo2 ImageFormatListCreateInfo = ()
   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceImageDrmFormatModifierInfoEXT = ()
@@ -1617,6 +1631,7 @@
   Extends PhysicalDeviceProperties2 PhysicalDeviceDescriptorIndexingProperties = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceTimelineSemaphoreProperties = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceVertexAttributeDivisorPropertiesEXT = ()
+  Extends PhysicalDeviceProperties2 PhysicalDeviceVertexAttributeDivisorPropertiesKHR = ()
   Extends PhysicalDeviceProperties2 PhysicalDevicePCIBusInfoPropertiesEXT = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceDepthStencilResolveProperties = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceTransformFeedbackPropertiesEXT = ()
@@ -1676,6 +1691,7 @@
   Extends PhysicalDeviceProperties2 PhysicalDeviceExternalFormatResolvePropertiesANDROID = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceCudaKernelLaunchPropertiesNV = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceSchedulingControlsPropertiesARM = ()
+  Extends PhysicalDeviceProperties2 PhysicalDeviceRenderPassStripedPropertiesARM = ()
   Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveInfoEXT = ()
   Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveWin32InfoEXT = ()
   Extends PhysicalDeviceSurfaceInfo2KHR SurfacePresentModeEXT = ()
@@ -1700,7 +1716,7 @@
   Extends PipelineShaderStageCreateInfo PipelineRobustnessCreateInfoEXT = ()
   Extends PipelineShaderStageCreateInfo PipelineShaderStageNodeCreateInfoAMDX = ()
   Extends PipelineTessellationStateCreateInfo PipelineTessellationDomainOriginStateCreateInfo = ()
-  Extends PipelineVertexInputStateCreateInfo PipelineVertexInputDivisorStateCreateInfoEXT = ()
+  Extends PipelineVertexInputStateCreateInfo PipelineVertexInputDivisorStateCreateInfoKHR = ()
   Extends PipelineViewportStateCreateInfo PipelineViewportWScalingStateCreateInfoNV = ()
   Extends PipelineViewportStateCreateInfo PipelineViewportSwizzleStateCreateInfoNV = ()
   Extends PipelineViewportStateCreateInfo PipelineViewportExclusiveScissorStateCreateInfoNV = ()
@@ -1731,6 +1747,7 @@
   Extends RenderPassBeginInfo RenderPassAttachmentBeginInfo = ()
   Extends RenderPassBeginInfo RenderPassTransformBeginInfoQCOM = ()
   Extends RenderPassBeginInfo MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM = ()
+  Extends RenderPassBeginInfo RenderPassStripeBeginInfoARM = ()
   Extends RenderPassCreateInfo RenderPassMultiviewCreateInfo = ()
   Extends RenderPassCreateInfo RenderPassInputAttachmentAspectCreateInfo = ()
   Extends RenderPassCreateInfo RenderPassFragmentDensityMapCreateInfoEXT = ()
@@ -1743,6 +1760,7 @@
   Extends RenderingInfo RenderingFragmentDensityMapAttachmentInfoEXT = ()
   Extends RenderingInfo MultiviewPerViewAttributesInfoNVX = ()
   Extends RenderingInfo MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM = ()
+  Extends RenderingInfo RenderPassStripeBeginInfoARM = ()
   Extends SamplerCreateInfo SamplerYcbcrConversionInfo = ()
   Extends SamplerCreateInfo SamplerReductionModeCreateInfo = ()
   Extends SamplerCreateInfo SamplerCustomBorderColorCreateInfoEXT = ()
@@ -1918,6 +1936,7 @@
   STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT -> go @DebugReportCallbackCreateInfoEXT
   STRUCTURE_TYPE_VALIDATION_FLAGS_EXT -> go @ValidationFlagsEXT
   STRUCTURE_TYPE_VALIDATION_FEATURES_EXT -> go @ValidationFeaturesEXT
+  STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT -> go @LayerSettingsCreateInfoEXT
   STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD -> go @PipelineRasterizationStateRasterizationOrderAMD
   STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV -> go @DedicatedAllocationImageCreateInfoNV
   STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV -> go @DedicatedAllocationBufferCreateInfoNV
@@ -2051,8 +2070,9 @@
   STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES -> go @PhysicalDeviceTimelineSemaphoreProperties
   STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO -> go @SemaphoreTypeCreateInfo
   STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO -> go @TimelineSemaphoreSubmitInfo
-  STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT -> go @PipelineVertexInputDivisorStateCreateInfoEXT
+  STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR -> go @PipelineVertexInputDivisorStateCreateInfoKHR
   STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT -> go @PhysicalDeviceVertexAttributeDivisorPropertiesEXT
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR -> go @PhysicalDeviceVertexAttributeDivisorPropertiesKHR
   STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT -> go @PhysicalDevicePCIBusInfoPropertiesEXT
   STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID -> go @ImportAndroidHardwareBufferInfoANDROID
   STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID -> go @AndroidHardwareBufferUsageANDROID
@@ -2065,7 +2085,7 @@
   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES -> go @PhysicalDeviceShaderAtomicInt64Features
   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT -> go @PhysicalDeviceShaderAtomicFloatFeaturesEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT -> go @PhysicalDeviceShaderAtomicFloat2FeaturesEXT
-  STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT -> go @PhysicalDeviceVertexAttributeDivisorFeaturesEXT
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR -> go @PhysicalDeviceVertexAttributeDivisorFeaturesKHR
   STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV -> go @QueueFamilyCheckpointPropertiesNV
   STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES -> go @PhysicalDeviceDepthStencilResolveProperties
   STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE -> go @SubpassDescriptionDepthStencilResolve
@@ -2213,7 +2233,8 @@
   STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR -> go @PhysicalDevicePortabilitySubsetPropertiesKHR
   STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT -> go @PhysicalDevice4444FormatsFeaturesEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI -> go @PhysicalDeviceSubpassShadingFeaturesHUAWEI
-  STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI -> go @PhysicalDeviceClusterCullingShaderFeaturesHUAWEI
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI -> go @(PhysicalDeviceClusterCullingShaderFeaturesHUAWEI '[])
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI -> go @PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI
   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT -> go @PhysicalDeviceShaderImageAtomicInt64FeaturesEXT
   STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR -> go @FragmentShadingRateAttachmentInfoKHR
   STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR -> go @PipelineFragmentShadingRateStateCreateInfoKHR
@@ -2403,6 +2424,10 @@
   STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM -> go @PhysicalDeviceSchedulingControlsFeaturesARM
   STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM -> go @PhysicalDeviceSchedulingControlsPropertiesARM
   STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG -> go @PhysicalDeviceRelaxedLineRasterizationFeaturesIMG
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM -> go @PhysicalDeviceRenderPassStripedFeaturesARM
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM -> go @PhysicalDeviceRenderPassStripedPropertiesARM
+  STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM -> go @RenderPassStripeBeginInfoARM
+  STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM -> go @RenderPassStripeSubmitInfoARM
   t -> throwIO $ IOError Nothing InvalidArgument "peekChainHead" ("Unrecognized struct type: " <> show t) Nothing Nothing
  where
   go :: forall e . (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b
@@ -2463,6 +2488,7 @@
 {-# complete (::&) :: DebugReportCallbackCreateInfoEXT #-}
 {-# complete (::&) :: ValidationFlagsEXT #-}
 {-# complete (::&) :: ValidationFeaturesEXT #-}
+{-# complete (::&) :: LayerSettingsCreateInfoEXT #-}
 {-# complete (::&) :: PipelineRasterizationStateRasterizationOrderAMD #-}
 {-# complete (::&) :: DedicatedAllocationImageCreateInfoNV #-}
 {-# complete (::&) :: DedicatedAllocationBufferCreateInfoNV #-}
@@ -2596,8 +2622,9 @@
 {-# complete (::&) :: PhysicalDeviceTimelineSemaphoreProperties #-}
 {-# complete (::&) :: SemaphoreTypeCreateInfo #-}
 {-# complete (::&) :: TimelineSemaphoreSubmitInfo #-}
-{-# complete (::&) :: PipelineVertexInputDivisorStateCreateInfoEXT #-}
+{-# complete (::&) :: PipelineVertexInputDivisorStateCreateInfoKHR #-}
 {-# complete (::&) :: PhysicalDeviceVertexAttributeDivisorPropertiesEXT #-}
+{-# complete (::&) :: PhysicalDeviceVertexAttributeDivisorPropertiesKHR #-}
 {-# complete (::&) :: PhysicalDevicePCIBusInfoPropertiesEXT #-}
 {-# complete (::&) :: ImportAndroidHardwareBufferInfoANDROID #-}
 {-# complete (::&) :: AndroidHardwareBufferUsageANDROID #-}
@@ -2610,7 +2637,7 @@
 {-# complete (::&) :: PhysicalDeviceShaderAtomicInt64Features #-}
 {-# complete (::&) :: PhysicalDeviceShaderAtomicFloatFeaturesEXT #-}
 {-# complete (::&) :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT #-}
-{-# complete (::&) :: PhysicalDeviceVertexAttributeDivisorFeaturesEXT #-}
+{-# complete (::&) :: PhysicalDeviceVertexAttributeDivisorFeaturesKHR #-}
 {-# complete (::&) :: QueueFamilyCheckpointPropertiesNV #-}
 {-# complete (::&) :: PhysicalDeviceDepthStencilResolveProperties #-}
 {-# complete (::&) :: SubpassDescriptionDepthStencilResolve #-}
@@ -2759,6 +2786,7 @@
 {-# complete (::&) :: PhysicalDevice4444FormatsFeaturesEXT #-}
 {-# complete (::&) :: PhysicalDeviceSubpassShadingFeaturesHUAWEI #-}
 {-# complete (::&) :: PhysicalDeviceClusterCullingShaderFeaturesHUAWEI #-}
+{-# complete (::&) :: PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI #-}
 {-# complete (::&) :: PhysicalDeviceShaderImageAtomicInt64FeaturesEXT #-}
 {-# complete (::&) :: FragmentShadingRateAttachmentInfoKHR #-}
 {-# complete (::&) :: PipelineFragmentShadingRateStateCreateInfoKHR #-}
@@ -2948,6 +2976,10 @@
 {-# complete (::&) :: PhysicalDeviceSchedulingControlsFeaturesARM #-}
 {-# complete (::&) :: PhysicalDeviceSchedulingControlsPropertiesARM #-}
 {-# complete (::&) :: PhysicalDeviceRelaxedLineRasterizationFeaturesIMG #-}
+{-# complete (::&) :: PhysicalDeviceRenderPassStripedFeaturesARM #-}
+{-# complete (::&) :: PhysicalDeviceRenderPassStripedPropertiesARM #-}
+{-# complete (::&) :: RenderPassStripeBeginInfoARM #-}
+{-# complete (::&) :: RenderPassStripeSubmitInfoARM #-}
 
 -- | View the head and tail of a 'Chain', see '::&'
 --
diff --git a/src/Vulkan/Core10/CommandBufferBuilding.hs b/src/Vulkan/Core10/CommandBufferBuilding.hs
--- a/src/Vulkan/Core10/CommandBufferBuilding.hs
+++ b/src/Vulkan/Core10/CommandBufferBuilding.hs
@@ -215,6 +215,7 @@
 import Vulkan.Core10.Handles (RenderPass)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (RenderPassAttachmentBeginInfo)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (RenderPassSampleLocationsBeginInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (RenderPassStripeBeginInfoARM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_render_pass_transform (RenderPassTransformBeginInfoQCOM)
 import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlagBits(..))
 import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)
@@ -2098,10 +2099,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDraw-None-08601# For each push constant that is
@@ -2110,11 +2111,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDraw-maintenance4-08602# If the
@@ -2125,17 +2125,20 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDraw-None-08114# Descriptors in each bound descriptor
---     set, specified via 'cmdBindDescriptorSets', /must/ be valid if they
---     are statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to
---     the pipeline bind point used by this command and the bound
+--     set, specified via 'cmdBindDescriptorSets', /must/ be valid as
+--     described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
 --     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
@@ -2185,14 +2188,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdDraw-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdDraw-None-08608# If a pipeline is bound to the pipeline
 --     bind point used by this command, there /must/ not have been any
 --     calls to dynamic state setting commands for any state not specified
@@ -2233,6 +2228,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdDraw-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdDraw-uniformBuffers-06935# If any stage of the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command accesses a uniform buffer, and that stage
@@ -2805,16 +2808,6 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
--- -   #VUID-vkCmdDraw-sampleLocationsPerPixel-07934# If the bound graphics
---     pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state enabled, then the @sampleLocationsPerPixel@ member of
---     @pSampleLocationsInfo@ in the last call to
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ equal the @rasterizationSamples@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
 -- -   #VUID-vkCmdDraw-None-07840# If the bound graphics pipeline state was
 --     created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
@@ -3293,22 +3286,36 @@
 --
 -- -   #VUID-vkCmdDraw-multisampledRenderToSingleSampled-07284# If
 --     rasterization is not disabled in the bound graphics pipeline, and
---     none of the @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
+--     none of the following is enabled:
 --
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the currently bound graphics
+--     pipeline /must/ be the same as the current subpass color and\/or
+--     depth\/stencil attachments
+--
 -- -   #VUID-vkCmdDraw-None-08644# If a shader object is bound to any
 --     graphics stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
 --     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the
---     @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then the most recent call to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then the most recent call to
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
 --     in the current command buffer /must/ have set @rasterizationSamples@
 --     to be the same as the number of samples for the current render pass
@@ -3409,40 +3416,40 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
 --     used to create the currently bound graphics pipeline
 --
--- -   #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08911# If the
+-- -   #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08912# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is enabled, and the current render pass instance was begun
---     with
+--     feature is not enabled, and the current render pass instance was
+--     begun with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ not equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
+--     array with a @imageView@ equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound graphics pipeline, or the
---     corresponding element of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
---     if it exists, /must/ be
+--     used to create the currently bound pipeline equal to
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
--- -   #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08912# If the
+-- -   #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08911# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is not enabled, and the current render pass instance was
---     begun with
+--     feature is enabled, and the current render pass instance was begun
+--     with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
+--     array with a @imageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound pipeline equal to
+--     used to create the currently bound graphics pipeline, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
 -- -   #VUID-vkCmdDraw-colorAttachmentCount-09362# If the current render
@@ -3849,9 +3856,7 @@
 --     the currently bound graphics pipeline
 --
 -- -   #VUID-vkCmdDraw-multisampledRenderToSingleSampled-07286# If the
---     current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -3865,9 +3870,7 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
 --
 -- -   #VUID-vkCmdDraw-multisampledRenderToSingleSampled-07287# If the
---     current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -5567,6 +5570,32 @@
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
 --     stages
 --
+-- -   #VUID-vkCmdDraw-pNext-09461# If the bound graphics pipeline state
+--     was created with
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'
+--     in the @pNext@ chain of
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,
+--     any member of
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@
+--     has a value other than @1@ in @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
+--
+-- -   #VUID-vkCmdDraw-None-09462# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>
+--     are used for drawing or the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, any member of the
+--     @pVertexBindingDescriptions@ parameter to the
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     call that sets this dynamic state has a value other than @1@ in
+--     @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCmdDraw-commandBuffer-parameter# @commandBuffer@ /must/ be a
@@ -5836,10 +5865,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawIndexed-None-08601# For each push constant that is
@@ -5848,11 +5877,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawIndexed-maintenance4-08602# If the
@@ -5863,19 +5891,21 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawIndexed-None-08114# Descriptors in each bound
 --     descriptor set, specified via 'cmdBindDescriptorSets', /must/ be
---     valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdDrawIndexed-None-08115# If the descriptors used by the
@@ -5924,14 +5954,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdDrawIndexed-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdDrawIndexed-None-08608# If a pipeline is bound to the
 --     pipeline bind point used by this command, there /must/ not have been
 --     any calls to dynamic state setting commands for any state not
@@ -5975,6 +5997,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdDrawIndexed-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdDrawIndexed-uniformBuffers-06935# If any stage of the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command accesses a uniform buffer, and that stage
@@ -6553,16 +6583,6 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
--- -   #VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07934# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state enabled, then the @sampleLocationsPerPixel@ member of
---     @pSampleLocationsInfo@ in the last call to
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ equal the @rasterizationSamples@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
 -- -   #VUID-vkCmdDrawIndexed-None-07840# If the bound graphics pipeline
 --     state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
@@ -7043,22 +7063,36 @@
 --
 -- -   #VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07284# If
 --     rasterization is not disabled in the bound graphics pipeline, and
---     none of the @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
+--     none of the following is enabled:
 --
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the currently bound graphics
+--     pipeline /must/ be the same as the current subpass color and\/or
+--     depth\/stencil attachments
+--
 -- -   #VUID-vkCmdDrawIndexed-None-08644# If a shader object is bound to
 --     any graphics stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
 --     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the
---     @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then the most recent call to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then the most recent call to
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
 --     in the current command buffer /must/ have set @rasterizationSamples@
 --     to be the same as the number of samples for the current render pass
@@ -7160,42 +7194,42 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
 --     used to create the currently bound graphics pipeline
 --
--- -   #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08911# If
+-- -   #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08912# If
 --     the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is enabled, and the current render pass instance was begun
---     with
+--     feature is not enabled, and the current render pass instance was
+--     begun with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ not equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
+--     array with a @imageView@ equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound graphics pipeline, or the
---     corresponding element of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
---     if it exists, /must/ be
+--     used to create the currently bound pipeline equal to
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
--- -   #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08912# If
+-- -   #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08911# If
 --     the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is not enabled, and the current render pass instance was
---     begun with
+--     feature is enabled, and the current render pass instance was begun
+--     with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
+--     array with a @imageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound pipeline equal to
+--     used to create the currently bound graphics pipeline, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
 -- -   #VUID-vkCmdDrawIndexed-colorAttachmentCount-09362# If the current
@@ -7603,8 +7637,6 @@
 --     the currently bound graphics pipeline
 --
 -- -   #VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07286# If
---     the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
 --     the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
@@ -7619,8 +7651,6 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
 --
 -- -   #VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07287# If
---     the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
 --     the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
@@ -9345,6 +9375,32 @@
 --     @indexType@, where the index buffer, @indexType@, and @offset@ are
 --     specified via 'cmdBindIndexBuffer'
 --
+-- -   #VUID-vkCmdDrawIndexed-pNext-09461# If the bound graphics pipeline
+--     state was created with
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'
+--     in the @pNext@ chain of
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,
+--     any member of
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@
+--     has a value other than @1@ in @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
+--
+-- -   #VUID-vkCmdDrawIndexed-None-09462# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>
+--     are used for drawing or the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, any member of the
+--     @pVertexBindingDescriptions@ parameter to the
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     call that sets this dynamic state has a value other than @1@ in
+--     @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
+--
 -- -   #VUID-vkCmdDrawIndexed-robustBufferAccess2-08798# If
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
 --     is not enabled, (@indexSize@ × (@firstIndex@ + @indexCount@) +
@@ -9614,10 +9670,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawIndirect-None-08601# For each push constant that is
@@ -9626,11 +9682,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawIndirect-maintenance4-08602# If the
@@ -9641,19 +9696,21 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawIndirect-None-08114# Descriptors in each bound
 --     descriptor set, specified via 'cmdBindDescriptorSets', /must/ be
---     valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdDrawIndirect-None-08115# If the descriptors used by the
@@ -9702,14 +9759,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdDrawIndirect-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdDrawIndirect-None-08608# If a pipeline is bound to the
 --     pipeline bind point used by this command, there /must/ not have been
 --     any calls to dynamic state setting commands for any state not
@@ -9753,6 +9802,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdDrawIndirect-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdDrawIndirect-uniformBuffers-06935# If any stage of the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command accesses a uniform buffer, and that stage
@@ -10332,16 +10389,6 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
--- -   #VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07934# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state enabled, then the @sampleLocationsPerPixel@ member of
---     @pSampleLocationsInfo@ in the last call to
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ equal the @rasterizationSamples@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
 -- -   #VUID-vkCmdDrawIndirect-None-07840# If the bound graphics pipeline
 --     state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
@@ -10822,22 +10869,36 @@
 --
 -- -   #VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07284# If
 --     rasterization is not disabled in the bound graphics pipeline, and
---     none of the @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
+--     none of the following is enabled:
 --
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the currently bound graphics
+--     pipeline /must/ be the same as the current subpass color and\/or
+--     depth\/stencil attachments
+--
 -- -   #VUID-vkCmdDrawIndirect-None-08644# If a shader object is bound to
 --     any graphics stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
 --     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the
---     @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then the most recent call to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then the most recent call to
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
 --     in the current command buffer /must/ have set @rasterizationSamples@
 --     to be the same as the number of samples for the current render pass
@@ -10939,42 +11000,42 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
 --     used to create the currently bound graphics pipeline
 --
--- -   #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08911# If
+-- -   #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08912# If
 --     the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is enabled, and the current render pass instance was begun
---     with
+--     feature is not enabled, and the current render pass instance was
+--     begun with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ not equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
+--     array with a @imageView@ equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound graphics pipeline, or the
---     corresponding element of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
---     if it exists, /must/ be
+--     used to create the currently bound pipeline equal to
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
--- -   #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08912# If
+-- -   #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08911# If
 --     the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is not enabled, and the current render pass instance was
---     begun with
+--     feature is enabled, and the current render pass instance was begun
+--     with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
+--     array with a @imageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound pipeline equal to
+--     used to create the currently bound graphics pipeline, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
 -- -   #VUID-vkCmdDrawIndirect-colorAttachmentCount-09362# If the current
@@ -11382,8 +11443,6 @@
 --     the currently bound graphics pipeline
 --
 -- -   #VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07286# If
---     the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
 --     the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
@@ -11398,8 +11457,6 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
 --
 -- -   #VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07287# If
---     the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
 --     the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
@@ -13388,10 +13445,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawIndexedIndirect-None-08601# For each push constant
@@ -13400,11 +13457,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawIndexedIndirect-maintenance4-08602# If the
@@ -13415,19 +13471,21 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawIndexedIndirect-None-08114# Descriptors in each bound
 --     descriptor set, specified via 'cmdBindDescriptorSets', /must/ be
---     valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdDrawIndexedIndirect-None-08115# If the descriptors used
@@ -13478,14 +13536,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdDrawIndexedIndirect-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdDrawIndexedIndirect-None-08608# If a pipeline is bound to
 --     the pipeline bind point used by this command, there /must/ not have
 --     been any calls to dynamic state setting commands for any state not
@@ -13529,6 +13579,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdDrawIndexedIndirect-uniformBuffers-06935# If any stage of
 --     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline
 --     bind point used by this command accesses a uniform buffer, and that
@@ -14108,16 +14166,6 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
--- -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07934# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state enabled, then the @sampleLocationsPerPixel@ member of
---     @pSampleLocationsInfo@ in the last call to
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ equal the @rasterizationSamples@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
 -- -   #VUID-vkCmdDrawIndexedIndirect-None-07840# If the bound graphics
 --     pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
@@ -14598,22 +14646,36 @@
 --
 -- -   #VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07284#
 --     If rasterization is not disabled in the bound graphics pipeline, and
---     none of the @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
+--     none of the following is enabled:
 --
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the currently bound graphics
+--     pipeline /must/ be the same as the current subpass color and\/or
+--     depth\/stencil attachments
+--
 -- -   #VUID-vkCmdDrawIndexedIndirect-None-08644# If a shader object is
 --     bound to any graphics stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
 --     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the
---     @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then the most recent call to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then the most recent call to
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
 --     in the current command buffer /must/ have set @rasterizationSamples@
 --     to be the same as the number of samples for the current render pass
@@ -14715,42 +14777,42 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
 --     used to create the currently bound graphics pipeline
 --
--- -   #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08911#
+-- -   #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08912#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is enabled, and the current render pass instance was begun
---     with
+--     feature is not enabled, and the current render pass instance was
+--     begun with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ not equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
+--     array with a @imageView@ equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound graphics pipeline, or the
---     corresponding element of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
---     if it exists, /must/ be
+--     used to create the currently bound pipeline equal to
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
--- -   #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08912#
+-- -   #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08911#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is not enabled, and the current render pass instance was
---     begun with
+--     feature is enabled, and the current render pass instance was begun
+--     with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
+--     array with a @imageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound pipeline equal to
+--     used to create the currently bound graphics pipeline, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
 -- -   #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-09362# If the
@@ -15158,9 +15220,7 @@
 --     the currently bound graphics pipeline
 --
 -- -   #VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07286#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -15174,9 +15234,7 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
 --
 -- -   #VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07287#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -17182,10 +17240,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDispatch-None-08601# For each push constant that is
@@ -17194,11 +17252,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDispatch-maintenance4-08602# If the
@@ -17209,17 +17266,20 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDispatch-None-08114# Descriptors in each bound descriptor
---     set, specified via 'cmdBindDescriptorSets', /must/ be valid if they
---     are statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to
---     the pipeline bind point used by this command and the bound
+--     set, specified via 'cmdBindDescriptorSets', /must/ be valid as
+--     described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
 --     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
@@ -17269,14 +17329,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdDispatch-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdDispatch-None-08608# If a pipeline is bound to the
 --     pipeline bind point used by this command, there /must/ not have been
 --     any calls to dynamic state setting commands for any state not
@@ -17320,6 +17372,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdDispatch-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdDispatch-uniformBuffers-06935# If any stage of the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command accesses a uniform buffer, and that stage
@@ -17834,10 +17894,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDispatchIndirect-None-08601# For each push constant that
@@ -17846,11 +17906,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDispatchIndirect-maintenance4-08602# If the
@@ -17861,19 +17920,21 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDispatchIndirect-None-08114# Descriptors in each bound
 --     descriptor set, specified via 'cmdBindDescriptorSets', /must/ be
---     valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdDispatchIndirect-None-08115# If the descriptors used by
@@ -17924,14 +17985,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdDispatchIndirect-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdDispatchIndirect-None-08608# If a pipeline is bound to
 --     the pipeline bind point used by this command, there /must/ not have
 --     been any calls to dynamic state setting commands for any state not
@@ -17975,6 +18028,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdDispatchIndirect-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdDispatchIndirect-uniformBuffers-06935# If any stage of
 --     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline
 --     bind point used by this command accesses a uniform buffer, and that
@@ -18547,6 +18608,14 @@
 --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',
 --     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
 --
+-- -   #VUID-vkCmdCopyImage-srcImage-09460# If @srcImage@ and @dstImage@
+--     are the same, and any elements of @pRegions@ contains the
+--     @srcSubresource@ and @dstSubresource@ with matching @mipLevel@ and
+--     overlapping array layers, then the @srcImageLayout@ and
+--     @dstImageLayout@ /must/ be
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'
+--
 -- -   #VUID-vkCmdCopyImage-dstImage-01996# The
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
 --     of @dstImage@ /must/ contain
@@ -19225,6 +19294,14 @@
 --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'
 --     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
 --
+-- -   #VUID-vkCmdBlitImage-srcImage-09459# If @srcImage@ and @dstImage@
+--     are the same, and an elements of @pRegions@ contains the
+--     @srcSubresource@ and @dstSubresource@ with matching @mipLevel@ and
+--     overlapping array layers, then the @srcImageLayout@ and
+--     @dstImageLayout@ /must/ be
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'
+--
 -- -   #VUID-vkCmdBlitImage-dstImage-02000# The
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
 --     of @dstImage@ /must/ contain
@@ -23430,11 +23507,12 @@
 --
 -- == Valid Usage
 --
--- -   @firstQuery@ /must/ be less than the number of queries in
---     @queryPool@
+-- -   #VUID-vkCmdResetQueryPool-firstQuery-09436# @firstQuery@ /must/ be
+--     less than the number of queries in @queryPool@
 --
--- -   The sum of @firstQuery@ and @queryCount@ /must/ be less than or
---     equal to the number of queries in @queryPool@
+-- -   #VUID-vkCmdResetQueryPool-firstQuery-09437# The sum of @firstQuery@
+--     and @queryCount@ /must/ be less than or equal to the number of
+--     queries in @queryPool@
 --
 -- -   #VUID-vkCmdResetQueryPool-None-02841# All queries used by the
 --     command /must/ not be active
@@ -23561,15 +23639,16 @@
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-execution happens-after>
 -- another timestamp write in the same submission /must/ not have a lower
 -- value unless its value overflows the maximum supported integer bit width
--- of the query. If @VK_EXT_calibrated_timestamps@ is enabled, this extends
--- to timestamp writes across all submissions on the same logical device:
--- any timestamp write that
+-- of the query. If @VK_KHR_calibrated_timestamps@ or
+-- @VK_EXT_calibrated_timestamps@ is enabled, this extends to timestamp
+-- writes across all submissions on the same logical device: any timestamp
+-- write that
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-execution happens-after>
 -- another /must/ not have a lower value unless its value overflows the
 -- maximum supported integer bit width of the query. Timestamps written by
 -- this command /must/ be in the
--- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.TIME_DOMAIN_DEVICE_EXT'
--- <VkTimeDomainEXT.html time domain>. If an overflow occurs, the timestamp
+-- 'Vulkan.Extensions.VK_KHR_calibrated_timestamps.TIME_DOMAIN_DEVICE_KHR'
+-- <VkTimeDomainKHR.html time domain>. If an overflow occurs, the timestamp
 -- value /must/ wrap back to zero.
 --
 -- Note
@@ -23579,8 +23658,8 @@
 -- timestamp from a newer one to determine the execution time of a sequence
 -- of commands is only a reliable measurement if the two timestamp writes
 -- were performed in the same submission, or if the writes were performed
--- on the same logical device and @VK_EXT_calibrated_timestamps@ is
--- enabled.
+-- on the same logical device and @VK_KHR_calibrated_timestamps@ or
+-- @VK_EXT_calibrated_timestamps@ is enabled.
 --
 -- If 'cmdWriteTimestamp' is called while executing a render pass instance
 -- that has multiview enabled, the timestamp uses N consecutive query
@@ -23859,20 +23938,24 @@
 --
 -- == Valid Usage
 --
--- -   @firstQuery@ /must/ be less than the number of queries in
---     @queryPool@
+-- -   #VUID-vkCmdCopyQueryPoolResults-firstQuery-09436# @firstQuery@
+--     /must/ be less than the number of queries in @queryPool@
 --
--- -   The sum of @firstQuery@ and @queryCount@ /must/ be less than or
---     equal to the number of queries in @queryPool@
+-- -   #VUID-vkCmdCopyQueryPoolResults-firstQuery-09437# The sum of
+--     @firstQuery@ and @queryCount@ /must/ be less than or equal to the
+--     number of queries in @queryPool@
 --
--- -   If @queryCount@ is greater than 1, @stride@ /must/ not be zero
+-- -   #VUID-vkCmdCopyQueryPoolResults-queryCount-09438# If @queryCount@ is
+--     greater than 1, @stride@ /must/ not be zero
 --
--- -   If the @queryType@ used to create @queryPool@ was
+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-09439# If the @queryType@
+--     used to create @queryPool@ was
 --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP', @flags@ /must/
 --     not contain
 --     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT'
 --
--- -   If the @queryType@ used to create @queryPool@ was
+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-09440# If the @queryType@
+--     used to create @queryPool@ was
 --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
 --     @flags@ /must/ not contain
 --     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT',
@@ -23880,18 +23963,20 @@
 --     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT',
 --     or 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT'
 --
--- -   If the @queryType@ used to create @queryPool@ was
+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-09441# If the @queryType@
+--     used to create @queryPool@ was
 --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
 --     the @queryPool@ /must/ have been recorded once for each pass as
 --     retrieved via a call to
 --     'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'
 --
--- -   If the @queryType@ used to create @queryPool@ was
+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-09442# If the @queryType@
+--     used to create @queryPool@ was
 --     @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@, then @flags@ /must/ include
 --     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@
 --
--- -   If @flags@ includes @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@, then it
---     /must/ not include
+-- -   #VUID-vkCmdCopyQueryPoolResults-flags-09443# If @flags@ includes
+--     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@, then it /must/ not include
 --     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'
 --
 -- -   #VUID-vkCmdCopyQueryPoolResults-None-09402# All queries used by the
@@ -26333,7 +26418,11 @@
 --     'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM'
 --     structure included in the @pNext@ chain is not @0@, then
 --     @renderArea@ /must/ specify a render area that includes the union of
---     all per view render areas.
+--     all per view render areas. If the @pNext@ chain contains a
+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeBeginInfoARM'
+--     structure, the union of stripe areas defined by the elements of
+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeInfoARM'::@pStripeInfos@
+--     /must/ cover the @renderArea@
 --
 -- == Valid Usage (Implicit)
 --
@@ -26347,6 +26436,7 @@
 --     'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM',
 --     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo',
 --     'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT',
+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeBeginInfoARM',
 --     or
 --     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'
 --
@@ -26407,6 +26497,7 @@
   getNext RenderPassBeginInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends RenderPassBeginInfo e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @RenderPassStripeBeginInfoARM = Just f
     | Just Refl <- eqT @e @MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM = Just f
     | Just Refl <- eqT @e @RenderPassTransformBeginInfoQCOM = Just f
     | Just Refl <- eqT @e @RenderPassAttachmentBeginInfo = Just f
diff --git a/src/Vulkan/Core10/Device.hs b/src/Vulkan/Core10/Device.hs
--- a/src/Vulkan/Core10/Device.hs
+++ b/src/Vulkan/Core10/Device.hs
@@ -213,6 +213,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch (PhysicalDeviceRayTracingPositionFetchFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_IMG_relaxed_line_rasterization (PhysicalDeviceRelaxedLineRasterizationFeaturesIMG)
+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (PhysicalDeviceRenderPassStripedFeaturesARM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PhysicalDeviceRepresentativeFragmentTestFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_robustness2 (PhysicalDeviceRobustness2FeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (PhysicalDeviceSamplerYcbcrConversionFeatures)
@@ -253,7 +254,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PhysicalDeviceTransformFeedbackFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout (PhysicalDeviceUniformBufferStandardLayoutFeatures)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers (PhysicalDeviceVariablePointersFeatures)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (PhysicalDeviceVertexInputDynamicStateFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Features)
 import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Features)
@@ -1020,6 +1021,7 @@
 --     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelineFeaturesKHR',
 --     'Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch.PhysicalDeviceRayTracingPositionFetchFeaturesKHR',
 --     'Vulkan.Extensions.VK_IMG_relaxed_line_rasterization.PhysicalDeviceRelaxedLineRasterizationFeaturesIMG',
+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.PhysicalDeviceRenderPassStripedFeaturesARM',
 --     'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV',
 --     'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2FeaturesEXT',
 --     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.PhysicalDeviceSamplerYcbcrConversionFeatures',
@@ -1060,7 +1062,7 @@
 --     'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackFeaturesEXT',
 --     'Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout.PhysicalDeviceUniformBufferStandardLayoutFeatures',
 --     'Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers.PhysicalDeviceVariablePointersFeatures',
---     'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorFeaturesEXT',
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorFeaturesKHR',
 --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.PhysicalDeviceVertexInputDynamicStateFeaturesEXT',
 --     'Vulkan.Core12.PhysicalDeviceVulkan11Features',
 --     'Vulkan.Core12.PhysicalDeviceVulkan12Features',
@@ -1152,6 +1154,7 @@
   getNext DeviceCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends DeviceCreateInfo e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @PhysicalDeviceRenderPassStripedFeaturesARM = Just f
     | Just Refl <- eqT @e @PhysicalDeviceRelaxedLineRasterizationFeaturesIMG = Just f
     | Just Refl <- eqT @e @PhysicalDeviceSchedulingControlsFeaturesARM = Just f
     | Just Refl <- eqT @e @DeviceQueueShaderCoreControlCreateInfoARM = Just f
@@ -1229,7 +1232,7 @@
     | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeatures = Just f
     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateFeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = Just f
-    | Just Refl <- eqT @e @PhysicalDeviceClusterCullingShaderFeaturesHUAWEI = Just f
+    | Just Refl <- eqT @e @(PhysicalDeviceClusterCullingShaderFeaturesHUAWEI '[]) = Just f
     | Just Refl <- eqT @e @PhysicalDeviceSubpassShadingFeaturesHUAWEI = Just f
     | Just Refl <- eqT @e @PhysicalDevice4444FormatsFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetFeaturesKHR = Just f
@@ -1298,7 +1301,7 @@
     | Just Refl <- eqT @e @PhysicalDeviceRepresentativeFragmentTestFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceTransformFeedbackFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceASTCDecodeFeaturesEXT = Just f
-    | Just Refl <- eqT @e @PhysicalDeviceVertexAttributeDivisorFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceVertexAttributeDivisorFeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicFloat2FeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicFloatFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicInt64Features = Just f
diff --git a/src/Vulkan/Core10/DeviceInitialization.hs b/src/Vulkan/Core10/DeviceInitialization.hs
--- a/src/Vulkan/Core10/DeviceInitialization.hs
+++ b/src/Vulkan/Core10/DeviceInitialization.hs
@@ -175,6 +175,7 @@
 import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceQueueFamilyProperties))
 import Vulkan.Core10.Enums.InstanceCreateFlagBits (InstanceCreateFlags)
 import Vulkan.Core10.Handles (Instance_T)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_layer_settings (LayerSettingsCreateInfoEXT)
 import Vulkan.Core10.APIConstants (MAX_MEMORY_HEAPS)
 import Vulkan.Core10.APIConstants (MAX_MEMORY_TYPES)
 import Vulkan.Core10.APIConstants (MAX_PHYSICAL_DEVICE_NAME_SIZE)
@@ -1564,15 +1565,17 @@
 --     'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateInfoEXT',
 --     'Vulkan.Extensions.VK_LUNARG_direct_driver_loading.DirectDriverLoadingListLUNARG',
 --     'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT',
+--     'Vulkan.Extensions.VK_EXT_layer_settings.LayerSettingsCreateInfoEXT',
 --     'Vulkan.Extensions.VK_EXT_validation_features.ValidationFeaturesEXT',
 --     or 'Vulkan.Extensions.VK_EXT_validation_flags.ValidationFlagsEXT'
 --
 -- -   #VUID-VkInstanceCreateInfo-sType-unique# The @sType@ value of each
 --     struct in the @pNext@ chain /must/ be unique, with the exception of
 --     structures of type
---     'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateInfoEXT'
+--     'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateInfoEXT',
+--     'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT',
 --     or
---     'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT'
+--     'Vulkan.Extensions.VK_EXT_layer_settings.LayerSettingsCreateInfoEXT'
 --
 -- -   #VUID-VkInstanceCreateInfo-flags-parameter# @flags@ /must/ be a
 --     valid combination of
@@ -1640,6 +1643,7 @@
     | Just Refl <- eqT @e @DirectDriverLoadingListLUNARG = Just f
     | Just Refl <- eqT @e @ExportMetalObjectCreateInfoEXT = Just f
     | Just Refl <- eqT @e @DebugUtilsMessengerCreateInfoEXT = Just f
+    | Just Refl <- eqT @e @LayerSettingsCreateInfoEXT = Just f
     | Just Refl <- eqT @e @ValidationFeaturesEXT = Just f
     | Just Refl <- eqT @e @ValidationFlagsEXT = Just f
     | Just Refl <- eqT @e @DebugReportCallbackCreateInfoEXT = Just f
diff --git a/src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs b/src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs
@@ -135,10 +135,13 @@
 --
 -- -   'PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR' specifies that
 --     triangle primitives will be skipped during traversal using
---     @OpTraceRayKHR@.
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-pipeline-trace-ray pipeline trace ray>
+--     instructions.
 --
 -- -   'PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR' specifies that AABB
---     primitives will be skipped during traversal using @OpTraceRayKHR@.
+--     primitives will be skipped during traversal using
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-pipeline-trace-ray pipeline trace ray>
+--     instructions.
 --
 -- -   'PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR'
 --     specifies that the shader group handles /can/ be saved and reused on
diff --git a/src/Vulkan/Core10/Enums/StructureType.hs b/src/Vulkan/Core10/Enums/StructureType.hs
--- a/src/Vulkan/Core10/Enums/StructureType.hs
+++ b/src/Vulkan/Core10/Enums/StructureType.hs
@@ -50,12 +50,16 @@
                                                         , STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO
                                                         , STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV
+                                                        , STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX
                                                         , STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX
                                                         , STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX
                                                         , STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX
                                                         , STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR
+                                                        , STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM
                                                         , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM
@@ -84,6 +88,7 @@
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM
+                                                        , STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT
                                                         , STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV
@@ -152,6 +157,11 @@
                                                         , STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM
+                                                        , STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM
+                                                        , STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM
+                                                        , STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT
                                                         , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE
@@ -166,6 +176,7 @@
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT
                                                         , STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI
                                                         , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV
@@ -414,15 +425,12 @@
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV
                                                         , STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP
-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT
-                                                        , STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT
                                                         , STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD
                                                         , STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR
                                                         , STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD
-                                                        , STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT
                                                         , STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT
@@ -874,7 +882,7 @@
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferOpaqueCaptureAddressCreateInfo',
 -- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR',
 -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo',
--- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.CalibratedTimestampInfoEXT',
+-- 'Vulkan.Extensions.VK_KHR_calibrated_timestamps.CalibratedTimestampInfoKHR',
 -- 'Vulkan.Extensions.VK_KHR_synchronization2.CheckpointData2NV',
 -- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.CheckpointDataNV',
 -- 'Vulkan.Core10.CommandBuffer.CommandBufferAllocateInfo',
@@ -1100,6 +1108,7 @@
 -- 'Vulkan.Extensions.VK_NV_low_latency2.LatencySubmissionPresentIdNV',
 -- 'Vulkan.Extensions.VK_NV_low_latency2.LatencySurfaceCapabilitiesNV',
 -- 'Vulkan.Extensions.VK_NV_low_latency2.LatencyTimingsFrameReportNV',
+-- 'Vulkan.Extensions.VK_EXT_layer_settings.LayerSettingsCreateInfoEXT',
 -- 'Vulkan.Extensions.VK_MVK_macos_surface.MacOSSurfaceCreateInfoMVK',
 -- 'Vulkan.Core10.Memory.MappedMemoryRange',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.MemoryAllocateFlagsInfo',
@@ -1164,6 +1173,7 @@
 -- 'Vulkan.Extensions.VK_EXT_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeaturesEXT',
 -- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderFeaturesHUAWEI',
 -- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderPropertiesHUAWEI',
+-- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI',
 -- 'Vulkan.Extensions.VK_AMD_device_coherent_memory.PhysicalDeviceCoherentMemoryFeaturesAMD',
 -- 'Vulkan.Extensions.VK_EXT_color_write_enable.PhysicalDeviceColorWriteEnableFeaturesEXT',
 -- 'Vulkan.Extensions.VK_NV_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesNV',
@@ -1342,6 +1352,8 @@
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch.PhysicalDeviceRayTracingPositionFetchFeaturesKHR',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.PhysicalDeviceRayTracingPropertiesNV',
 -- 'Vulkan.Extensions.VK_IMG_relaxed_line_rasterization.PhysicalDeviceRelaxedLineRasterizationFeaturesIMG',
+-- 'Vulkan.Extensions.VK_ARM_render_pass_striped.PhysicalDeviceRenderPassStripedFeaturesARM',
+-- 'Vulkan.Extensions.VK_ARM_render_pass_striped.PhysicalDeviceRenderPassStripedPropertiesARM',
 -- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV',
 -- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2FeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2PropertiesEXT',
@@ -1406,8 +1418,9 @@
 -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout.PhysicalDeviceUniformBufferStandardLayoutFeatures',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers.PhysicalDeviceVariablePointersFeatures',
--- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorFeaturesEXT',
+-- 'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorFeaturesKHR',
 -- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesEXT',
+-- 'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR',
 -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.PhysicalDeviceVertexInputDynamicStateFeaturesEXT',
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoFormatInfoKHR VkPhysicalDeviceVideoFormatInfoKHR>,
@@ -1466,7 +1479,7 @@
 -- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PipelineShaderStageRequiredSubgroupSizeCreateInfo',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PipelineTessellationDomainOriginStateCreateInfo',
 -- 'Vulkan.Core10.Pipeline.PipelineTessellationStateCreateInfo',
--- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoEXT',
+-- 'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR',
 -- 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo',
 -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportCoarseSampleOrderStateCreateInfoNV',
 -- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PipelineViewportDepthClipControlCreateInfoEXT',
@@ -1509,6 +1522,9 @@
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.RenderPassInputAttachmentAspectCreateInfo',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.RenderPassMultiviewCreateInfo',
 -- 'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT',
+-- 'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeBeginInfoARM',
+-- 'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeInfoARM',
+-- 'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeSubmitInfoARM',
 -- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.RenderPassSubpassFeedbackCreateInfoEXT',
 -- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM',
 -- 'Vulkan.Extensions.VK_KHR_maintenance5.RenderingAreaInfoKHR',
@@ -1819,6 +1835,9 @@
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV = StructureType 1000546000
 
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR"
+pattern STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR = StructureType 1000184000
+
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT = StructureType 1000530000
 
@@ -1837,6 +1856,15 @@
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX"
 pattern STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX = StructureType 1000529000
 
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR = StructureType 1000190002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR"
+pattern STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR = StructureType 1000190001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR = StructureType 1000525000
+
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT = StructureType 1000524000
 
@@ -1921,6 +1949,9 @@
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = StructureType 1000497000
 
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT = StructureType 1000496000
+
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT"
 pattern STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = StructureType 1000351002
 
@@ -2125,6 +2156,21 @@
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = StructureType 1000425000
 
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM"
+pattern STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM = StructureType 1000424004
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM"
+pattern STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM = StructureType 1000424003
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM"
+pattern STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM = StructureType 1000424002
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM = StructureType 1000424001
+
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM = StructureType 1000424000
+
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = StructureType 1000422000
 
@@ -2167,6 +2213,9 @@
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = StructureType 1000411000
 
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI = StructureType 1000404002
+
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = StructureType 1000404001
 
@@ -2911,12 +2960,6 @@
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP"
 pattern STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = StructureType 1000191000
 
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT"
-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = StructureType 1000190002
-
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT"
-pattern STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = StructureType 1000190001
-
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = StructureType 1000190000
 
@@ -2935,9 +2978,6 @@
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = StructureType 1000185000
 
--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT"
-pattern STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = StructureType 1000184000
-
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD"
 pattern STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = StructureType 1000183000
 
@@ -4102,12 +4142,16 @@
   , STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO
   , STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV
+  , STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX
   , STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX
   , STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX
   , STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX
   , STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR
+  , STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM
   , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM
@@ -4136,6 +4180,7 @@
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM
+  , STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT
   , STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV
@@ -4204,6 +4249,11 @@
   , STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM
+  , STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM
+  , STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM
+  , STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT
   , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE
@@ -4218,6 +4268,7 @@
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT
   , STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT
+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI
   , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV
@@ -4466,15 +4517,12 @@
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV
   , STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP
-  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT
-  , STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT
   , STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD
   , STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR
   , STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD
-  , STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT
   , STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR
   , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT
@@ -5046,6 +5094,10 @@
     , "PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV"
     )
   ,
+    ( STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR
+    , "CALIBRATED_TIMESTAMP_INFO_KHR"
+    )
+  ,
     ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT
     , "PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT"
     )
@@ -5070,6 +5122,18 @@
     , "SCREEN_BUFFER_PROPERTIES_QNX"
     )
   ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR
+    , "PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR
+    , "PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR
+    , "PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR"
+    )
+  ,
     ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT
     , "PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT"
     )
@@ -5182,6 +5246,10 @@
     , "PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM"
     )
   ,
+    ( STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT
+    , "LAYER_SETTINGS_CREATE_INFO_EXT"
+    )
+  ,
     ( STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT
     , "MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT"
     )
@@ -5454,6 +5522,26 @@
     , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM"
     )
   ,
+    ( STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM
+    , "RENDER_PASS_STRIPE_SUBMIT_INFO_ARM"
+    )
+  ,
+    ( STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM
+    , "RENDER_PASS_STRIPE_INFO_ARM"
+    )
+  ,
+    ( STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM
+    , "RENDER_PASS_STRIPE_BEGIN_INFO_ARM"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM
+    , "PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM"
+    )
+  ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM
+    , "PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM"
+    )
+  ,
     ( STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT
     , "PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT"
     )
@@ -5510,6 +5598,10 @@
     , "PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT"
     )
   ,
+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI
+    , "PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI"
+    )
+  ,
     ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI
     , "PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI"
     )
@@ -6499,14 +6591,6 @@
     , "PRESENT_FRAME_TOKEN_GGP"
     )
   ,
-    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT
-    , "PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT"
-    )
-  ,
-    ( STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT
-    , "PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT"
-    )
-  ,
     ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT
     , "PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT"
     )
@@ -6529,10 +6613,6 @@
   ,
     ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD
     , "PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD"
-    )
-  ,
-    ( STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT
-    , "CALIBRATED_TIMESTAMP_INFO_EXT"
     )
   ,
     ( STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD
diff --git a/src/Vulkan/Core10/FundamentalTypes.hs b/src/Vulkan/Core10/FundamentalTypes.hs
--- a/src/Vulkan/Core10/FundamentalTypes.hs
+++ b/src/Vulkan/Core10/FundamentalTypes.hs
@@ -197,6 +197,7 @@
 -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR',
 -- 'Vulkan.Extensions.VK_QCOM_image_processing2.PhysicalDeviceImageProcessing2PropertiesQCOM',
 -- 'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingPropertiesQCOM',
+-- 'Vulkan.Extensions.VK_ARM_render_pass_striped.PhysicalDeviceRenderPassStripedPropertiesARM',
 -- 'Vulkan.Extensions.VK_EXT_sample_locations.PhysicalDeviceSampleLocationsPropertiesEXT',
 -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImagePropertiesNV',
 -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR',
@@ -350,6 +351,7 @@
 -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV',
 -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo',
 -- 'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo',
+-- 'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeInfoARM',
 -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo',
 -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT',
 -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV',
@@ -457,6 +459,7 @@
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeatures',
 -- 'Vulkan.Extensions.VK_EXT_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeaturesEXT',
 -- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderFeaturesHUAWEI',
+-- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI',
 -- 'Vulkan.Extensions.VK_AMD_device_coherent_memory.PhysicalDeviceCoherentMemoryFeaturesAMD',
 -- 'Vulkan.Extensions.VK_EXT_color_write_enable.PhysicalDeviceColorWriteEnableFeaturesEXT',
 -- 'Vulkan.Extensions.VK_NV_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesNV',
@@ -590,6 +593,7 @@
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelineFeaturesKHR',
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch.PhysicalDeviceRayTracingPositionFetchFeaturesKHR',
 -- 'Vulkan.Extensions.VK_IMG_relaxed_line_rasterization.PhysicalDeviceRelaxedLineRasterizationFeaturesIMG',
+-- 'Vulkan.Extensions.VK_ARM_render_pass_striped.PhysicalDeviceRenderPassStripedFeaturesARM',
 -- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV',
 -- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2FeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_sample_locations.PhysicalDeviceSampleLocationsPropertiesEXT',
@@ -638,7 +642,8 @@
 -- 'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout.PhysicalDeviceUniformBufferStandardLayoutFeatures',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers.PhysicalDeviceVariablePointersFeatures',
--- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorFeaturesEXT',
+-- 'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorFeaturesKHR',
+-- 'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR',
 -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.PhysicalDeviceVertexInputDynamicStateFeaturesEXT',
 -- 'Vulkan.Core12.PhysicalDeviceVulkan11Features',
 -- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties',
diff --git a/src/Vulkan/Core10/Handles.hs b/src/Vulkan/Core10/Handles.hs
--- a/src/Vulkan/Core10/Handles.hs
+++ b/src/Vulkan/Core10/Handles.hs
@@ -143,6 +143,7 @@
 -- 'Vulkan.Extensions.VK_KHR_display.getDisplayPlaneSupportedDisplaysKHR',
 -- 'Vulkan.Extensions.VK_EXT_acquire_drm_display.getDrmDisplayEXT',
 -- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.getPhysicalDeviceCalibrateableTimeDomainsEXT',
+-- 'Vulkan.Extensions.VK_KHR_calibrated_timestamps.getPhysicalDeviceCalibrateableTimeDomainsKHR',
 -- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.getPhysicalDeviceCooperativeMatrixPropertiesKHR',
 -- 'Vulkan.Extensions.VK_NV_cooperative_matrix.getPhysicalDeviceCooperativeMatrixPropertiesNV',
 -- 'Vulkan.Extensions.VK_EXT_directfb_surface.getPhysicalDeviceDirectFBPresentationSupportEXT',
@@ -368,6 +369,7 @@
 -- 'Vulkan.Extensions.VK_KHR_buffer_device_address.getBufferOpaqueCaptureAddressKHR',
 -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getBufferOpaqueCaptureDescriptorDataEXT',
 -- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.getCalibratedTimestampsEXT',
+-- 'Vulkan.Extensions.VK_KHR_calibrated_timestamps.getCalibratedTimestampsKHR',
 -- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.getCudaModuleCacheNV',
 -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.getDeferredOperationMaxConcurrencyKHR',
 -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.getDeferredOperationResultKHR',
diff --git a/src/Vulkan/Core10/Image.hs b/src/Vulkan/Core10/Image.hs
--- a/src/Vulkan/Core10/Image.hs
+++ b/src/Vulkan/Core10/Image.hs
@@ -386,12 +386,12 @@
 --     specified in @image@
 --
 -- -   #VUID-vkGetImageSubresourceLayout-format-08886# If @format@ of the
---     @image@ is a color format, @tiling@ of the @image@ is
---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' or
---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', and does not
---     have a
+--     @image@ is a color format that is not a
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
---     the @aspectMask@ member of @pSubresource@ /must/ be
+--     and @tiling@ of the @image@ is
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' or
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', the
+--     @aspectMask@ member of @pSubresource@ /must/ be
 --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
 --
 -- -   #VUID-vkGetImageSubresourceLayout-format-04462# If @format@ of the
@@ -1339,7 +1339,18 @@
 --     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'
 --     structure whose @externalFormat@ member is not @0@, @usage@ /must/
 --     not include any usages except
---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT'
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT',
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT',
+--     or 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT'
+--
+-- -   #VUID-VkImageCreateInfo-pNext-09457# If the @pNext@ chain includes a
+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'
+--     structure whose @externalFormat@ member is not @0@, and
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>
+--     feature is not enabled, @usage@ /must/ not include
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'
+--     or
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'
 --
 -- -   #VUID-VkImageCreateInfo-pNext-02398# If the @pNext@ chain includes a
 --     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'
diff --git a/src/Vulkan/Core10/OtherTypes.hs b/src/Vulkan/Core10/OtherTypes.hs
--- a/src/Vulkan/Core10/OtherTypes.hs
+++ b/src/Vulkan/Core10/OtherTypes.hs
@@ -1183,6 +1183,32 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-VkDrawIndirectCommand-pNext-09461# If the bound graphics
+--     pipeline state was created with
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'
+--     in the @pNext@ chain of
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,
+--     any member of
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@
+--     has a value other than @1@ in @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
+--
+-- -   #VUID-VkDrawIndirectCommand-None-09462# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>
+--     are used for drawing or the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, any member of the
+--     @pVertexBindingDescriptions@ parameter to the
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     call that sets this dynamic state has a value other than @1@ in
+--     @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
+--
 -- -   #VUID-VkDrawIndirectCommand-None-00500# For a given vertex buffer
 --     binding, any attribute data fetched /must/ be entirely contained
 --     within the corresponding vertex buffer binding, as described in
@@ -1262,6 +1288,32 @@
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexed'.
 --
 -- == Valid Usage
+--
+-- -   #VUID-VkDrawIndexedIndirectCommand-pNext-09461# If the bound
+--     graphics pipeline state was created with
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'
+--     in the @pNext@ chain of
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,
+--     any member of
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@
+--     has a value other than @1@ in @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
+--
+-- -   #VUID-VkDrawIndexedIndirectCommand-None-09462# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>
+--     are used for drawing or the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, any member of the
+--     @pVertexBindingDescriptions@ parameter to the
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     call that sets this dynamic state has a value other than @1@ in
+--     @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
 --
 -- -   #VUID-VkDrawIndexedIndirectCommand-robustBufferAccess2-08798# If
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
diff --git a/src/Vulkan/Core10/Pipeline.hs b/src/Vulkan/Core10/Pipeline.hs
--- a/src/Vulkan/Core10/Pipeline.hs
+++ b/src/Vulkan/Core10/Pipeline.hs
@@ -199,7 +199,7 @@
 import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PipelineShaderStageRequiredSubgroupSizeCreateInfo)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PipelineTessellationDomainOriginStateCreateInfo)
 import Vulkan.Core10.Enums.PipelineTessellationStateCreateFlags (PipelineTessellationStateCreateFlags)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PipelineVertexInputDivisorStateCreateInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PipelineVertexInputDivisorStateCreateInfoKHR)
 import Vulkan.Core10.Enums.PipelineVertexInputStateCreateFlags (PipelineVertexInputStateCreateFlags)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PipelineViewportCoarseSampleOrderStateCreateInfoNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_control (PipelineViewportDepthClipControlCreateInfoEXT)
@@ -294,6 +294,9 @@
 -- active shader stages, as well as creation information for all relevant
 -- fixed-function stages, and a pipeline layout.
 --
+-- Pipelines are created and returned as described for
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-multiple Multiple Pipeline Creation>.
+--
 -- == Valid Usage
 --
 -- -   #VUID-vkCreateGraphicsPipelines-flags-00720# If the @flags@ member
@@ -444,6 +447,11 @@
 
 -- | vkCreateComputePipelines - Creates a new compute pipeline object
 --
+-- = Description
+--
+-- Pipelines are created and returned as described for
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-multiple Multiple Pipeline Creation>.
+--
 -- == Valid Usage
 --
 -- -   #VUID-vkCreateComputePipelines-flags-00695# If the @flags@ member of
@@ -1512,11 +1520,10 @@
 --     include
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV'
 --
--- -   #VUID-VkComputePipelineCreateInfo-flags-09007# If @flags@ includes
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV',
---     then the
+-- -   #VUID-VkComputePipelineCreateInfo-flags-09007# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines ::deviceGeneratedComputePipelines>
---     feature /must/ be enabled
+--     is not enabled, @flags@ /must/ not include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV'
 --
 -- -   #VUID-VkComputePipelineCreateInfo-flags-09008# If @flags@ includes
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV',
@@ -1916,7 +1923,7 @@
 --
 -- -   #VUID-VkPipelineVertexInputStateCreateInfo-pNext-pNext# @pNext@
 --     /must/ be @NULL@ or a pointer to a valid instance of
---     'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoEXT'
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'
 --
 -- -   #VUID-VkPipelineVertexInputStateCreateInfo-sType-unique# The @sType@
 --     value of each struct in the @pNext@ chain /must/ be unique
@@ -1968,7 +1975,7 @@
   getNext PipelineVertexInputStateCreateInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineVertexInputStateCreateInfo e => b) -> Maybe b
   extends _ f
-    | Just Refl <- eqT @e @PipelineVertexInputDivisorStateCreateInfoEXT = Just f
+    | Just Refl <- eqT @e @PipelineVertexInputDivisorStateCreateInfoKHR = Just f
     | otherwise = Nothing
 
 instance ( Extendss PipelineVertexInputStateCreateInfo es
@@ -2306,14 +2313,14 @@
 -- -   #VUID-VkPipelineViewportStateCreateInfo-viewportCount-04135# If the
 --     graphics pipeline is being created with
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'
---     set then @viewportCount@ /must/ be @0@, otherwise it /must/ be
---     greater than @0@
+--     set then @viewportCount@ /must/ be @0@, otherwise @viewportCount@
+--     /must/ be greater than @0@
 --
 -- -   #VUID-VkPipelineViewportStateCreateInfo-scissorCount-04136# If the
 --     graphics pipeline is being created with
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'
---     set then @scissorCount@ /must/ be @0@, otherwise it /must/ be
---     greater than @0@
+--     set then @scissorCount@ /must/ be @0@, otherwise @scissorCount@
+--     /must/ be greater than @0@
 --
 -- -   #VUID-VkPipelineViewportStateCreateInfo-viewportWScalingEnable-01726#
 --     If the @viewportWScalingEnable@ member of a
@@ -2567,7 +2574,7 @@
     -- If the pipeline is not created with
     -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT'
     -- present then enabling depth clamp will also disable clipping primitives
-    -- to the z planes of the frustrum as described in
+    -- to the z planes of the frustum as described in
     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>.
     -- Otherwise depth clipping is controlled by the state set in
     -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT'.
diff --git a/src/Vulkan/Core10/Query.hs b/src/Vulkan/Core10/Query.hs
--- a/src/Vulkan/Core10/Query.hs
+++ b/src/Vulkan/Core10/Query.hs
@@ -395,20 +395,24 @@
 --
 -- == Valid Usage
 --
--- -   @firstQuery@ /must/ be less than the number of queries in
---     @queryPool@
+-- -   #VUID-vkGetQueryPoolResults-firstQuery-09436# @firstQuery@ /must/ be
+--     less than the number of queries in @queryPool@
 --
--- -   The sum of @firstQuery@ and @queryCount@ /must/ be less than or
---     equal to the number of queries in @queryPool@
+-- -   #VUID-vkGetQueryPoolResults-firstQuery-09437# The sum of
+--     @firstQuery@ and @queryCount@ /must/ be less than or equal to the
+--     number of queries in @queryPool@
 --
--- -   If @queryCount@ is greater than 1, @stride@ /must/ not be zero
+-- -   #VUID-vkGetQueryPoolResults-queryCount-09438# If @queryCount@ is
+--     greater than 1, @stride@ /must/ not be zero
 --
--- -   If the @queryType@ used to create @queryPool@ was
+-- -   #VUID-vkGetQueryPoolResults-queryType-09439# If the @queryType@ used
+--     to create @queryPool@ was
 --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_TIMESTAMP', @flags@ /must/
 --     not contain
 --     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT'
 --
--- -   If the @queryType@ used to create @queryPool@ was
+-- -   #VUID-vkGetQueryPoolResults-queryType-09440# If the @queryType@ used
+--     to create @queryPool@ was
 --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
 --     @flags@ /must/ not contain
 --     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT',
@@ -416,18 +420,19 @@
 --     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT',
 --     or 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT'
 --
--- -   If the @queryType@ used to create @queryPool@ was
+-- -   #VUID-vkGetQueryPoolResults-queryType-09441# If the @queryType@ used
+--     to create @queryPool@ was
 --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',
 --     the @queryPool@ /must/ have been recorded once for each pass as
 --     retrieved via a call to
 --     'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'
 --
--- -   If the @queryType@ used to create @queryPool@ was
---     @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@, then @flags@ /must/ include
---     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@
+-- -   #VUID-vkGetQueryPoolResults-queryType-09442# If the @queryType@ used
+--     to create @queryPool@ was @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@,
+--     then @flags@ /must/ include @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@
 --
--- -   If @flags@ includes @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@, then it
---     /must/ not include
+-- -   #VUID-vkGetQueryPoolResults-flags-09443# If @flags@ includes
+--     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@, then it /must/ not include
 --     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'
 --
 -- -   #VUID-vkGetQueryPoolResults-None-09401# All queries used by the
diff --git a/src/Vulkan/Core10/SparseResourceMemoryManagement.hs b/src/Vulkan/Core10/SparseResourceMemoryManagement.hs
--- a/src/Vulkan/Core10/SparseResourceMemoryManagement.hs
+++ b/src/Vulkan/Core10/SparseResourceMemoryManagement.hs
@@ -429,14 +429,14 @@
 --     semaphore
 --
 -- -   #VUID-vkQueueBindSparse-pWaitSemaphores-03245# All elements of the
---     @pWaitSemaphores@ member of all elements of @pBindInfo@ created with
---     a 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of
+--     @pWaitSemaphores@ member of all elements of @pBindInfo@ referring to
+--     a semaphore created with a
+--     'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of
 --     'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_BINARY' /must/
 --     reference a semaphore signal operation that has been submitted for
 --     execution and any
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>
---     on which it depends (if any) /must/ have also been submitted for
---     execution
+--     on which it depends /must/ have also been submitted for execution
 --
 -- == Valid Usage (Implicit)
 --
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs
@@ -428,10 +428,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDispatchBase-None-08601# For each push constant that is
@@ -440,11 +440,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDispatchBase-maintenance4-08602# If the
@@ -455,20 +454,22 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDispatchBase-None-08114# Descriptors in each bound
 --     descriptor set, specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdDispatchBase-None-08115# If the descriptors used by the
@@ -519,14 +520,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdDispatchBase-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdDispatchBase-None-08608# If a pipeline is bound to the
 --     pipeline bind point used by this command, there /must/ not have been
 --     any calls to dynamic state setting commands for any state not
@@ -569,6 +562,14 @@
 --     coordinates, that sampler /must/ not be used with any of the SPIR-V
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
+--
+-- -   #VUID-vkCmdDispatchBase-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
 --
 -- -   #VUID-vkCmdDispatchBase-uniformBuffers-06935# If any stage of the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs
@@ -285,6 +285,8 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch (PhysicalDeviceRayTracingPositionFetchFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (PhysicalDeviceRayTracingPropertiesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_IMG_relaxed_line_rasterization (PhysicalDeviceRelaxedLineRasterizationFeaturesIMG)
+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (PhysicalDeviceRenderPassStripedFeaturesARM)
+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (PhysicalDeviceRenderPassStripedPropertiesARM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PhysicalDeviceRepresentativeFragmentTestFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_robustness2 (PhysicalDeviceRobustness2FeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_robustness2 (PhysicalDeviceRobustness2PropertiesEXT)
@@ -346,8 +348,9 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PhysicalDeviceTransformFeedbackPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout (PhysicalDeviceUniformBufferStandardLayoutFeatures)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers (PhysicalDeviceVariablePointersFeatures)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorPropertiesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorPropertiesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (PhysicalDeviceVertexInputDynamicStateFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Features)
 import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Properties)
@@ -901,6 +904,7 @@
   getNext PhysicalDeviceFeatures2{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceFeatures2 e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @PhysicalDeviceRenderPassStripedFeaturesARM = Just f
     | Just Refl <- eqT @e @PhysicalDeviceRelaxedLineRasterizationFeaturesIMG = Just f
     | Just Refl <- eqT @e @PhysicalDeviceSchedulingControlsFeaturesARM = Just f
     | Just Refl <- eqT @e @PhysicalDeviceCudaKernelLaunchFeaturesNV = Just f
@@ -977,7 +981,7 @@
     | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeatures = Just f
     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateFeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = Just f
-    | Just Refl <- eqT @e @PhysicalDeviceClusterCullingShaderFeaturesHUAWEI = Just f
+    | Just Refl <- eqT @e @(PhysicalDeviceClusterCullingShaderFeaturesHUAWEI '[]) = Just f
     | Just Refl <- eqT @e @PhysicalDeviceSubpassShadingFeaturesHUAWEI = Just f
     | Just Refl <- eqT @e @PhysicalDevice4444FormatsFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetFeaturesKHR = Just f
@@ -1044,7 +1048,7 @@
     | Just Refl <- eqT @e @PhysicalDeviceRepresentativeFragmentTestFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceTransformFeedbackFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceASTCDecodeFeaturesEXT = Just f
-    | Just Refl <- eqT @e @PhysicalDeviceVertexAttributeDivisorFeaturesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceVertexAttributeDivisorFeaturesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicFloat2FeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicFloatFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicInt64Features = Just f
@@ -1185,6 +1189,7 @@
 --     'Vulkan.Extensions.VK_NV_ray_tracing_invocation_reorder.PhysicalDeviceRayTracingInvocationReorderPropertiesNV',
 --     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR',
 --     'Vulkan.Extensions.VK_NV_ray_tracing.PhysicalDeviceRayTracingPropertiesNV',
+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.PhysicalDeviceRenderPassStripedPropertiesARM',
 --     'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2PropertiesEXT',
 --     'Vulkan.Extensions.VK_EXT_sample_locations.PhysicalDeviceSampleLocationsPropertiesEXT',
 --     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.PhysicalDeviceSamplerFilterMinmaxProperties',
@@ -1207,6 +1212,7 @@
 --     'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.PhysicalDeviceTimelineSemaphoreProperties',
 --     'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT',
 --     'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesEXT',
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR',
 --     'Vulkan.Core12.PhysicalDeviceVulkan11Properties',
 --     'Vulkan.Core12.PhysicalDeviceVulkan12Properties', or
 --     'Vulkan.Core13.PhysicalDeviceVulkan13Properties'
@@ -1243,6 +1249,7 @@
   getNext PhysicalDeviceProperties2{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceProperties2 e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @PhysicalDeviceRenderPassStripedPropertiesARM = Just f
     | Just Refl <- eqT @e @PhysicalDeviceSchedulingControlsPropertiesARM = Just f
     | Just Refl <- eqT @e @PhysicalDeviceCudaKernelLaunchPropertiesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceExternalFormatResolvePropertiesANDROID = Just f
@@ -1302,6 +1309,7 @@
     | Just Refl <- eqT @e @PhysicalDeviceTransformFeedbackPropertiesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDepthStencilResolveProperties = Just f
     | Just Refl <- eqT @e @PhysicalDevicePCIBusInfoPropertiesEXT = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceVertexAttributeDivisorPropertiesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceVertexAttributeDivisorPropertiesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceTimelineSemaphoreProperties = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDescriptorIndexingProperties = Just f
diff --git a/src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs b/src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs
@@ -66,11 +66,12 @@
 --
 -- == Valid Usage
 --
--- -   @firstQuery@ /must/ be less than the number of queries in
---     @queryPool@
+-- -   #VUID-vkResetQueryPool-firstQuery-09436# @firstQuery@ /must/ be less
+--     than the number of queries in @queryPool@
 --
--- -   The sum of @firstQuery@ and @queryCount@ /must/ be less than or
---     equal to the number of queries in @queryPool@
+-- -   #VUID-vkResetQueryPool-firstQuery-09437# The sum of @firstQuery@ and
+--     @queryCount@ /must/ be less than or equal to the number of queries
+--     in @queryPool@
 --
 -- -   #VUID-vkResetQueryPool-None-02665# The
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-hostQueryReset hostQueryReset>
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs
@@ -1651,9 +1651,14 @@
 --     /must/ contain
 --     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'
 --
--- -   #VUID-VkSubpassDescription2-pColorAttachments-03070# If the
---     @VK_AMD_mixed_attachment_samples@ extension is enabled, all
---     attachments in @pColorAttachments@ that are not
+-- -   #VUID-VkSubpassDescription2-None-09456# If either of the following
+--     is enabled:
+--
+--     -   The @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   The @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     all attachments in @pColorAttachments@ that are not
 --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have a sample
 --     count that is smaller than or equal to the sample count of
 --     @pDepthStencilAttachment@ if it is not
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs
@@ -203,10 +203,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawIndirectCount-None-08601# For each push constant that
@@ -215,11 +215,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawIndirectCount-maintenance4-08602# If the
@@ -230,20 +229,22 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawIndirectCount-None-08114# Descriptors in each bound
 --     descriptor set, specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdDrawIndirectCount-None-08115# If the descriptors used by
@@ -296,14 +297,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdDrawIndirectCount-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdDrawIndirectCount-None-08608# If a pipeline is bound to
 --     the pipeline bind point used by this command, there /must/ not have
 --     been any calls to dynamic state setting commands for any state not
@@ -347,6 +340,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdDrawIndirectCount-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdDrawIndirectCount-uniformBuffers-06935# If any stage of
 --     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline
 --     bind point used by this command accesses a uniform buffer, and that
@@ -947,16 +948,6 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
--- -   #VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07934# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state enabled, then the @sampleLocationsPerPixel@ member of
---     @pSampleLocationsInfo@ in the last call to
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ equal the @rasterizationSamples@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
 -- -   #VUID-vkCmdDrawIndirectCount-None-07840# If the bound graphics
 --     pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
@@ -1437,22 +1428,36 @@
 --
 -- -   #VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07284#
 --     If rasterization is not disabled in the bound graphics pipeline, and
---     none of the @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
+--     none of the following is enabled:
 --
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the currently bound graphics
+--     pipeline /must/ be the same as the current subpass color and\/or
+--     depth\/stencil attachments
+--
 -- -   #VUID-vkCmdDrawIndirectCount-None-08644# If a shader object is bound
 --     to any graphics stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
 --     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the
---     @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then the most recent call to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then the most recent call to
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
 --     in the current command buffer /must/ have set @rasterizationSamples@
 --     to be the same as the number of samples for the current render pass
@@ -1554,42 +1559,42 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
 --     used to create the currently bound graphics pipeline
 --
--- -   #VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08911#
+-- -   #VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08912#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is enabled, and the current render pass instance was begun
---     with
+--     feature is not enabled, and the current render pass instance was
+--     begun with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ not equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
+--     array with a @imageView@ equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound graphics pipeline, or the
---     corresponding element of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
---     if it exists, /must/ be
+--     used to create the currently bound pipeline equal to
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
--- -   #VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08912#
+-- -   #VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08911#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is not enabled, and the current render pass instance was
---     begun with
+--     feature is enabled, and the current render pass instance was begun
+--     with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
+--     array with a @imageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound pipeline equal to
+--     used to create the currently bound graphics pipeline, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
 -- -   #VUID-vkCmdDrawIndirectCount-colorAttachmentCount-09362# If the
@@ -1997,9 +2002,7 @@
 --     the currently bound graphics pipeline
 --
 -- -   #VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07286#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -2013,9 +2016,7 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
 --
 -- -   #VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07287#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -4051,10 +4052,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08601# For each push
@@ -4063,11 +4064,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawIndexedIndirectCount-maintenance4-08602# If the
@@ -4078,20 +4078,22 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08114# Descriptors in each
 --     bound descriptor set, specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08115# If the descriptors
@@ -4144,14 +4146,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08608# If a pipeline is
 --     bound to the pipeline bind point used by this command, there /must/
 --     not have been any calls to dynamic state setting commands for any
@@ -4195,6 +4189,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdDrawIndexedIndirectCount-uniformBuffers-06935# If any
 --     stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the
 --     pipeline bind point used by this command accesses a uniform buffer,
@@ -4801,16 +4803,6 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
--- -   #VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07934#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state enabled, then the @sampleLocationsPerPixel@ member of
---     @pSampleLocationsInfo@ in the last call to
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ equal the @rasterizationSamples@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
 -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07840# If the bound
 --     graphics pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
@@ -5292,22 +5284,36 @@
 --
 -- -   #VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07284#
 --     If rasterization is not disabled in the bound graphics pipeline, and
---     none of the @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
+--     none of the following is enabled:
 --
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the currently bound graphics
+--     pipeline /must/ be the same as the current subpass color and\/or
+--     depth\/stencil attachments
+--
 -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08644# If a shader object
 --     is bound to any graphics stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
 --     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the
---     @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then the most recent call to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then the most recent call to
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
 --     in the current command buffer /must/ have set @rasterizationSamples@
 --     to be the same as the number of samples for the current render pass
@@ -5410,42 +5416,42 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
 --     used to create the currently bound graphics pipeline
 --
--- -   #VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08911#
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08912#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is enabled, and the current render pass instance was begun
---     with
+--     feature is not enabled, and the current render pass instance was
+--     begun with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ not equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
+--     array with a @imageView@ equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound graphics pipeline, or the
---     corresponding element of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
---     if it exists, /must/ be
+--     used to create the currently bound pipeline equal to
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
--- -   #VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08912#
+-- -   #VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08911#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is not enabled, and the current render pass instance was
---     begun with
+--     feature is enabled, and the current render pass instance was begun
+--     with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
+--     array with a @imageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound pipeline equal to
+--     used to create the currently bound graphics pipeline, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
 -- -   #VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-09362# If
@@ -5854,9 +5860,7 @@
 --     the currently bound graphics pipeline
 --
 -- -   #VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07286#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -5870,9 +5874,7 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
 --
 -- -   #VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07287#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
diff --git a/src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs b/src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs
--- a/src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs
+++ b/src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs
@@ -1537,6 +1537,14 @@
 --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',
 --     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
 --
+-- -   #VUID-VkCopyImageInfo2-srcImage-09460# If @srcImage@ and @dstImage@
+--     are the same, and any elements of @pRegions@ contains the
+--     @srcSubresource@ and @dstSubresource@ with matching @mipLevel@ and
+--     overlapping array layers, then the @srcImageLayout@ and
+--     @dstImageLayout@ /must/ be
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'
+--
 -- -   #VUID-VkCopyImageInfo2-dstImage-01996# The
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
 --     of @dstImage@ /must/ contain
@@ -2071,6 +2079,14 @@
 --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',
 --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'
 --     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'
+--
+-- -   #VUID-VkBlitImageInfo2-srcImage-09459# If @srcImage@ and @dstImage@
+--     are the same, and an elements of @pRegions@ contains the
+--     @srcSubresource@ and @dstSubresource@ with matching @mipLevel@ and
+--     overlapping array layers, then the @srcImageLayout@ and
+--     @dstImageLayout@ /must/ be
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or
+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'
 --
 -- -   #VUID-VkBlitImageInfo2-dstImage-02000# The
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
diff --git a/src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs b/src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs
--- a/src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs
+++ b/src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs
@@ -78,6 +78,7 @@
 import Vulkan.CStruct.Extends (PokeChain)
 import Vulkan.CStruct.Extends (PokeChain(..))
 import Vulkan.Core10.FundamentalTypes (Rect2D)
+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (RenderPassStripeBeginInfoARM)
 import Vulkan.Core13.Enums.RenderingFlagBits (RenderingFlags)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingFragmentDensityMapAttachmentInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingFragmentShadingRateAttachmentInfoKHR)
@@ -989,7 +990,12 @@
 --     element of @pColorAttachments@ is
 --     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID',
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@
---     /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE'
+--     /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE' If the @pNext@
+--     chain contains a
+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeBeginInfoARM'
+--     structure, the union of stripe areas defined by the elements of
+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeInfoARM'::@pStripeInfos@
+--     /must/ cover the @renderArea@
 --
 -- == Valid Usage (Implicit)
 --
@@ -1003,6 +1009,7 @@
 --     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT',
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX',
 --     'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM',
+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeBeginInfoARM',
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT',
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'
@@ -1075,6 +1082,7 @@
   getNext RenderingInfo{..} = next
   extends :: forall e b proxy. Typeable e => proxy e -> (Extends RenderingInfo e => b) -> Maybe b
   extends _ f
+    | Just Refl <- eqT @e @RenderPassStripeBeginInfoARM = Just f
     | Just Refl <- eqT @e @MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM = Just f
     | Just Refl <- eqT @e @MultiviewPerViewAttributesInfoNVX = Just f
     | Just Refl <- eqT @e @RenderingFragmentDensityMapAttachmentInfoEXT = Just f
diff --git a/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs b/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs
--- a/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs
+++ b/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs
@@ -118,6 +118,7 @@
 import Vulkan.Core10.Handles (Queue(..))
 import Vulkan.Core10.Handles (Queue(Queue))
 import Vulkan.Core10.Handles (Queue_T)
+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (RenderPassStripeSubmitInfoARM)
 import Vulkan.Core10.Enums.Result (Result)
 import Vulkan.Core10.Enums.Result (Result(..))
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationsInfoEXT)
@@ -1280,15 +1281,16 @@
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-execution happens-after>
 -- another timestamp write in the same submission /must/ not have a lower
 -- value unless its value overflows the maximum supported integer bit width
--- of the query. If @VK_EXT_calibrated_timestamps@ is enabled, this extends
--- to timestamp writes across all submissions on the same logical device:
--- any timestamp write that
+-- of the query. If @VK_KHR_calibrated_timestamps@ or
+-- @VK_EXT_calibrated_timestamps@ is enabled, this extends to timestamp
+-- writes across all submissions on the same logical device: any timestamp
+-- write that
 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-execution happens-after>
 -- another /must/ not have a lower value unless its value overflows the
 -- maximum supported integer bit width of the query. Timestamps written by
 -- this command /must/ be in the
--- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.TIME_DOMAIN_DEVICE_EXT'
--- <VkTimeDomainEXT.html time domain>. If an overflow occurs, the timestamp
+-- 'Vulkan.Extensions.VK_KHR_calibrated_timestamps.TIME_DOMAIN_DEVICE_KHR'
+-- <VkTimeDomainKHR.html time domain>. If an overflow occurs, the timestamp
 -- value /must/ wrap back to zero.
 --
 -- Note
@@ -1298,8 +1300,8 @@
 -- timestamp from a newer one to determine the execution time of a sequence
 -- of commands is only a reliable measurement if the two timestamp writes
 -- were performed in the same submission, or if the writes were performed
--- on the same logical device and @VK_EXT_calibrated_timestamps@ is
--- enabled.
+-- on the same logical device and @VK_KHR_calibrated_timestamps@ or
+-- @VK_EXT_calibrated_timestamps@ is enabled.
 --
 -- If 'cmdWriteTimestamp2' is called while executing a render pass instance
 -- that has multiview enabled, the timestamp uses N consecutive query
@@ -5197,6 +5199,7 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
 -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2',
+-- 'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeSubmitInfoARM',
 -- 'Vulkan.Core10.Handles.Semaphore',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType', 'SubmitInfo2'
 data SemaphoreSubmitInfo = SemaphoreSubmitInfo
@@ -5283,14 +5286,34 @@
 -- -   #VUID-VkCommandBufferSubmitInfo-deviceMask-03891# If @deviceMask@ is
 --     not @0@, it /must/ be a valid device mask
 --
+-- -   #VUID-VkCommandBufferSubmitInfo-commandBuffer-09445# If any render
+--     pass instance in @commandBuffer@ was recorded with a
+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeBeginInfoARM'
+--     structure in its pNext chain, a
+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeSubmitInfoARM'
+--     /must/ be included in the @pNext@ chain
+--
+-- -   #VUID-VkCommandBufferSubmitInfo-pNext-09446# If a
+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeSubmitInfoARM'
+--     is included in the @pNext@ chain, the value of
+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeSubmitInfoARM'::@stripeSemaphoreInfoCount@
+--     /must/ be equal to the sum of the
+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeBeginInfoARM'::@stripeInfoCount@
+--     parameters provided to render pass instances recorded in
+--     @commandBuffer@
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkCommandBufferSubmitInfo-sType-sType# @sType@ /must/ be
 --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO'
 --
 -- -   #VUID-VkCommandBufferSubmitInfo-pNext-pNext# @pNext@ /must/ be
---     @NULL@
+--     @NULL@ or a pointer to a valid instance of
+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeSubmitInfoARM'
 --
+-- -   #VUID-VkCommandBufferSubmitInfo-sType-unique# The @sType@ value of
+--     each struct in the @pNext@ chain /must/ be unique
+--
 -- -   #VUID-VkCommandBufferSubmitInfo-commandBuffer-parameter#
 --     @commandBuffer@ /must/ be a valid
 --     'Vulkan.Core10.Handles.CommandBuffer' handle
@@ -5301,8 +5324,10 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>,
 -- 'Vulkan.Core10.Handles.CommandBuffer',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType', 'SubmitInfo2'
-data CommandBufferSubmitInfo = CommandBufferSubmitInfo
-  { -- | @commandBuffer@ is a 'Vulkan.Core10.Handles.CommandBuffer' to be
+data CommandBufferSubmitInfo (es :: [Type]) = CommandBufferSubmitInfo
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | @commandBuffer@ is a 'Vulkan.Core10.Handles.CommandBuffer' to be
     -- submitted for execution.
     commandBuffer :: Ptr CommandBuffer_T
   , -- | @deviceMask@ is a bitmask indicating which devices in a device group
@@ -5310,44 +5335,54 @@
     -- setting all bits corresponding to valid devices in the group to @1@.
     deviceMask :: Word32
   }
-  deriving (Typeable, Eq)
+  deriving (Typeable)
 #if defined(GENERIC_INSTANCES)
-deriving instance Generic (CommandBufferSubmitInfo)
+deriving instance Generic (CommandBufferSubmitInfo (es :: [Type]))
 #endif
-deriving instance Show CommandBufferSubmitInfo
+deriving instance Show (Chain es) => Show (CommandBufferSubmitInfo es)
 
-instance ToCStruct CommandBufferSubmitInfo where
+instance Extensible CommandBufferSubmitInfo where
+  extensibleTypeName = "CommandBufferSubmitInfo"
+  setNext CommandBufferSubmitInfo{..} next' = CommandBufferSubmitInfo{next = next', ..}
+  getNext CommandBufferSubmitInfo{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends CommandBufferSubmitInfo e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @RenderPassStripeSubmitInfoARM = Just f
+    | otherwise = Nothing
+
+instance ( Extendss CommandBufferSubmitInfo es
+         , PokeChain es ) => ToCStruct (CommandBufferSubmitInfo es) where
   withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p CommandBufferSubmitInfo{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr (Ptr CommandBuffer_T))) (commandBuffer)
-    poke ((p `plusPtr` 24 :: Ptr Word32)) (deviceMask)
-    f
+  pokeCStruct p CommandBufferSubmitInfo{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr CommandBuffer_T))) (commandBuffer)
+    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (deviceMask)
+    lift $ f
   cStructSize = 32
   cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr (Ptr CommandBuffer_T))) (zero)
-    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)
-    f
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr CommandBuffer_T))) (zero)
+    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)
+    lift $ f
 
-instance FromCStruct CommandBufferSubmitInfo where
+instance ( Extendss CommandBufferSubmitInfo es
+         , PeekChain es ) => FromCStruct (CommandBufferSubmitInfo es) where
   peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
     commandBuffer <- peek @(Ptr CommandBuffer_T) ((p `plusPtr` 16 :: Ptr (Ptr CommandBuffer_T)))
     deviceMask <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
     pure $ CommandBufferSubmitInfo
-             commandBuffer deviceMask
-
-instance Storable CommandBufferSubmitInfo where
-  sizeOf ~_ = 32
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
+             next commandBuffer deviceMask
 
-instance Zero CommandBufferSubmitInfo where
+instance es ~ '[] => Zero (CommandBufferSubmitInfo es) where
   zero = CommandBufferSubmitInfo
+           ()
            zero
            zero
 
@@ -5487,7 +5522,7 @@
   , -- | @pCommandBufferInfos@ is a pointer to an array of
     -- 'CommandBufferSubmitInfo' structures describing command buffers to
     -- execute in the batch.
-    commandBufferInfos :: Vector CommandBufferSubmitInfo
+    commandBufferInfos :: Vector (SomeStruct CommandBufferSubmitInfo)
   , -- | @pSignalSemaphoreInfos@ is a pointer to an array of
     -- 'SemaphoreSubmitInfo' describing
     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>.
@@ -5525,9 +5560,9 @@
     lift $ Data.Vector.imapM_ (\i e -> poke (pPWaitSemaphoreInfos' `plusPtr` (48 * (i)) :: Ptr SemaphoreSubmitInfo) (e)) (waitSemaphoreInfos)
     lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr SemaphoreSubmitInfo))) (pPWaitSemaphoreInfos')
     lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (commandBufferInfos)) :: Word32))
-    pPCommandBufferInfos' <- ContT $ allocaBytes @CommandBufferSubmitInfo ((Data.Vector.length (commandBufferInfos)) * 32)
-    lift $ Data.Vector.imapM_ (\i e -> poke (pPCommandBufferInfos' `plusPtr` (32 * (i)) :: Ptr CommandBufferSubmitInfo) (e)) (commandBufferInfos)
-    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr CommandBufferSubmitInfo))) (pPCommandBufferInfos')
+    pPCommandBufferInfos' <- ContT $ allocaBytes @(CommandBufferSubmitInfo _) ((Data.Vector.length (commandBufferInfos)) * 32)
+    Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPCommandBufferInfos' `plusPtr` (32 * (i)) :: Ptr (CommandBufferSubmitInfo _))) (e) . ($ ())) (commandBufferInfos)
+    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr (CommandBufferSubmitInfo _)))) (pPCommandBufferInfos')
     lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (signalSemaphoreInfos)) :: Word32))
     pPSignalSemaphoreInfos' <- ContT $ allocaBytes @SemaphoreSubmitInfo ((Data.Vector.length (signalSemaphoreInfos)) * 48)
     lift $ Data.Vector.imapM_ (\i e -> poke (pPSignalSemaphoreInfos' `plusPtr` (48 * (i)) :: Ptr SemaphoreSubmitInfo) (e)) (signalSemaphoreInfos)
@@ -5551,8 +5586,8 @@
     pWaitSemaphoreInfos <- peek @(Ptr SemaphoreSubmitInfo) ((p `plusPtr` 24 :: Ptr (Ptr SemaphoreSubmitInfo)))
     pWaitSemaphoreInfos' <- generateM (fromIntegral waitSemaphoreInfoCount) (\i -> peekCStruct @SemaphoreSubmitInfo ((pWaitSemaphoreInfos `advancePtrBytes` (48 * (i)) :: Ptr SemaphoreSubmitInfo)))
     commandBufferInfoCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))
-    pCommandBufferInfos <- peek @(Ptr CommandBufferSubmitInfo) ((p `plusPtr` 40 :: Ptr (Ptr CommandBufferSubmitInfo)))
-    pCommandBufferInfos' <- generateM (fromIntegral commandBufferInfoCount) (\i -> peekCStruct @CommandBufferSubmitInfo ((pCommandBufferInfos `advancePtrBytes` (32 * (i)) :: Ptr CommandBufferSubmitInfo)))
+    pCommandBufferInfos <- peek @(Ptr (CommandBufferSubmitInfo _)) ((p `plusPtr` 40 :: Ptr (Ptr (CommandBufferSubmitInfo _))))
+    pCommandBufferInfos' <- generateM (fromIntegral commandBufferInfoCount) (\i -> peekSomeCStruct (forgetExtensions ((pCommandBufferInfos `advancePtrBytes` (32 * (i)) :: Ptr (CommandBufferSubmitInfo _)))))
     signalSemaphoreInfoCount <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))
     pSignalSemaphoreInfos <- peek @(Ptr SemaphoreSubmitInfo) ((p `plusPtr` 56 :: Ptr (Ptr SemaphoreSubmitInfo)))
     pSignalSemaphoreInfos' <- generateM (fromIntegral signalSemaphoreInfoCount) (\i -> peekCStruct @SemaphoreSubmitInfo ((pSignalSemaphoreInfos `advancePtrBytes` (48 * (i)) :: Ptr SemaphoreSubmitInfo)))
diff --git a/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs-boot b/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs-boot
--- a/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs-boot
+++ b/src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs-boot
@@ -28,12 +28,15 @@
          , PeekChain es ) => FromCStruct (BufferMemoryBarrier2 es)
 
 
-data CommandBufferSubmitInfo
+type role CommandBufferSubmitInfo nominal
+data CommandBufferSubmitInfo (es :: [Type])
 
-instance ToCStruct CommandBufferSubmitInfo
-instance Show CommandBufferSubmitInfo
+instance ( Extendss CommandBufferSubmitInfo es
+         , PokeChain es ) => ToCStruct (CommandBufferSubmitInfo es)
+instance Show (Chain es) => Show (CommandBufferSubmitInfo es)
 
-instance FromCStruct CommandBufferSubmitInfo
+instance ( Extendss CommandBufferSubmitInfo es
+         , PeekChain es ) => FromCStruct (CommandBufferSubmitInfo es)
 
 
 data DependencyInfo
diff --git a/src/Vulkan/Dynamic.hs b/src/Vulkan/Dynamic.hs
--- a/src/Vulkan/Dynamic.hs
+++ b/src/Vulkan/Dynamic.hs
@@ -66,7 +66,7 @@
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (BufferMemoryRequirementsInfo2)
 import {-# SOURCE #-} Vulkan.Core10.Handles (BufferView)
 import {-# SOURCE #-} Vulkan.Core10.BufferView (BufferViewCreateInfo)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_calibrated_timestamps (CalibratedTimestampInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_calibrated_timestamps (CalibratedTimestampInfoKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (CheckpointData2NV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints (CheckpointDataNV)
 import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ClearAttachment)
@@ -438,7 +438,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.Handles (SwapchainKHR)
 import {-# SOURCE #-} Vulkan.Core11.Enums.TessellationDomainOrigin (TessellationDomainOrigin)
 import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_tile_properties (TilePropertiesQCOM)
-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_calibrated_timestamps (TimeDomainEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_calibrated_timestamps (TimeDomainKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_cache (ValidationCacheCreateInfoEXT)
 import {-# SOURCE #-} Vulkan.Extensions.Handles (ValidationCacheEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (VertexInputAttributeDescription2EXT)
@@ -532,7 +532,7 @@
   , pVkGetPhysicalDeviceDisplayPlaneProperties2KHR :: FunPtr (Ptr PhysicalDevice_T -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr DisplayPlaneProperties2KHR) -> IO Result)
   , pVkGetDisplayModeProperties2KHR :: FunPtr (Ptr PhysicalDevice_T -> DisplayKHR -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr DisplayModeProperties2KHR) -> IO Result)
   , pVkGetDisplayPlaneCapabilities2KHR :: FunPtr (Ptr PhysicalDevice_T -> ("pDisplayPlaneInfo" ::: Ptr DisplayPlaneInfo2KHR) -> ("pCapabilities" ::: Ptr DisplayPlaneCapabilities2KHR) -> IO Result)
-  , pVkGetPhysicalDeviceCalibrateableTimeDomainsEXT :: FunPtr (Ptr PhysicalDevice_T -> ("pTimeDomainCount" ::: Ptr Word32) -> ("pTimeDomains" ::: Ptr TimeDomainEXT) -> IO Result)
+  , pVkGetPhysicalDeviceCalibrateableTimeDomainsKHR :: FunPtr (Ptr PhysicalDevice_T -> ("pTimeDomainCount" ::: Ptr Word32) -> ("pTimeDomains" ::: Ptr TimeDomainKHR) -> IO Result)
   , pVkCreateDebugUtilsMessengerEXT :: FunPtr (Ptr Instance_T -> ("pCreateInfo" ::: Ptr DebugUtilsMessengerCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pMessenger" ::: Ptr DebugUtilsMessengerEXT) -> IO Result)
   , pVkDestroyDebugUtilsMessengerEXT :: FunPtr (Ptr Instance_T -> DebugUtilsMessengerEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())
   , pVkSubmitDebugUtilsMessageEXT :: FunPtr (Ptr Instance_T -> DebugUtilsMessageSeverityFlagBitsEXT -> ("messageTypes" ::: DebugUtilsMessageTypeFlagsEXT) -> ("pCallbackData" ::: Ptr (SomeStruct DebugUtilsMessengerCallbackDataEXT)) -> IO ())
@@ -745,7 +745,8 @@
   vkGetPhysicalDeviceDisplayPlaneProperties2KHR <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"#)
   vkGetDisplayModeProperties2KHR <- getInstanceProcAddr' handle (Ptr "vkGetDisplayModeProperties2KHR"#)
   vkGetDisplayPlaneCapabilities2KHR <- getInstanceProcAddr' handle (Ptr "vkGetDisplayPlaneCapabilities2KHR"#)
-  vkGetPhysicalDeviceCalibrateableTimeDomainsEXT <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT"#)
+  vkGetPhysicalDeviceCalibrateableTimeDomainsKHR <- getFirstInstanceProcAddr [ (Ptr "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT"#)
+                                                                             , (Ptr "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR"#) ]
   vkCreateDebugUtilsMessengerEXT <- getInstanceProcAddr' handle (Ptr "vkCreateDebugUtilsMessengerEXT"#)
   vkDestroyDebugUtilsMessengerEXT <- getInstanceProcAddr' handle (Ptr "vkDestroyDebugUtilsMessengerEXT"#)
   vkSubmitDebugUtilsMessageEXT <- getInstanceProcAddr' handle (Ptr "vkSubmitDebugUtilsMessageEXT"#)
@@ -836,7 +837,7 @@
     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr DisplayPlaneProperties2KHR) -> IO Result) vkGetPhysicalDeviceDisplayPlaneProperties2KHR)
     (castFunPtr @_ @(Ptr PhysicalDevice_T -> DisplayKHR -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr DisplayModeProperties2KHR) -> IO Result) vkGetDisplayModeProperties2KHR)
     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pDisplayPlaneInfo" ::: Ptr DisplayPlaneInfo2KHR) -> ("pCapabilities" ::: Ptr DisplayPlaneCapabilities2KHR) -> IO Result) vkGetDisplayPlaneCapabilities2KHR)
-    (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pTimeDomainCount" ::: Ptr Word32) -> ("pTimeDomains" ::: Ptr TimeDomainEXT) -> IO Result) vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)
+    (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pTimeDomainCount" ::: Ptr Word32) -> ("pTimeDomains" ::: Ptr TimeDomainKHR) -> IO Result) vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)
     (castFunPtr @_ @(Ptr Instance_T -> ("pCreateInfo" ::: Ptr DebugUtilsMessengerCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pMessenger" ::: Ptr DebugUtilsMessengerEXT) -> IO Result) vkCreateDebugUtilsMessengerEXT)
     (castFunPtr @_ @(Ptr Instance_T -> DebugUtilsMessengerEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyDebugUtilsMessengerEXT)
     (castFunPtr @_ @(Ptr Instance_T -> DebugUtilsMessageSeverityFlagBitsEXT -> ("messageTypes" ::: DebugUtilsMessageTypeFlagsEXT) -> ("pCallbackData" ::: Ptr (SomeStruct DebugUtilsMessengerCallbackDataEXT)) -> IO ()) vkSubmitDebugUtilsMessageEXT)
@@ -1068,7 +1069,7 @@
   , pVkGetDescriptorSetLayoutSupport :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct DescriptorSetLayoutCreateInfo)) -> ("pSupport" ::: Ptr (SomeStruct DescriptorSetLayoutSupport)) -> IO ())
   , pVkGetShaderInfoAMD :: FunPtr (Ptr Device_T -> Pipeline -> ShaderStageFlagBits -> ShaderInfoTypeAMD -> ("pInfoSize" ::: Ptr CSize) -> ("pInfo" ::: Ptr ()) -> IO Result)
   , pVkSetLocalDimmingAMD :: FunPtr (Ptr Device_T -> SwapchainKHR -> ("localDimmingEnable" ::: Bool32) -> IO ())
-  , pVkGetCalibratedTimestampsEXT :: FunPtr (Ptr Device_T -> ("timestampCount" ::: Word32) -> ("pTimestampInfos" ::: Ptr CalibratedTimestampInfoEXT) -> ("pTimestamps" ::: Ptr Word64) -> ("pMaxDeviation" ::: Ptr Word64) -> IO Result)
+  , pVkGetCalibratedTimestampsKHR :: FunPtr (Ptr Device_T -> ("timestampCount" ::: Word32) -> ("pTimestampInfos" ::: Ptr CalibratedTimestampInfoKHR) -> ("pTimestamps" ::: Ptr Word64) -> ("pMaxDeviation" ::: Ptr Word64) -> IO Result)
   , pVkSetDebugUtilsObjectNameEXT :: FunPtr (Ptr Device_T -> ("pNameInfo" ::: Ptr DebugUtilsObjectNameInfoEXT) -> IO Result)
   , pVkSetDebugUtilsObjectTagEXT :: FunPtr (Ptr Device_T -> ("pTagInfo" ::: Ptr DebugUtilsObjectTagInfoEXT) -> IO Result)
   , pVkQueueBeginDebugUtilsLabelEXT :: FunPtr (Ptr Queue_T -> ("pLabelInfo" ::: Ptr DebugUtilsLabelEXT) -> IO ())
@@ -2072,7 +2073,8 @@
                                                             , (Ptr "vkGetDescriptorSetLayoutSupport"#) ]
   vkGetShaderInfoAMD <- getDeviceProcAddr' handle (Ptr "vkGetShaderInfoAMD"#)
   vkSetLocalDimmingAMD <- getDeviceProcAddr' handle (Ptr "vkSetLocalDimmingAMD"#)
-  vkGetCalibratedTimestampsEXT <- getDeviceProcAddr' handle (Ptr "vkGetCalibratedTimestampsEXT"#)
+  vkGetCalibratedTimestampsKHR <- getFirstDeviceProcAddr [ (Ptr "vkGetCalibratedTimestampsEXT"#)
+                                                         , (Ptr "vkGetCalibratedTimestampsKHR"#) ]
   vkSetDebugUtilsObjectNameEXT <- getDeviceProcAddr' handle (Ptr "vkSetDebugUtilsObjectNameEXT"#)
   vkSetDebugUtilsObjectTagEXT <- getDeviceProcAddr' handle (Ptr "vkSetDebugUtilsObjectTagEXT"#)
   vkQueueBeginDebugUtilsLabelEXT <- getDeviceProcAddr' handle (Ptr "vkQueueBeginDebugUtilsLabelEXT"#)
@@ -2602,7 +2604,7 @@
     (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct DescriptorSetLayoutCreateInfo)) -> ("pSupport" ::: Ptr (SomeStruct DescriptorSetLayoutSupport)) -> IO ()) vkGetDescriptorSetLayoutSupport)
     (castFunPtr @_ @(Ptr Device_T -> Pipeline -> ShaderStageFlagBits -> ShaderInfoTypeAMD -> ("pInfoSize" ::: Ptr CSize) -> ("pInfo" ::: Ptr ()) -> IO Result) vkGetShaderInfoAMD)
     (castFunPtr @_ @(Ptr Device_T -> SwapchainKHR -> ("localDimmingEnable" ::: Bool32) -> IO ()) vkSetLocalDimmingAMD)
-    (castFunPtr @_ @(Ptr Device_T -> ("timestampCount" ::: Word32) -> ("pTimestampInfos" ::: Ptr CalibratedTimestampInfoEXT) -> ("pTimestamps" ::: Ptr Word64) -> ("pMaxDeviation" ::: Ptr Word64) -> IO Result) vkGetCalibratedTimestampsEXT)
+    (castFunPtr @_ @(Ptr Device_T -> ("timestampCount" ::: Word32) -> ("pTimestampInfos" ::: Ptr CalibratedTimestampInfoKHR) -> ("pTimestamps" ::: Ptr Word64) -> ("pMaxDeviation" ::: Ptr Word64) -> IO Result) vkGetCalibratedTimestampsKHR)
     (castFunPtr @_ @(Ptr Device_T -> ("pNameInfo" ::: Ptr DebugUtilsObjectNameInfoEXT) -> IO Result) vkSetDebugUtilsObjectNameEXT)
     (castFunPtr @_ @(Ptr Device_T -> ("pTagInfo" ::: Ptr DebugUtilsObjectTagInfoEXT) -> IO Result) vkSetDebugUtilsObjectTagEXT)
     (castFunPtr @_ @(Ptr Queue_T -> ("pLabelInfo" ::: Ptr DebugUtilsLabelEXT) -> IO ()) vkQueueBeginDebugUtilsLabelEXT)
diff --git a/src/Vulkan/Extensions.hs b/src/Vulkan/Extensions.hs
--- a/src/Vulkan/Extensions.hs
+++ b/src/Vulkan/Extensions.hs
@@ -28,6 +28,7 @@
                           , module Vulkan.Extensions.VK_ANDROID_external_format_resolve
                           , module Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer
                           , module Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access
+                          , module Vulkan.Extensions.VK_ARM_render_pass_striped
                           , module Vulkan.Extensions.VK_ARM_scheduling_controls
                           , module Vulkan.Extensions.VK_ARM_shader_core_builtins
                           , module Vulkan.Extensions.VK_ARM_shader_core_properties
@@ -92,6 +93,7 @@
                           , module Vulkan.Extensions.VK_EXT_image_view_min_lod
                           , module Vulkan.Extensions.VK_EXT_index_type_uint8
                           , module Vulkan.Extensions.VK_EXT_inline_uniform_block
+                          , module Vulkan.Extensions.VK_EXT_layer_settings
                           , module Vulkan.Extensions.VK_EXT_legacy_dithering
                           , module Vulkan.Extensions.VK_EXT_line_rasterization
                           , module Vulkan.Extensions.VK_EXT_load_store_op_none
@@ -180,6 +182,7 @@
                           , module Vulkan.Extensions.VK_KHR_android_surface
                           , module Vulkan.Extensions.VK_KHR_bind_memory2
                           , module Vulkan.Extensions.VK_KHR_buffer_device_address
+                          , module Vulkan.Extensions.VK_KHR_calibrated_timestamps
                           , module Vulkan.Extensions.VK_KHR_cooperative_matrix
                           , module Vulkan.Extensions.VK_KHR_copy_commands2
                           , module Vulkan.Extensions.VK_KHR_create_renderpass2
@@ -261,6 +264,7 @@
                           , module Vulkan.Extensions.VK_KHR_timeline_semaphore
                           , module Vulkan.Extensions.VK_KHR_uniform_buffer_standard_layout
                           , module Vulkan.Extensions.VK_KHR_variable_pointers
+                          , module Vulkan.Extensions.VK_KHR_vertex_attribute_divisor
                           , module Vulkan.Extensions.VK_KHR_vulkan_memory_model
                           , module Vulkan.Extensions.VK_KHR_wayland_surface
                           , module Vulkan.Extensions.VK_KHR_win32_keyed_mutex
@@ -373,6 +377,7 @@
 import Vulkan.Extensions.VK_ANDROID_external_format_resolve
 import Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer
 import Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access
+import Vulkan.Extensions.VK_ARM_render_pass_striped
 import Vulkan.Extensions.VK_ARM_scheduling_controls
 import Vulkan.Extensions.VK_ARM_shader_core_builtins
 import Vulkan.Extensions.VK_ARM_shader_core_properties
@@ -437,6 +442,7 @@
 import Vulkan.Extensions.VK_EXT_image_view_min_lod
 import Vulkan.Extensions.VK_EXT_index_type_uint8
 import Vulkan.Extensions.VK_EXT_inline_uniform_block
+import Vulkan.Extensions.VK_EXT_layer_settings
 import Vulkan.Extensions.VK_EXT_legacy_dithering
 import Vulkan.Extensions.VK_EXT_line_rasterization
 import Vulkan.Extensions.VK_EXT_load_store_op_none
@@ -525,6 +531,7 @@
 import Vulkan.Extensions.VK_KHR_android_surface
 import Vulkan.Extensions.VK_KHR_bind_memory2
 import Vulkan.Extensions.VK_KHR_buffer_device_address
+import Vulkan.Extensions.VK_KHR_calibrated_timestamps
 import Vulkan.Extensions.VK_KHR_cooperative_matrix
 import Vulkan.Extensions.VK_KHR_copy_commands2
 import Vulkan.Extensions.VK_KHR_create_renderpass2
@@ -606,6 +613,7 @@
 import Vulkan.Extensions.VK_KHR_timeline_semaphore
 import Vulkan.Extensions.VK_KHR_uniform_buffer_standard_layout
 import Vulkan.Extensions.VK_KHR_variable_pointers
+import Vulkan.Extensions.VK_KHR_vertex_attribute_divisor
 import Vulkan.Extensions.VK_KHR_vulkan_memory_model
 import Vulkan.Extensions.VK_KHR_wayland_surface
 import Vulkan.Extensions.VK_KHR_win32_keyed_mutex
diff --git a/src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs b/src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs
--- a/src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs
+++ b/src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs
@@ -540,15 +540,8 @@
 --
 -- = Description
 --
--- The implementation will create a pipeline in each element of
--- @pPipelines@ from the corresponding element of @pCreateInfos@. If
--- creation of any pipeline fails, that pipeline will be set to
--- 'Vulkan.Core10.APIConstants.NULL_HANDLE'.
---
--- If creation fails for a pipeline create info with a
--- 'ExecutionGraphPipelineCreateInfoAMDX'::@flags@ value that included
--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT',
--- all pipelines at a greater index all automatically fail.
+-- Pipelines are created and returned as described for
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-multiple Multiple Pipeline Creation>.
 --
 -- == Valid Usage
 --
@@ -974,10 +967,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDispatchGraphAMDX-None-08601# For each push constant that
@@ -986,11 +979,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDispatchGraphAMDX-maintenance4-08602# If the
@@ -1001,20 +993,22 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDispatchGraphAMDX-None-08114# Descriptors in each bound
 --     descriptor set, specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdDispatchGraphAMDX-None-08115# If the descriptors used by
@@ -1067,14 +1061,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdDispatchGraphAMDX-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdDispatchGraphAMDX-None-08608# If a pipeline is bound to
 --     the pipeline bind point used by this command, there /must/ not have
 --     been any calls to dynamic state setting commands for any state not
@@ -1118,6 +1104,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdDispatchGraphAMDX-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdDispatchGraphAMDX-uniformBuffers-06935# If any stage of
 --     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline
 --     bind point used by this command accesses a uniform buffer, and that
@@ -1694,10 +1688,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDispatchGraphIndirectAMDX-None-08601# For each push
@@ -1706,11 +1700,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDispatchGraphIndirectAMDX-maintenance4-08602# If the
@@ -1721,20 +1714,22 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDispatchGraphIndirectAMDX-None-08114# Descriptors in each
 --     bound descriptor set, specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdDispatchGraphIndirectAMDX-None-08115# If the descriptors
@@ -1787,14 +1782,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdDispatchGraphIndirectAMDX-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdDispatchGraphIndirectAMDX-None-08608# If a pipeline is
 --     bound to the pipeline bind point used by this command, there /must/
 --     not have been any calls to dynamic state setting commands for any
@@ -1838,6 +1825,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdDispatchGraphIndirectAMDX-uniformBuffers-06935# If any
 --     stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the
 --     pipeline bind point used by this command accesses a uniform buffer,
@@ -2447,10 +2442,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08601# For each push
@@ -2459,11 +2454,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-maintenance4-08602# If the
@@ -2474,20 +2468,22 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08114# Descriptors in
 --     each bound descriptor set, specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08115# If the
@@ -2540,14 +2536,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08608# If a pipeline
 --     is bound to the pipeline bind point used by this command, there
 --     /must/ not have been any calls to dynamic state setting commands for
@@ -2591,6 +2579,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-uniformBuffers-06935# If
 --     any stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to
 --     the pipeline bind point used by this command accesses a uniform
@@ -3282,12 +3278,10 @@
 --     /must/ not include
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV'
 --
--- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-09007# If @flags@
---     includes
---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV',
---     then the
+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-09007# If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines ::deviceGeneratedComputePipelines>
---     feature /must/ be enabled
+--     is not enabled, @flags@ /must/ not include
+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV'
 --
 -- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-09008# If @flags@
 --     includes
diff --git a/src/Vulkan/Extensions/VK_ARM_render_pass_striped.hs b/src/Vulkan/Extensions/VK_ARM_render_pass_striped.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_ARM_render_pass_striped.hs
@@ -0,0 +1,569 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_ARM_render_pass_striped - device extension
+--
+-- == VK_ARM_render_pass_striped
+--
+-- [__Name String__]
+--     @VK_ARM_render_pass_striped@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     425
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+--
+-- [__Contact__]
+--
+--     -   Jan-Harald Fredriksen
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_ARM_render_pass_striped] @janharaldfredriksen-arm%0A*Here describe the issue or question you have about the VK_ARM_render_pass_striped extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_ARM_render_pass_striped.adoc VK_ARM_render_pass_striped>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-11-21
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Jan-Harald Fredriksen, Arm
+--
+--     -   Lisa Wu, Arm
+--
+--     -   Torbjorn Nilsson, Arm
+--
+--     -   Ying-Chieh Chen, Mediatek
+--
+--     -   Jim Chiu, Mediatek
+--
+-- == Description
+--
+-- This extension adds the ability to split a render pass instance into
+-- stripes, and to get a notification when rendering has completed for each
+-- stripe.
+--
+-- == New Structures
+--
+-- -   'RenderPassStripeInfoARM'
+--
+-- -   Extending
+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.CommandBufferSubmitInfo':
+--
+--     -   'RenderPassStripeSubmitInfoARM'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceRenderPassStripedFeaturesARM'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceRenderPassStripedPropertiesARM'
+--
+-- -   Extending
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo',
+--     'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo':
+--
+--     -   'RenderPassStripeBeginInfoARM'
+--
+-- == New Enum Constants
+--
+-- -   'ARM_RENDER_PASS_STRIPED_EXTENSION_NAME'
+--
+-- -   'ARM_RENDER_PASS_STRIPED_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM'
+--
+-- == Examples
+--
+-- None.
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-11-21
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- 'PhysicalDeviceRenderPassStripedFeaturesARM',
+-- 'PhysicalDeviceRenderPassStripedPropertiesARM',
+-- 'RenderPassStripeBeginInfoARM', 'RenderPassStripeInfoARM',
+-- 'RenderPassStripeSubmitInfoARM'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_ARM_render_pass_striped Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_ARM_render_pass_striped  ( PhysicalDeviceRenderPassStripedFeaturesARM(..)
+                                                     , PhysicalDeviceRenderPassStripedPropertiesARM(..)
+                                                     , RenderPassStripeInfoARM(..)
+                                                     , RenderPassStripeBeginInfoARM(..)
+                                                     , RenderPassStripeSubmitInfoARM(..)
+                                                     , ARM_RENDER_PASS_STRIPED_SPEC_VERSION
+                                                     , pattern ARM_RENDER_PASS_STRIPED_SPEC_VERSION
+                                                     , ARM_RENDER_PASS_STRIPED_EXTENSION_NAME
+                                                     , pattern ARM_RENDER_PASS_STRIPED_EXTENSION_NAME
+                                                     ) where
+
+import Foreign.Marshal.Alloc (allocaBytes)
+import Foreign.Ptr (nullPtr)
+import Foreign.Ptr (plusPtr)
+import Control.Monad.Trans.Class (lift)
+import Control.Monad.Trans.Cont (evalContT)
+import Data.Vector (generateM)
+import qualified Data.Vector (imapM_)
+import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
+import Data.String (IsString)
+import Data.Typeable (Typeable)
+import Foreign.Storable (Storable)
+import Foreign.Storable (Storable(peek))
+import Foreign.Storable (Storable(poke))
+import qualified Foreign.Storable (Storable(..))
+import GHC.Generics (Generic)
+import Foreign.Ptr (Ptr)
+import Data.Word (Word32)
+import Data.Kind (Type)
+import Control.Monad.Trans.Cont (ContT(..))
+import Data.Vector (Vector)
+import Vulkan.CStruct.Utils (advancePtrBytes)
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.Core10.FundamentalTypes (Extent2D)
+import Vulkan.Core10.FundamentalTypes (Rect2D)
+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (SemaphoreSubmitInfo)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM))
+-- | VkPhysicalDeviceRenderPassStripedFeaturesARM - Structure describing
+-- whether striped rendering can be supported by an implementation
+--
+-- = Members
+--
+-- The members of the 'PhysicalDeviceRenderPassStripedFeaturesARM'
+-- structure describe the following features:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceRenderPassStripedFeaturesARM' structure is
+-- included in the @pNext@ chain of the
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'
+-- structure passed to
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',
+-- it is filled in to indicate whether each corresponding feature is
+-- supported. 'PhysicalDeviceRenderPassStripedFeaturesARM' /can/ also be
+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to
+-- selectively enable these features.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_render_pass_striped VK_ARM_render_pass_striped>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceRenderPassStripedFeaturesARM = PhysicalDeviceRenderPassStripedFeaturesARM
+  { -- | #features-renderPassStriped# @renderPassStriped@ indicates that striped
+    -- rendering is supported by the implementation.
+    renderPassStriped :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceRenderPassStripedFeaturesARM)
+#endif
+deriving instance Show PhysicalDeviceRenderPassStripedFeaturesARM
+
+instance ToCStruct PhysicalDeviceRenderPassStripedFeaturesARM where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceRenderPassStripedFeaturesARM{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (renderPassStriped))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceRenderPassStripedFeaturesARM where
+  peekCStruct p = do
+    renderPassStriped <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceRenderPassStripedFeaturesARM
+             (bool32ToBool renderPassStriped)
+
+instance Storable PhysicalDeviceRenderPassStripedFeaturesARM where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceRenderPassStripedFeaturesARM where
+  zero = PhysicalDeviceRenderPassStripedFeaturesARM
+           zero
+
+
+-- | VkPhysicalDeviceRenderPassStripedPropertiesARM - Structure describing
+-- striped rendering limits of an implementation
+--
+-- = Members
+--
+-- The members of the 'PhysicalDeviceRenderPassStripedPropertiesARM'
+-- structure describe the following limits:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceRenderPassStripedPropertiesARM' structure is
+-- included in the @pNext@ chain of the
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'
+-- structure passed to
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',
+-- it is filled in with each corresponding implementation-dependent
+-- property.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_render_pass_striped VK_ARM_render_pass_striped>,
+-- 'Vulkan.Core10.FundamentalTypes.Extent2D',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceRenderPassStripedPropertiesARM = PhysicalDeviceRenderPassStripedPropertiesARM
+  { -- | #limits-renderPassStripeGranularity# @renderPassStripeGranularity@
+    -- indicates the minimum supported granularity of striped render pass
+    -- regions.
+    renderPassStripeGranularity :: Extent2D
+  , -- | #limits-maxRenderPassStripes# @maxRenderPassStripes@ indicates the
+    -- maximum number of stripes supported in striped rendering.
+    maxRenderPassStripes :: Word32
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceRenderPassStripedPropertiesARM)
+#endif
+deriving instance Show PhysicalDeviceRenderPassStripedPropertiesARM
+
+instance ToCStruct PhysicalDeviceRenderPassStripedPropertiesARM where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceRenderPassStripedPropertiesARM{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Extent2D)) (renderPassStripeGranularity)
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (maxRenderPassStripes)
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Extent2D)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct PhysicalDeviceRenderPassStripedPropertiesARM where
+  peekCStruct p = do
+    renderPassStripeGranularity <- peekCStruct @Extent2D ((p `plusPtr` 16 :: Ptr Extent2D))
+    maxRenderPassStripes <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))
+    pure $ PhysicalDeviceRenderPassStripedPropertiesARM
+             renderPassStripeGranularity maxRenderPassStripes
+
+instance Storable PhysicalDeviceRenderPassStripedPropertiesARM where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceRenderPassStripedPropertiesARM where
+  zero = PhysicalDeviceRenderPassStripedPropertiesARM
+           zero
+           zero
+
+
+-- | VkRenderPassStripeInfoARM - Structure specifying per rendering stripe
+-- information
+--
+-- = Description
+--
+-- @stripeArea@ is the render area that is affected by this stripe of the
+-- render pass instance. It /must/ be a subregion of the @renderArea@ of
+-- the render pass instance.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_render_pass_striped VK_ARM_render_pass_striped>,
+-- 'Vulkan.Core10.FundamentalTypes.Rect2D', 'RenderPassStripeBeginInfoARM',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data RenderPassStripeInfoARM = RenderPassStripeInfoARM
+  { -- | @stripeArea@ is the stripe area, and is described in more detail below.
+    stripeArea :: Rect2D }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (RenderPassStripeInfoARM)
+#endif
+deriving instance Show RenderPassStripeInfoARM
+
+instance ToCStruct RenderPassStripeInfoARM where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p RenderPassStripeInfoARM{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Rect2D)) (stripeArea)
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Rect2D)) (zero)
+    f
+
+instance FromCStruct RenderPassStripeInfoARM where
+  peekCStruct p = do
+    stripeArea <- peekCStruct @Rect2D ((p `plusPtr` 16 :: Ptr Rect2D))
+    pure $ RenderPassStripeInfoARM
+             stripeArea
+
+instance Storable RenderPassStripeInfoARM where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero RenderPassStripeInfoARM where
+  zero = RenderPassStripeInfoARM
+           zero
+
+
+-- | VkRenderPassStripeBeginInfoARM - Structure specifying striped rendering
+-- information
+--
+-- = Description
+--
+-- This structure can be included in the @pNext@ chain of
+-- 'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo' or
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo' to
+-- define how the render pass instance is split into stripes.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkRenderPassStripeBeginInfoARM-stripeInfoCount-09450#
+--     @stripeInfoCount@ /must/ be less than or equal to
+--     'PhysicalDeviceRenderPassStripedPropertiesARM'::@maxRenderPassStripes@
+--
+-- -   #VUID-VkRenderPassStripeBeginInfoARM-stripeArea-09451# The
+--     @stripeArea@ defined by each element of @pStripeInfos@ /must/ not
+--     overlap the @stripeArea@ of any other element
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkRenderPassStripeBeginInfoARM-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM'
+--
+-- -   #VUID-VkRenderPassStripeBeginInfoARM-pStripeInfos-parameter#
+--     @pStripeInfos@ /must/ be a valid pointer to an array of
+--     @stripeInfoCount@ 'RenderPassStripeInfoARM' structures
+--
+-- -   #VUID-VkRenderPassStripeBeginInfoARM-stripeInfoCount-arraylength#
+--     @stripeInfoCount@ /must/ be greater than @0@
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_render_pass_striped VK_ARM_render_pass_striped>,
+-- 'RenderPassStripeInfoARM',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data RenderPassStripeBeginInfoARM = RenderPassStripeBeginInfoARM
+  { -- | @stripeInfoCount@ is the number of stripes in this render pass instance
+    stripeInfoCount :: Word32
+  , -- | @pStripeInfos@ is a pointer to an array of @stripeInfoCount@
+    -- 'RenderPassStripeInfoARM' structures describing the stripes used by the
+    -- render pass instance.
+    stripeInfos :: Ptr RenderPassStripeInfoARM
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (RenderPassStripeBeginInfoARM)
+#endif
+deriving instance Show RenderPassStripeBeginInfoARM
+
+instance ToCStruct RenderPassStripeBeginInfoARM where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p RenderPassStripeBeginInfoARM{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (stripeInfoCount)
+    poke ((p `plusPtr` 24 :: Ptr (Ptr RenderPassStripeInfoARM))) (stripeInfos)
+    f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 24 :: Ptr (Ptr RenderPassStripeInfoARM))) (zero)
+    f
+
+instance FromCStruct RenderPassStripeBeginInfoARM where
+  peekCStruct p = do
+    stripeInfoCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    pStripeInfos <- peek @(Ptr RenderPassStripeInfoARM) ((p `plusPtr` 24 :: Ptr (Ptr RenderPassStripeInfoARM)))
+    pure $ RenderPassStripeBeginInfoARM
+             stripeInfoCount pStripeInfos
+
+instance Storable RenderPassStripeBeginInfoARM where
+  sizeOf ~_ = 32
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero RenderPassStripeBeginInfoARM where
+  zero = RenderPassStripeBeginInfoARM
+           zero
+           zero
+
+
+-- | VkRenderPassStripeSubmitInfoARM - Structure specifying striped rendering
+-- submit information
+--
+-- = Description
+--
+-- This structure can be included in the @pNext@ chain of
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.CommandBufferSubmitInfo'
+-- to provide a set of semaphores to be signaled for each striped render
+-- pass instance.
+--
+-- The elements of @pStripeSemaphoreInfos@ are mapped to render pass
+-- instances in
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.CommandBufferSubmitInfo'::@commandBuffer@
+-- in submission order and in stripe order within each render pass
+-- instance. Each semaphore in @pStripeSemaphoreInfos@ is signaled when the
+-- implementation has completed execution of the associated stripe. In a
+-- render pass instance that has multiview enabled, the stripe includes all
+-- views in the view mask. In a render pass instance with @layerCount@
+-- greater than 1, the stripe includes all layers.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkRenderPassStripeSubmitInfoARM-semaphore-09447# The
+--     @semaphore@ member of each element of @pStripeSemaphoreInfos@ /must/
+--     have been created with a
+--     'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of
+--     'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_BINARY'
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkRenderPassStripeSubmitInfoARM-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM'
+--
+-- -   #VUID-VkRenderPassStripeSubmitInfoARM-pStripeSemaphoreInfos-parameter#
+--     @pStripeSemaphoreInfos@ /must/ be a valid pointer to an array of
+--     @stripeSemaphoreInfoCount@ valid
+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SemaphoreSubmitInfo'
+--     structures
+--
+-- -   #VUID-VkRenderPassStripeSubmitInfoARM-stripeSemaphoreInfoCount-arraylength#
+--     @stripeSemaphoreInfoCount@ /must/ be greater than @0@
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_render_pass_striped VK_ARM_render_pass_striped>,
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SemaphoreSubmitInfo',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data RenderPassStripeSubmitInfoARM = RenderPassStripeSubmitInfoARM
+  { -- | @pStripeSemaphoreInfos@ is a pointer to an array of
+    -- @stripeSemaphoreInfoCount@
+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SemaphoreSubmitInfo'
+    -- structures describing the semaphores used to signal stripe completion.
+    stripeSemaphoreInfos :: Vector SemaphoreSubmitInfo }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (RenderPassStripeSubmitInfoARM)
+#endif
+deriving instance Show RenderPassStripeSubmitInfoARM
+
+instance ToCStruct RenderPassStripeSubmitInfoARM where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p RenderPassStripeSubmitInfoARM{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (stripeSemaphoreInfos)) :: Word32))
+    pPStripeSemaphoreInfos' <- ContT $ allocaBytes @SemaphoreSubmitInfo ((Data.Vector.length (stripeSemaphoreInfos)) * 48)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPStripeSemaphoreInfos' `plusPtr` (48 * (i)) :: Ptr SemaphoreSubmitInfo) (e)) (stripeSemaphoreInfos)
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr SemaphoreSubmitInfo))) (pPStripeSemaphoreInfos')
+    lift $ f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    f
+
+instance FromCStruct RenderPassStripeSubmitInfoARM where
+  peekCStruct p = do
+    stripeSemaphoreInfoCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    pStripeSemaphoreInfos <- peek @(Ptr SemaphoreSubmitInfo) ((p `plusPtr` 24 :: Ptr (Ptr SemaphoreSubmitInfo)))
+    pStripeSemaphoreInfos' <- generateM (fromIntegral stripeSemaphoreInfoCount) (\i -> peekCStruct @SemaphoreSubmitInfo ((pStripeSemaphoreInfos `advancePtrBytes` (48 * (i)) :: Ptr SemaphoreSubmitInfo)))
+    pure $ RenderPassStripeSubmitInfoARM
+             pStripeSemaphoreInfos'
+
+instance Zero RenderPassStripeSubmitInfoARM where
+  zero = RenderPassStripeSubmitInfoARM
+           mempty
+
+
+type ARM_RENDER_PASS_STRIPED_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_ARM_RENDER_PASS_STRIPED_SPEC_VERSION"
+pattern ARM_RENDER_PASS_STRIPED_SPEC_VERSION :: forall a . Integral a => a
+pattern ARM_RENDER_PASS_STRIPED_SPEC_VERSION = 1
+
+
+type ARM_RENDER_PASS_STRIPED_EXTENSION_NAME = "VK_ARM_render_pass_striped"
+
+-- No documentation found for TopLevel "VK_ARM_RENDER_PASS_STRIPED_EXTENSION_NAME"
+pattern ARM_RENDER_PASS_STRIPED_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern ARM_RENDER_PASS_STRIPED_EXTENSION_NAME = "VK_ARM_render_pass_striped"
+
diff --git a/src/Vulkan/Extensions/VK_ARM_render_pass_striped.hs-boot b/src/Vulkan/Extensions/VK_ARM_render_pass_striped.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_ARM_render_pass_striped.hs-boot
@@ -0,0 +1,179 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_ARM_render_pass_striped - device extension
+--
+-- == VK_ARM_render_pass_striped
+--
+-- [__Name String__]
+--     @VK_ARM_render_pass_striped@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     425
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Not ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>
+--
+-- [__Contact__]
+--
+--     -   Jan-Harald Fredriksen
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_ARM_render_pass_striped] @janharaldfredriksen-arm%0A*Here describe the issue or question you have about the VK_ARM_render_pass_striped extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_ARM_render_pass_striped.adoc VK_ARM_render_pass_striped>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-11-21
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Jan-Harald Fredriksen, Arm
+--
+--     -   Lisa Wu, Arm
+--
+--     -   Torbjorn Nilsson, Arm
+--
+--     -   Ying-Chieh Chen, Mediatek
+--
+--     -   Jim Chiu, Mediatek
+--
+-- == Description
+--
+-- This extension adds the ability to split a render pass instance into
+-- stripes, and to get a notification when rendering has completed for each
+-- stripe.
+--
+-- == New Structures
+--
+-- -   'RenderPassStripeInfoARM'
+--
+-- -   Extending
+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.CommandBufferSubmitInfo':
+--
+--     -   'RenderPassStripeSubmitInfoARM'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceRenderPassStripedFeaturesARM'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceRenderPassStripedPropertiesARM'
+--
+-- -   Extending
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo',
+--     'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo':
+--
+--     -   'RenderPassStripeBeginInfoARM'
+--
+-- == New Enum Constants
+--
+-- -   'ARM_RENDER_PASS_STRIPED_EXTENSION_NAME'
+--
+-- -   'ARM_RENDER_PASS_STRIPED_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM'
+--
+-- == Examples
+--
+-- None.
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-11-21
+--
+--     -   Initial revision
+--
+-- == See Also
+--
+-- 'PhysicalDeviceRenderPassStripedFeaturesARM',
+-- 'PhysicalDeviceRenderPassStripedPropertiesARM',
+-- 'RenderPassStripeBeginInfoARM', 'RenderPassStripeInfoARM',
+-- 'RenderPassStripeSubmitInfoARM'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_ARM_render_pass_striped Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_ARM_render_pass_striped  ( PhysicalDeviceRenderPassStripedFeaturesARM
+                                                     , PhysicalDeviceRenderPassStripedPropertiesARM
+                                                     , RenderPassStripeBeginInfoARM
+                                                     , RenderPassStripeInfoARM
+                                                     , RenderPassStripeSubmitInfoARM
+                                                     ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDeviceRenderPassStripedFeaturesARM
+
+instance ToCStruct PhysicalDeviceRenderPassStripedFeaturesARM
+instance Show PhysicalDeviceRenderPassStripedFeaturesARM
+
+instance FromCStruct PhysicalDeviceRenderPassStripedFeaturesARM
+
+
+data PhysicalDeviceRenderPassStripedPropertiesARM
+
+instance ToCStruct PhysicalDeviceRenderPassStripedPropertiesARM
+instance Show PhysicalDeviceRenderPassStripedPropertiesARM
+
+instance FromCStruct PhysicalDeviceRenderPassStripedPropertiesARM
+
+
+data RenderPassStripeBeginInfoARM
+
+instance ToCStruct RenderPassStripeBeginInfoARM
+instance Show RenderPassStripeBeginInfoARM
+
+instance FromCStruct RenderPassStripeBeginInfoARM
+
+
+data RenderPassStripeInfoARM
+
+instance ToCStruct RenderPassStripeInfoARM
+instance Show RenderPassStripeInfoARM
+
+instance FromCStruct RenderPassStripeInfoARM
+
+
+data RenderPassStripeSubmitInfoARM
+
+instance ToCStruct RenderPassStripeSubmitInfoARM
+instance Show RenderPassStripeSubmitInfoARM
+
+instance FromCStruct RenderPassStripeSubmitInfoARM
+
diff --git a/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs b/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs
--- a/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs
+++ b/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs
@@ -25,6 +25,12 @@
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
+-- [__Deprecation State__]
+--
+--     -   /Promoted/ to
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_calibrated_timestamps VK_KHR_calibrated_timestamps>
+--         extension
+--
 -- [__Contact__]
 --
 --     -   Daniel Rakos
@@ -60,6 +66,13 @@
 -- This extension provides an interface to query calibrated timestamps
 -- obtained quasi simultaneously from two time domains.
 --
+-- == Promotion to @VK_KHR_calibrated_timestamps@
+--
+-- All functionality in this extension is included in
+-- @VK_KHR_calibrated_timestamps@, with the suffix changed to KHR. The
+-- original enum names are still available as aliases of the KHR
+-- functionality.
+--
 -- == New Commands
 --
 -- -   'getCalibratedTimestampsEXT'
@@ -82,8 +95,19 @@
 --
 -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
 --
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT'
+--     -   'STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT'
 --
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_calibrated_timestamps.TimeDomainKHR':
+--
+--     -   'TIME_DOMAIN_CLOCK_MONOTONIC_EXT'
+--
+--     -   'TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT'
+--
+--     -   'TIME_DOMAIN_DEVICE_EXT'
+--
+--     -   'TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT'
+--
 -- == Version History
 --
 -- -   Revision 2, 2021-03-16 (Lionel Landwerlin)
@@ -107,441 +131,74 @@
 --
 -- This page is a generated document. Fixes and changes should be made to
 -- the generator scripts, not directly.
-module Vulkan.Extensions.VK_EXT_calibrated_timestamps  ( getPhysicalDeviceCalibrateableTimeDomainsEXT
+module Vulkan.Extensions.VK_EXT_calibrated_timestamps  ( pattern STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT
+                                                       , pattern TIME_DOMAIN_DEVICE_EXT
+                                                       , pattern TIME_DOMAIN_CLOCK_MONOTONIC_EXT
+                                                       , pattern TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT
+                                                       , pattern TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT
+                                                       , getPhysicalDeviceCalibrateableTimeDomainsEXT
                                                        , getCalibratedTimestampsEXT
-                                                       , CalibratedTimestampInfoEXT(..)
-                                                       , TimeDomainEXT( TIME_DOMAIN_DEVICE_EXT
-                                                                      , TIME_DOMAIN_CLOCK_MONOTONIC_EXT
-                                                                      , TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT
-                                                                      , TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT
-                                                                      , ..
-                                                                      )
+                                                       , TimeDomainEXT
+                                                       , CalibratedTimestampInfoEXT
                                                        , EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION
                                                        , pattern EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION
                                                        , EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME
                                                        , pattern EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME
+                                                       , CalibratedTimestampInfoKHR(..)
+                                                       , getPhysicalDeviceCalibrateableTimeDomainsKHR
+                                                       , getCalibratedTimestampsKHR
+                                                       , TimeDomainKHR(..)
                                                        ) where
 
-import Vulkan.Internal.Utils (enumReadPrec)
-import Vulkan.Internal.Utils (enumShowsPrec)
-import Vulkan.Internal.Utils (traceAroundEvent)
-import Control.Exception.Base (bracket)
-import Control.Monad (unless)
-import Control.Monad.IO.Class (liftIO)
-import Foreign.Marshal.Alloc (allocaBytes)
-import Foreign.Marshal.Alloc (callocBytes)
-import Foreign.Marshal.Alloc (free)
-import GHC.Base (when)
-import GHC.IO (throwIO)
-import GHC.Ptr (nullFunPtr)
-import Foreign.Ptr (nullPtr)
-import Foreign.Ptr (plusPtr)
-import GHC.Show (showsPrec)
-import Control.Monad.Trans.Class (lift)
-import Control.Monad.Trans.Cont (evalContT)
-import Data.Vector (generateM)
-import qualified Data.Vector (imapM_)
-import qualified Data.Vector (length)
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (FromCStruct(..))
-import Vulkan.CStruct (ToCStruct)
-import Vulkan.CStruct (ToCStruct(..))
-import Vulkan.Zero (Zero)
-import Vulkan.Zero (Zero(..))
-import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
-import Data.Typeable (Typeable)
-import Foreign.Storable (Storable)
-import Foreign.Storable (Storable(peek))
-import Foreign.Storable (Storable(poke))
-import qualified Foreign.Storable (Storable(..))
-import GHC.Generics (Generic)
-import GHC.IO.Exception (IOErrorType(..))
-import GHC.IO.Exception (IOException(..))
-import Data.Int (Int32)
-import Foreign.Ptr (FunPtr)
-import Foreign.Ptr (Ptr)
-import GHC.Read (Read(readPrec))
-import GHC.Show (Show(showsPrec))
-import Data.Word (Word32)
-import Data.Word (Word64)
-import Data.Kind (Type)
-import Control.Monad.Trans.Cont (ContT(..))
-import Data.Vector (Vector)
-import Vulkan.CStruct.Utils (advancePtrBytes)
-import Vulkan.NamedType ((:::))
-import Vulkan.Core10.Handles (Device)
-import Vulkan.Core10.Handles (Device(..))
-import Vulkan.Core10.Handles (Device(Device))
-import Vulkan.Dynamic (DeviceCmds(pVkGetCalibratedTimestampsEXT))
-import Vulkan.Core10.Handles (Device_T)
-import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceCalibrateableTimeDomainsEXT))
-import Vulkan.Core10.Handles (PhysicalDevice)
-import Vulkan.Core10.Handles (PhysicalDevice(..))
-import Vulkan.Core10.Handles (PhysicalDevice(PhysicalDevice))
-import Vulkan.Core10.Handles (PhysicalDevice_T)
-import Vulkan.Core10.Enums.Result (Result)
-import Vulkan.Core10.Enums.Result (Result(..))
-import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.Exception (VulkanException(..))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT))
-import Vulkan.Core10.Enums.Result (Result(SUCCESS))
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkGetPhysicalDeviceCalibrateableTimeDomainsEXT
-  :: FunPtr (Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr TimeDomainEXT -> IO Result) -> Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr TimeDomainEXT -> IO Result
+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (getCalibratedTimestampsKHR)
+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (getPhysicalDeviceCalibrateableTimeDomainsKHR)
+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (CalibratedTimestampInfoKHR)
+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (TimeDomainKHR)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR))
+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (TimeDomainKHR(TIME_DOMAIN_CLOCK_MONOTONIC_KHR))
+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (TimeDomainKHR(TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR))
+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (TimeDomainKHR(TIME_DOMAIN_DEVICE_KHR))
+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (TimeDomainKHR(TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR))
+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (getCalibratedTimestampsKHR)
+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (getPhysicalDeviceCalibrateableTimeDomainsKHR)
+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (CalibratedTimestampInfoKHR(..))
+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (TimeDomainKHR(..))
+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT"
+pattern STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR
 
--- | vkGetPhysicalDeviceCalibrateableTimeDomainsEXT - Query calibrateable
--- time domains
---
--- = Description
---
--- If @pTimeDomains@ is @NULL@, then the number of calibrateable time
--- domains supported for the given @physicalDevice@ is returned in
--- @pTimeDomainCount@. Otherwise, @pTimeDomainCount@ /must/ point to a
--- variable set by the user to the number of elements in the @pTimeDomains@
--- array, and on return the variable is overwritten with the number of
--- values actually written to @pTimeDomains@. If the value of
--- @pTimeDomainCount@ is less than the number of calibrateable time domains
--- supported, at most @pTimeDomainCount@ values will be written to
--- @pTimeDomains@, and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be
--- returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate
--- that not all the available time domains were returned.
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-physicalDevice-parameter#
---     @physicalDevice@ /must/ be a valid
---     'Vulkan.Core10.Handles.PhysicalDevice' handle
---
--- -   #VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-pTimeDomainCount-parameter#
---     @pTimeDomainCount@ /must/ be a valid pointer to a @uint32_t@ value
---
--- -   #VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-pTimeDomains-parameter#
---     If the value referenced by @pTimeDomainCount@ is not @0@, and
---     @pTimeDomains@ is not @NULL@, @pTimeDomains@ /must/ be a valid
---     pointer to an array of @pTimeDomainCount@ 'TimeDomainEXT' values
---
--- == Return Codes
---
--- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
---
---     -   'Vulkan.Core10.Enums.Result.SUCCESS'
---
---     -   'Vulkan.Core10.Enums.Result.INCOMPLETE'
---
--- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
---
---     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'
---
---     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps VK_EXT_calibrated_timestamps>,
--- 'Vulkan.Core10.Handles.PhysicalDevice', 'TimeDomainEXT'
-getPhysicalDeviceCalibrateableTimeDomainsEXT :: forall io
-                                              . (MonadIO io)
-                                             => -- | @physicalDevice@ is the physical device from which to query the set of
-                                                -- calibrateable time domains.
-                                                PhysicalDevice
-                                             -> io (Result, ("timeDomains" ::: Vector TimeDomainEXT))
-getPhysicalDeviceCalibrateableTimeDomainsEXT physicalDevice = liftIO . evalContT $ do
-  let vkGetPhysicalDeviceCalibrateableTimeDomainsEXTPtr = pVkGetPhysicalDeviceCalibrateableTimeDomainsEXT (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)
-  lift $ unless (vkGetPhysicalDeviceCalibrateableTimeDomainsEXTPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceCalibrateableTimeDomainsEXT is null" Nothing Nothing
-  let vkGetPhysicalDeviceCalibrateableTimeDomainsEXT' = mkVkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXTPtr
-  let physicalDevice' = physicalDeviceHandle (physicalDevice)
-  pPTimeDomainCount <- ContT $ bracket (callocBytes @Word32 4) free
-  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" (vkGetPhysicalDeviceCalibrateableTimeDomainsEXT'
-                                                                                   physicalDevice'
-                                                                                   (pPTimeDomainCount)
-                                                                                   (nullPtr))
-  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
-  pTimeDomainCount <- lift $ peek @Word32 pPTimeDomainCount
-  pPTimeDomains <- ContT $ bracket (callocBytes @TimeDomainEXT ((fromIntegral (pTimeDomainCount)) * 4)) free
-  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" (vkGetPhysicalDeviceCalibrateableTimeDomainsEXT'
-                                                                                    physicalDevice'
-                                                                                    (pPTimeDomainCount)
-                                                                                    (pPTimeDomains))
-  lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))
-  pTimeDomainCount' <- lift $ peek @Word32 pPTimeDomainCount
-  pTimeDomains' <- lift $ generateM (fromIntegral (pTimeDomainCount')) (\i -> peek @TimeDomainEXT ((pPTimeDomains `advancePtrBytes` (4 * (i)) :: Ptr TimeDomainEXT)))
-  pure $ ((r'), pTimeDomains')
 
+-- No documentation found for TopLevel "VK_TIME_DOMAIN_DEVICE_EXT"
+pattern TIME_DOMAIN_DEVICE_EXT = TIME_DOMAIN_DEVICE_KHR
 
-foreign import ccall
-#if !defined(SAFE_FOREIGN_CALLS)
-  unsafe
-#endif
-  "dynamic" mkVkGetCalibratedTimestampsEXT
-  :: FunPtr (Ptr Device_T -> Word32 -> Ptr CalibratedTimestampInfoEXT -> Ptr Word64 -> Ptr Word64 -> IO Result) -> Ptr Device_T -> Word32 -> Ptr CalibratedTimestampInfoEXT -> Ptr Word64 -> Ptr Word64 -> IO Result
 
--- | vkGetCalibratedTimestampsEXT - Query calibrated timestamps
---
--- = Description
---
--- Note
---
--- The maximum deviation /may/ vary between calls to
--- 'getCalibratedTimestampsEXT' even for the same set of time domains due
--- to implementation and platform specific reasons. It is the application’s
--- responsibility to assess whether the returned maximum deviation makes
--- the timestamp values suitable for any particular purpose and /can/
--- choose to re-issue the timestamp calibration call pursuing a lower
--- deviation value.
---
--- Calibrated timestamp values /can/ be extrapolated to estimate future
--- coinciding timestamp values, however, depending on the nature of the
--- time domains and other properties of the platform extrapolating values
--- over a sufficiently long period of time /may/ no longer be accurate
--- enough to fit any particular purpose, so applications are expected to
--- re-calibrate the timestamps on a regular basis.
---
--- == Valid Usage
---
--- -   #VUID-vkGetCalibratedTimestampsEXT-timeDomain-09246# The
---     @timeDomain@ value of each 'CalibratedTimestampInfoEXT' in
---     @pTimestampInfos@ /must/ be unique
---
--- == Valid Usage (Implicit)
---
--- -   #VUID-vkGetCalibratedTimestampsEXT-device-parameter# @device@ /must/
---     be a valid 'Vulkan.Core10.Handles.Device' handle
---
--- -   #VUID-vkGetCalibratedTimestampsEXT-pTimestampInfos-parameter#
---     @pTimestampInfos@ /must/ be a valid pointer to an array of
---     @timestampCount@ valid 'CalibratedTimestampInfoEXT' structures
---
--- -   #VUID-vkGetCalibratedTimestampsEXT-pTimestamps-parameter#
---     @pTimestamps@ /must/ be a valid pointer to an array of
---     @timestampCount@ @uint64_t@ values
---
--- -   #VUID-vkGetCalibratedTimestampsEXT-pMaxDeviation-parameter#
---     @pMaxDeviation@ /must/ be a valid pointer to a @uint64_t@ value
---
--- -   #VUID-vkGetCalibratedTimestampsEXT-timestampCount-arraylength#
---     @timestampCount@ /must/ be greater than @0@
---
--- == Return Codes
---
--- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
---
---     -   'Vulkan.Core10.Enums.Result.SUCCESS'
---
--- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
---
---     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'
---
---     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps VK_EXT_calibrated_timestamps>,
--- 'CalibratedTimestampInfoEXT', 'Vulkan.Core10.Handles.Device'
-getCalibratedTimestampsEXT :: forall io
-                            . (MonadIO io)
-                           => -- | @device@ is the logical device used to perform the query.
-                              Device
-                           -> -- | @pTimestampInfos@ is a pointer to an array of @timestampCount@
-                              -- 'CalibratedTimestampInfoEXT' structures, describing the time domains the
-                              -- calibrated timestamps should be captured from.
-                              ("timestampInfos" ::: Vector CalibratedTimestampInfoEXT)
-                           -> io (("timestamps" ::: Vector Word64), ("maxDeviation" ::: Word64))
-getCalibratedTimestampsEXT device timestampInfos = liftIO . evalContT $ do
-  let vkGetCalibratedTimestampsEXTPtr = pVkGetCalibratedTimestampsEXT (case device of Device{deviceCmds} -> deviceCmds)
-  lift $ unless (vkGetCalibratedTimestampsEXTPtr /= nullFunPtr) $
-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetCalibratedTimestampsEXT is null" Nothing Nothing
-  let vkGetCalibratedTimestampsEXT' = mkVkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXTPtr
-  pPTimestampInfos <- ContT $ allocaBytes @CalibratedTimestampInfoEXT ((Data.Vector.length (timestampInfos)) * 24)
-  lift $ Data.Vector.imapM_ (\i e -> poke (pPTimestampInfos `plusPtr` (24 * (i)) :: Ptr CalibratedTimestampInfoEXT) (e)) (timestampInfos)
-  pPTimestamps <- ContT $ bracket (callocBytes @Word64 ((fromIntegral ((fromIntegral (Data.Vector.length $ (timestampInfos)) :: Word32))) * 8)) free
-  pPMaxDeviation <- ContT $ bracket (callocBytes @Word64 8) free
-  r <- lift $ traceAroundEvent "vkGetCalibratedTimestampsEXT" (vkGetCalibratedTimestampsEXT'
-                                                                 (deviceHandle (device))
-                                                                 ((fromIntegral (Data.Vector.length $ (timestampInfos)) :: Word32))
-                                                                 (pPTimestampInfos)
-                                                                 (pPTimestamps)
-                                                                 (pPMaxDeviation))
-  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
-  pTimestamps <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (timestampInfos)) :: Word32))) (\i -> peek @Word64 ((pPTimestamps `advancePtrBytes` (8 * (i)) :: Ptr Word64)))
-  pMaxDeviation <- lift $ peek @Word64 pPMaxDeviation
-  pure $ (pTimestamps, pMaxDeviation)
+-- No documentation found for TopLevel "VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT"
+pattern TIME_DOMAIN_CLOCK_MONOTONIC_EXT = TIME_DOMAIN_CLOCK_MONOTONIC_KHR
 
 
--- | VkCalibratedTimestampInfoEXT - Structure specifying the input parameters
--- of a calibrated timestamp query
---
--- == Valid Usage (Implicit)
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps VK_EXT_calibrated_timestamps>,
--- 'Vulkan.Core10.Enums.StructureType.StructureType', 'TimeDomainEXT',
--- 'getCalibratedTimestampsEXT'
-data CalibratedTimestampInfoEXT = CalibratedTimestampInfoEXT
-  { -- | @timeDomain@ is a 'TimeDomainEXT' value specifying the time domain from
-    -- which the calibrated timestamp value should be returned.
-    --
-    -- #VUID-VkCalibratedTimestampInfoEXT-timeDomain-02354# @timeDomain@ /must/
-    -- be one of the 'TimeDomainEXT' values returned by
-    -- 'getPhysicalDeviceCalibrateableTimeDomainsEXT'
-    --
-    -- #VUID-VkCalibratedTimestampInfoEXT-timeDomain-parameter# @timeDomain@
-    -- /must/ be a valid 'TimeDomainEXT' value
-    timeDomain :: TimeDomainEXT }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (CalibratedTimestampInfoEXT)
-#endif
-deriving instance Show CalibratedTimestampInfoEXT
+-- No documentation found for TopLevel "VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT"
+pattern TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR
 
-instance ToCStruct CalibratedTimestampInfoEXT where
-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p CalibratedTimestampInfoEXT{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr TimeDomainEXT)) (timeDomain)
-    f
-  cStructSize = 24
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr TimeDomainEXT)) (zero)
-    f
 
-instance FromCStruct CalibratedTimestampInfoEXT where
-  peekCStruct p = do
-    timeDomain <- peek @TimeDomainEXT ((p `plusPtr` 16 :: Ptr TimeDomainEXT))
-    pure $ CalibratedTimestampInfoEXT
-             timeDomain
+-- No documentation found for TopLevel "VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT"
+pattern TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR
 
-instance Storable CalibratedTimestampInfoEXT where
-  sizeOf ~_ = 24
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
 
-instance Zero CalibratedTimestampInfoEXT where
-  zero = CalibratedTimestampInfoEXT
-           zero
+-- No documentation found for TopLevel "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT"
+getPhysicalDeviceCalibrateableTimeDomainsEXT = getPhysicalDeviceCalibrateableTimeDomainsKHR
 
 
--- | VkTimeDomainEXT - Supported time domains
---
--- = Description
---
--- Note
---
--- An implementation supporting @VK_EXT_calibrated_timestamps@ will use the
--- same time domain for all its 'Vulkan.Core10.Handles.Queue' so that
--- timestamp values reported for 'TIME_DOMAIN_DEVICE_EXT' can be matched to
--- any timestamp captured through
--- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp' or
--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2'
--- .
---
--- > struct timespec tv;
--- > clock_gettime(CLOCK_MONOTONIC, &tv);
--- > return tv.tv_nsec + tv.tv_sec*1000000000ull;
---
--- > struct timespec tv;
--- > clock_gettime(CLOCK_MONOTONIC_RAW, &tv);
--- > return tv.tv_nsec + tv.tv_sec*1000000000ull;
---
--- > LARGE_INTEGER counter;
--- > QueryPerformanceCounter(&counter);
--- > return counter.QuadPart;
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps VK_EXT_calibrated_timestamps>,
--- 'CalibratedTimestampInfoEXT',
--- 'getPhysicalDeviceCalibrateableTimeDomainsEXT'
-newtype TimeDomainEXT = TimeDomainEXT Int32
-  deriving newtype (Eq, Ord, Storable, Zero)
+-- No documentation found for TopLevel "vkGetCalibratedTimestampsEXT"
+getCalibratedTimestampsEXT = getCalibratedTimestampsKHR
 
--- | 'TIME_DOMAIN_DEVICE_EXT' specifies the device time domain. Timestamp
--- values in this time domain use the same units and are comparable with
--- device timestamp values captured using
--- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp' or
--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2'
--- and are defined to be incrementing according to the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-timestampPeriod timestampPeriod>
--- of the device.
-pattern TIME_DOMAIN_DEVICE_EXT = TimeDomainEXT 0
 
--- | 'TIME_DOMAIN_CLOCK_MONOTONIC_EXT' specifies the CLOCK_MONOTONIC time
--- domain available on POSIX platforms. Timestamp values in this time
--- domain are in units of nanoseconds and are comparable with platform
--- timestamp values captured using the POSIX clock_gettime API as computed
--- by this example:
-pattern TIME_DOMAIN_CLOCK_MONOTONIC_EXT = TimeDomainEXT 1
+-- No documentation found for TopLevel "VkTimeDomainEXT"
+type TimeDomainEXT = TimeDomainKHR
 
--- | 'TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT' specifies the CLOCK_MONOTONIC_RAW
--- time domain available on POSIX platforms. Timestamp values in this time
--- domain are in units of nanoseconds and are comparable with platform
--- timestamp values captured using the POSIX clock_gettime API as computed
--- by this example:
-pattern TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = TimeDomainEXT 2
 
--- | 'TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT' specifies the performance
--- counter (QPC) time domain available on Windows. Timestamp values in this
--- time domain are in the same units as those provided by the Windows
--- QueryPerformanceCounter API and are comparable with platform timestamp
--- values captured using that API as computed by this example:
-pattern TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = TimeDomainEXT 3
-
-{-# COMPLETE
-  TIME_DOMAIN_DEVICE_EXT
-  , TIME_DOMAIN_CLOCK_MONOTONIC_EXT
-  , TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT
-  , TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT ::
-    TimeDomainEXT
-  #-}
-
-conNameTimeDomainEXT :: String
-conNameTimeDomainEXT = "TimeDomainEXT"
-
-enumPrefixTimeDomainEXT :: String
-enumPrefixTimeDomainEXT = "TIME_DOMAIN_"
-
-showTableTimeDomainEXT :: [(TimeDomainEXT, String)]
-showTableTimeDomainEXT =
-  [ (TIME_DOMAIN_DEVICE_EXT, "DEVICE_EXT")
-  ,
-    ( TIME_DOMAIN_CLOCK_MONOTONIC_EXT
-    , "CLOCK_MONOTONIC_EXT"
-    )
-  ,
-    ( TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT
-    , "CLOCK_MONOTONIC_RAW_EXT"
-    )
-  ,
-    ( TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT
-    , "QUERY_PERFORMANCE_COUNTER_EXT"
-    )
-  ]
-
-instance Show TimeDomainEXT where
-  showsPrec =
-    enumShowsPrec
-      enumPrefixTimeDomainEXT
-      showTableTimeDomainEXT
-      conNameTimeDomainEXT
-      (\(TimeDomainEXT x) -> x)
-      (showsPrec 11)
+-- No documentation found for TopLevel "VkCalibratedTimestampInfoEXT"
+type CalibratedTimestampInfoEXT = CalibratedTimestampInfoKHR
 
-instance Read TimeDomainEXT where
-  readPrec =
-    enumReadPrec
-      enumPrefixTimeDomainEXT
-      showTableTimeDomainEXT
-      conNameTimeDomainEXT
-      TimeDomainEXT
 
 type EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION = 2
 
diff --git a/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot b/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot
deleted file mode 100644
--- a/src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot
+++ /dev/null
@@ -1,127 +0,0 @@
-{-# language CPP #-}
--- | = Name
---
--- VK_EXT_calibrated_timestamps - device extension
---
--- == VK_EXT_calibrated_timestamps
---
--- [__Name String__]
---     @VK_EXT_calibrated_timestamps@
---
--- [__Extension Type__]
---     Device extension
---
--- [__Registered Extension Number__]
---     185
---
--- [__Revision__]
---     2
---
--- [__Ratification Status__]
---     Not ratified
---
--- [__Extension and Version Dependencies__]
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
---     or
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
---
--- [__Contact__]
---
---     -   Daniel Rakos
---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_calibrated_timestamps] @drakos-amd%0A*Here describe the issue or question you have about the VK_EXT_calibrated_timestamps extension* >
---
--- [__Extension Proposal__]
---     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_calibrated_timestamps.adoc VK_EXT_calibrated_timestamps>
---
--- == Other Extension Metadata
---
--- [__Last Modified Date__]
---     2018-10-04
---
--- [__IP Status__]
---     No known IP claims.
---
--- [__Contributors__]
---
---     -   Matthaeus G. Chajdas, AMD
---
---     -   Alan Harrison, AMD
---
---     -   Derrick Owens, AMD
---
---     -   Daniel Rakos, AMD
---
---     -   Faith Ekstrand, Intel
---
---     -   Keith Packard, Valve
---
--- == Description
---
--- This extension provides an interface to query calibrated timestamps
--- obtained quasi simultaneously from two time domains.
---
--- == New Commands
---
--- -   'getCalibratedTimestampsEXT'
---
--- -   'getPhysicalDeviceCalibrateableTimeDomainsEXT'
---
--- == New Structures
---
--- -   'CalibratedTimestampInfoEXT'
---
--- == New Enums
---
--- -   'TimeDomainEXT'
---
--- == New Enum Constants
---
--- -   'EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME'
---
--- -   'EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION'
---
--- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
---
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT'
---
--- == Version History
---
--- -   Revision 2, 2021-03-16 (Lionel Landwerlin)
---
---     -   Specify requirement on device timestamps
---
--- -   Revision 1, 2018-10-04 (Daniel Rakos)
---
---     -   Internal revisions.
---
--- == See Also
---
--- 'CalibratedTimestampInfoEXT', 'TimeDomainEXT',
--- 'getCalibratedTimestampsEXT',
--- 'getPhysicalDeviceCalibrateableTimeDomainsEXT'
---
--- == Document Notes
---
--- For more information, see the
--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps Vulkan Specification>
---
--- This page is a generated document. Fixes and changes should be made to
--- the generator scripts, not directly.
-module Vulkan.Extensions.VK_EXT_calibrated_timestamps  ( CalibratedTimestampInfoEXT
-                                                       , TimeDomainEXT
-                                                       ) where
-
-import Vulkan.CStruct (FromCStruct)
-import Vulkan.CStruct (ToCStruct)
-import Data.Kind (Type)
-
-data CalibratedTimestampInfoEXT
-
-instance ToCStruct CalibratedTimestampInfoEXT
-instance Show CalibratedTimestampInfoEXT
-
-instance FromCStruct CalibratedTimestampInfoEXT
-
-
-data TimeDomainEXT
-
diff --git a/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs b/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs
--- a/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs
+++ b/src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs
@@ -400,8 +400,8 @@
 --
 -- -   #VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-06522#
 --     If @pSurfaceInfo->surface@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ be supported by
---     @physicalDevice@, as reported by
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @pSurfaceInfo->surface@
+--     /must/ be supported by @physicalDevice@, as reported by
 --     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR'
 --     or an equivalent platform-specific mechanism
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_layer_settings.hs b/src/Vulkan/Extensions/VK_EXT_layer_settings.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_layer_settings.hs
@@ -0,0 +1,485 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_layer_settings - instance extension
+--
+-- == VK_EXT_layer_settings
+--
+-- [__Name String__]
+--     @VK_EXT_layer_settings@
+--
+-- [__Extension Type__]
+--     Instance extension
+--
+-- [__Registered Extension Number__]
+--     497
+--
+-- [__Revision__]
+--     2
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     None
+--
+-- [__Contact__]
+--
+--     -   Christophe Riccio
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_layer_settings] @christophe%0A*Here describe the issue or question you have about the VK_EXT_layer_settings extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_layer_settings.adoc VK_EXT_layer_settings>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-09-23
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Christophe Riccio, LunarG
+--
+--     -   Mark Lobodzinski, LunarG
+--
+--     -   Charles Giessen, LunarG
+--
+--     -   Spencer Fricke, LunarG
+--
+--     -   Juan Ramos, LunarG
+--
+--     -   Daniel Rakos, RasterGrid
+--
+--     -   Shahbaz Youssefi, Google
+--
+--     -   Lina Versace, Google
+--
+--     -   Bill Hollings, The Brenwill Workshop
+--
+--     -   Jon Leech, Khronos
+--
+--     -   Tom Olson, Arm
+--
+-- == Description
+--
+-- This extension provides a mechanism for configuring programmatically
+-- through the Vulkan API the behavior of layers.
+--
+-- This extension provides the 'LayerSettingsCreateInfoEXT' struct that can
+-- be included in the @pNext@ chain of the
+-- 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo' structure passed
+-- as the @pCreateInfo@ parameter of
+-- 'Vulkan.Core10.DeviceInitialization.createInstance'.
+--
+-- The structure contains an array of 'LayerSettingEXT' structure values
+-- that configure specific features of layers.
+--
+-- == Example
+--
+-- @VK_EXT_layer_settings@ is implemented by the Vulkan Profiles layer.
+--
+-- It allows the profiles layer tests used by the profiles layer C.I. to
+-- programmatically configure the layer for each test without affecting the
+-- C.I. environment, allowing to run multiple tests concurrently.
+--
+-- > const char* profile_file_data = JSON_TEST_FILES_PATH "VP_KHR_roadmap_2022.json";
+-- > const char* profile_name_data = "VP_KHR_roadmap_2022";
+-- > VkBool32 emulate_portability_data = VK_TRUE;
+-- > const char* simulate_capabilities[] = {
+-- >     "SIMULATE_API_VERSION_BIT",
+-- >     "SIMULATE_FEATURES_BIT",
+-- >     "SIMULATE_PROPERTIES_BIT",
+-- >     "SIMULATE_EXTENSIONS_BIT",
+-- >     "SIMULATE_FORMATS_BIT",
+-- >     "SIMULATE_QUEUE_FAMILY_PROPERTIES_BIT"
+-- > };
+-- > const char* debug_reports[] = {
+-- >     "DEBUG_REPORT_ERROR_BIT",
+-- >     "DEBUG_REPORT_WARNING_BIT",
+-- >     "DEBUG_REPORT_NOTIFICATION_BIT",
+-- >     "DEBUG_REPORT_DEBUG_BIT"
+-- > };
+-- >
+-- > const VkLayerSettingEXT settings[] = {
+-- >      {kLayerName, kLayerSettingsProfileFile, VK_LAYER_SETTING_TYPE_STRING_EXT, 1, &profile_file_data},
+-- >      {kLayerName, kLayerSettingsProfileName, VK_LAYER_SETTING_TYPE_STRING_EXT, 1, &profile_name_data},
+-- >      {kLayerName, kLayerSettingsEmulatePortability, VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &emulate_portability_data},
+-- >      {kLayerName, kLayerSettingsSimulateCapabilities, VK_LAYER_SETTING_TYPE_STRING_EXT,
+-- >         static_cast<uint32_t>(std::size(simulate_capabilities)), simulate_capabilities},
+-- >      {kLayerName, kLayerSettingsDebugReports, VK_LAYER_SETTING_TYPE_STRING_EXT,
+-- >         static_cast<uint32_t>(std::size(debug_reports)), debug_reports}
+-- > };
+-- >
+-- > const VkLayerSettingsCreateInfoEXT layer_settings_create_info{
+-- >     VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT, nullptr,
+-- >     static_cast<uint32_t>(std::size(settings)), settings};
+-- >
+-- > VkInstanceCreateInfo inst_create_info = {};
+-- > ...
+-- > inst_create_info.pNext = &layer_settings_create_info;
+-- > vkCreateInstance(&inst_create_info, nullptr, &_instances);
+--
+-- Note
+--
+-- The @VK_EXT_layer_settings@ extension subsumes all the functionality
+-- provided in the @VK_EXT_validation_flags@ extension and the
+-- @VK_EXT_validation_features@ extension.
+--
+-- == New Structures
+--
+-- -   'LayerSettingEXT'
+--
+-- -   Extending 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo':
+--
+--     -   'LayerSettingsCreateInfoEXT'
+--
+-- == New Enums
+--
+-- -   'LayerSettingTypeEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_LAYER_SETTINGS_EXTENSION_NAME'
+--
+-- -   'EXT_LAYER_SETTINGS_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT'
+--
+-- == Issues
+--
+-- -   How should application developers figure out the list of available
+--     settings?
+--
+-- This extension does not provide a reflection API for layer settings.
+-- Layer settings are described in each layer JSON manifest and the
+-- documentation of each layer which implements this extension.
+--
+-- == Version History
+--
+-- -   Revision 1, 2020-06-17 (Mark Lobodzinski)
+--
+--     -   Initial revision for Validation layer internal usages
+--
+-- -   Revision 2, 2023-09-26 (Christophe Riccio)
+--
+--     -   Refactor APIs for any layer usages and public release
+--
+-- == See Also
+--
+-- 'LayerSettingEXT', 'LayerSettingTypeEXT', 'LayerSettingsCreateInfoEXT'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_layer_settings Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_EXT_layer_settings  ( LayerSettingsCreateInfoEXT(..)
+                                                , LayerSettingEXT(..)
+                                                , LayerSettingTypeEXT( LAYER_SETTING_TYPE_BOOL32_EXT
+                                                                     , LAYER_SETTING_TYPE_INT32_EXT
+                                                                     , LAYER_SETTING_TYPE_INT64_EXT
+                                                                     , LAYER_SETTING_TYPE_UINT32_EXT
+                                                                     , LAYER_SETTING_TYPE_UINT64_EXT
+                                                                     , LAYER_SETTING_TYPE_FLOAT32_EXT
+                                                                     , LAYER_SETTING_TYPE_FLOAT64_EXT
+                                                                     , LAYER_SETTING_TYPE_STRING_EXT
+                                                                     , ..
+                                                                     )
+                                                , EXT_LAYER_SETTINGS_SPEC_VERSION
+                                                , pattern EXT_LAYER_SETTINGS_SPEC_VERSION
+                                                , EXT_LAYER_SETTINGS_EXTENSION_NAME
+                                                , pattern EXT_LAYER_SETTINGS_EXTENSION_NAME
+                                                ) where
+
+import Vulkan.Internal.Utils (enumReadPrec)
+import Vulkan.Internal.Utils (enumShowsPrec)
+import Foreign.Marshal.Alloc (allocaBytes)
+import Foreign.Ptr (nullPtr)
+import Foreign.Ptr (plusPtr)
+import GHC.Show (showsPrec)
+import Data.ByteString (packCString)
+import Data.ByteString (useAsCString)
+import Control.Monad.Trans.Class (lift)
+import Control.Monad.Trans.Cont (evalContT)
+import Data.Vector (generateM)
+import qualified Data.Vector (imapM_)
+import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
+import Data.String (IsString)
+import Data.Typeable (Typeable)
+import Foreign.C.Types (CChar)
+import Foreign.Storable (Storable)
+import Foreign.Storable (Storable(peek))
+import Foreign.Storable (Storable(poke))
+import GHC.Generics (Generic)
+import Data.Int (Int32)
+import Foreign.Ptr (Ptr)
+import GHC.Read (Read(readPrec))
+import GHC.Show (Show(showsPrec))
+import Data.Word (Word32)
+import Data.ByteString (ByteString)
+import Data.Kind (Type)
+import Control.Monad.Trans.Cont (ContT(..))
+import Data.Vector (Vector)
+import Vulkan.CStruct.Utils (advancePtrBytes)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT))
+-- | VkLayerSettingsCreateInfoEXT - Specify layer capabilities for a Vulkan
+-- instance
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkLayerSettingsCreateInfoEXT-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT'
+--
+-- -   #VUID-VkLayerSettingsCreateInfoEXT-pSettings-parameter# If
+--     @settingCount@ is not @0@, @pSettings@ /must/ be a valid pointer to
+--     an array of @settingCount@ valid 'LayerSettingEXT' structures
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_layer_settings VK_EXT_layer_settings>,
+-- 'LayerSettingEXT', 'Vulkan.Core10.Enums.StructureType.StructureType'
+data LayerSettingsCreateInfoEXT = LayerSettingsCreateInfoEXT
+  { -- | @pSettings@ is a pointer to an array of @settingCount@ 'LayerSettingEXT'
+    -- values specifying the setting to be configured.
+    settings :: Vector LayerSettingEXT }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (LayerSettingsCreateInfoEXT)
+#endif
+deriving instance Show LayerSettingsCreateInfoEXT
+
+instance ToCStruct LayerSettingsCreateInfoEXT where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p LayerSettingsCreateInfoEXT{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (settings)) :: Word32))
+    pPSettings' <- ContT $ allocaBytes @LayerSettingEXT ((Data.Vector.length (settings)) * 32)
+    Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPSettings' `plusPtr` (32 * (i)) :: Ptr LayerSettingEXT) (e) . ($ ())) (settings)
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr LayerSettingEXT))) (pPSettings')
+    lift $ f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    f
+
+instance FromCStruct LayerSettingsCreateInfoEXT where
+  peekCStruct p = do
+    settingCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    pSettings <- peek @(Ptr LayerSettingEXT) ((p `plusPtr` 24 :: Ptr (Ptr LayerSettingEXT)))
+    pSettings' <- generateM (fromIntegral settingCount) (\i -> peekCStruct @LayerSettingEXT ((pSettings `advancePtrBytes` (32 * (i)) :: Ptr LayerSettingEXT)))
+    pure $ LayerSettingsCreateInfoEXT
+             pSettings'
+
+instance Zero LayerSettingsCreateInfoEXT where
+  zero = LayerSettingsCreateInfoEXT
+           mempty
+
+
+-- | VkLayerSettingEXT - Specify a layer capability to configure
+--
+-- = Description
+--
+-- When multiple 'LayerSettingsCreateInfoEXT' structures are chained and
+-- the same @pSettingName@ is referenced for the same @pLayerName@, the
+-- value of the first reference of the layer setting is used.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkLayerSettingEXT-pLayerName-parameter# @pLayerName@ /must/ be
+--     a null-terminated UTF-8 string
+--
+-- -   #VUID-VkLayerSettingEXT-pSettingName-parameter# @pSettingName@
+--     /must/ be a null-terminated UTF-8 string
+--
+-- -   #VUID-VkLayerSettingEXT-type-parameter# @type@ /must/ be a valid
+--     'LayerSettingTypeEXT' value
+--
+-- -   #VUID-VkLayerSettingEXT-pValues-parameter# If @valueCount@ is not
+--     @0@, @pValues@ /must/ be a valid pointer to an array of @valueCount@
+--     bytes
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_layer_settings VK_EXT_layer_settings>,
+-- 'LayerSettingTypeEXT', 'LayerSettingsCreateInfoEXT'
+data LayerSettingEXT = LayerSettingEXT
+  { -- | @pLayerName@ is a pointer to a null-terminated UTF-8 string naming the
+    -- layer to configure the setting from.
+    layerName :: ByteString
+  , -- | @pSettingName@ is a pointer to a null-terminated UTF-8 string naming the
+    -- setting to configure. Unknown @pSettingName@ by the layer are ignored.
+    settingName :: ByteString
+  , -- | @type@ is a 'LayerSettingTypeEXT' value specifying the type of the
+    -- @pValues@ values.
+    type' :: LayerSettingTypeEXT
+  , -- No documentation found for Nested "VkLayerSettingEXT" "valueCount"
+    valueCount :: Word32
+  , -- | @pValues@ is a pointer to an array of @count@ values of the type
+    -- indicated by @type@ to configure the layer setting.
+    values :: Ptr ()
+  }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (LayerSettingEXT)
+#endif
+deriving instance Show LayerSettingEXT
+
+instance ToCStruct LayerSettingEXT where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p LayerSettingEXT{..} f = evalContT $ do
+    pLayerName'' <- ContT $ useAsCString (layerName)
+    lift $ poke ((p `plusPtr` 0 :: Ptr (Ptr CChar))) pLayerName''
+    pSettingName'' <- ContT $ useAsCString (settingName)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr CChar))) pSettingName''
+    lift $ poke ((p `plusPtr` 16 :: Ptr LayerSettingTypeEXT)) (type')
+    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (valueCount)
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (values)
+    lift $ f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    pLayerName'' <- ContT $ useAsCString (mempty)
+    lift $ poke ((p `plusPtr` 0 :: Ptr (Ptr CChar))) pLayerName''
+    pSettingName'' <- ContT $ useAsCString (mempty)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr CChar))) pSettingName''
+    lift $ poke ((p `plusPtr` 16 :: Ptr LayerSettingTypeEXT)) (zero)
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (zero)
+    lift $ f
+
+instance FromCStruct LayerSettingEXT where
+  peekCStruct p = do
+    pLayerName <- packCString =<< peek ((p `plusPtr` 0 :: Ptr (Ptr CChar)))
+    pSettingName <- packCString =<< peek ((p `plusPtr` 8 :: Ptr (Ptr CChar)))
+    type' <- peek @LayerSettingTypeEXT ((p `plusPtr` 16 :: Ptr LayerSettingTypeEXT))
+    valueCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))
+    pValues <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))
+    pure $ LayerSettingEXT
+             pLayerName pSettingName type' valueCount pValues
+
+instance Zero LayerSettingEXT where
+  zero = LayerSettingEXT
+           mempty
+           mempty
+           zero
+           zero
+           zero
+
+
+-- | VkLayerSettingTypeEXT - Type of the values that can be passed to a layer
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_layer_settings VK_EXT_layer_settings>,
+-- 'LayerSettingEXT'
+newtype LayerSettingTypeEXT = LayerSettingTypeEXT Int32
+  deriving newtype (Eq, Ord, Storable, Zero)
+
+-- | 'LAYER_SETTING_TYPE_BOOL32_EXT' specifies that the layer setting’s type
+-- is 'Vulkan.Core10.FundamentalTypes.Bool32'.
+pattern LAYER_SETTING_TYPE_BOOL32_EXT = LayerSettingTypeEXT 0
+
+-- | 'LAYER_SETTING_TYPE_INT32_EXT' specifies that the layer setting’s type
+-- is signed 32-bit integer.
+pattern LAYER_SETTING_TYPE_INT32_EXT = LayerSettingTypeEXT 1
+
+-- | 'LAYER_SETTING_TYPE_INT64_EXT' specifies that the layer setting’s type
+-- is signed 64-bit integer.
+pattern LAYER_SETTING_TYPE_INT64_EXT = LayerSettingTypeEXT 2
+
+-- | 'LAYER_SETTING_TYPE_UINT32_EXT' specifies that the layer setting’s type
+-- is unsigned 32-bit integer.
+pattern LAYER_SETTING_TYPE_UINT32_EXT = LayerSettingTypeEXT 3
+
+-- | 'LAYER_SETTING_TYPE_UINT64_EXT' specifies that the layer setting’s type
+-- is unsigned 64-bit integer.
+pattern LAYER_SETTING_TYPE_UINT64_EXT = LayerSettingTypeEXT 4
+
+-- | 'LAYER_SETTING_TYPE_FLOAT32_EXT' specifies that the layer setting’s type
+-- is 32-bit floating-point.
+pattern LAYER_SETTING_TYPE_FLOAT32_EXT = LayerSettingTypeEXT 5
+
+-- | 'LAYER_SETTING_TYPE_FLOAT64_EXT' specifies that the layer setting’s type
+-- is 64-bit floating-point.
+pattern LAYER_SETTING_TYPE_FLOAT64_EXT = LayerSettingTypeEXT 6
+
+-- | 'LAYER_SETTING_TYPE_STRING_EXT' specifies that the layer setting’s type
+-- is a pointer to a null-terminated UTF-8 string.
+pattern LAYER_SETTING_TYPE_STRING_EXT = LayerSettingTypeEXT 7
+
+{-# COMPLETE
+  LAYER_SETTING_TYPE_BOOL32_EXT
+  , LAYER_SETTING_TYPE_INT32_EXT
+  , LAYER_SETTING_TYPE_INT64_EXT
+  , LAYER_SETTING_TYPE_UINT32_EXT
+  , LAYER_SETTING_TYPE_UINT64_EXT
+  , LAYER_SETTING_TYPE_FLOAT32_EXT
+  , LAYER_SETTING_TYPE_FLOAT64_EXT
+  , LAYER_SETTING_TYPE_STRING_EXT ::
+    LayerSettingTypeEXT
+  #-}
+
+conNameLayerSettingTypeEXT :: String
+conNameLayerSettingTypeEXT = "LayerSettingTypeEXT"
+
+enumPrefixLayerSettingTypeEXT :: String
+enumPrefixLayerSettingTypeEXT = "LAYER_SETTING_TYPE_"
+
+showTableLayerSettingTypeEXT :: [(LayerSettingTypeEXT, String)]
+showTableLayerSettingTypeEXT =
+  [ (LAYER_SETTING_TYPE_BOOL32_EXT, "BOOL32_EXT")
+  , (LAYER_SETTING_TYPE_INT32_EXT, "INT32_EXT")
+  , (LAYER_SETTING_TYPE_INT64_EXT, "INT64_EXT")
+  , (LAYER_SETTING_TYPE_UINT32_EXT, "UINT32_EXT")
+  , (LAYER_SETTING_TYPE_UINT64_EXT, "UINT64_EXT")
+  , (LAYER_SETTING_TYPE_FLOAT32_EXT, "FLOAT32_EXT")
+  , (LAYER_SETTING_TYPE_FLOAT64_EXT, "FLOAT64_EXT")
+  , (LAYER_SETTING_TYPE_STRING_EXT, "STRING_EXT")
+  ]
+
+instance Show LayerSettingTypeEXT where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixLayerSettingTypeEXT
+      showTableLayerSettingTypeEXT
+      conNameLayerSettingTypeEXT
+      (\(LayerSettingTypeEXT x) -> x)
+      (showsPrec 11)
+
+instance Read LayerSettingTypeEXT where
+  readPrec =
+    enumReadPrec
+      enumPrefixLayerSettingTypeEXT
+      showTableLayerSettingTypeEXT
+      conNameLayerSettingTypeEXT
+      LayerSettingTypeEXT
+
+type EXT_LAYER_SETTINGS_SPEC_VERSION = 2
+
+-- No documentation found for TopLevel "VK_EXT_LAYER_SETTINGS_SPEC_VERSION"
+pattern EXT_LAYER_SETTINGS_SPEC_VERSION :: forall a . Integral a => a
+pattern EXT_LAYER_SETTINGS_SPEC_VERSION = 2
+
+
+type EXT_LAYER_SETTINGS_EXTENSION_NAME = "VK_EXT_layer_settings"
+
+-- No documentation found for TopLevel "VK_EXT_LAYER_SETTINGS_EXTENSION_NAME"
+pattern EXT_LAYER_SETTINGS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern EXT_LAYER_SETTINGS_EXTENSION_NAME = "VK_EXT_layer_settings"
+
diff --git a/src/Vulkan/Extensions/VK_EXT_layer_settings.hs-boot b/src/Vulkan/Extensions/VK_EXT_layer_settings.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_layer_settings.hs-boot
@@ -0,0 +1,205 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_EXT_layer_settings - instance extension
+--
+-- == VK_EXT_layer_settings
+--
+-- [__Name String__]
+--     @VK_EXT_layer_settings@
+--
+-- [__Extension Type__]
+--     Instance extension
+--
+-- [__Registered Extension Number__]
+--     497
+--
+-- [__Revision__]
+--     2
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     None
+--
+-- [__Contact__]
+--
+--     -   Christophe Riccio
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_layer_settings] @christophe%0A*Here describe the issue or question you have about the VK_EXT_layer_settings extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_layer_settings.adoc VK_EXT_layer_settings>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-09-23
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Christophe Riccio, LunarG
+--
+--     -   Mark Lobodzinski, LunarG
+--
+--     -   Charles Giessen, LunarG
+--
+--     -   Spencer Fricke, LunarG
+--
+--     -   Juan Ramos, LunarG
+--
+--     -   Daniel Rakos, RasterGrid
+--
+--     -   Shahbaz Youssefi, Google
+--
+--     -   Lina Versace, Google
+--
+--     -   Bill Hollings, The Brenwill Workshop
+--
+--     -   Jon Leech, Khronos
+--
+--     -   Tom Olson, Arm
+--
+-- == Description
+--
+-- This extension provides a mechanism for configuring programmatically
+-- through the Vulkan API the behavior of layers.
+--
+-- This extension provides the 'LayerSettingsCreateInfoEXT' struct that can
+-- be included in the @pNext@ chain of the
+-- 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo' structure passed
+-- as the @pCreateInfo@ parameter of
+-- 'Vulkan.Core10.DeviceInitialization.createInstance'.
+--
+-- The structure contains an array of 'LayerSettingEXT' structure values
+-- that configure specific features of layers.
+--
+-- == Example
+--
+-- @VK_EXT_layer_settings@ is implemented by the Vulkan Profiles layer.
+--
+-- It allows the profiles layer tests used by the profiles layer C.I. to
+-- programmatically configure the layer for each test without affecting the
+-- C.I. environment, allowing to run multiple tests concurrently.
+--
+-- > const char* profile_file_data = JSON_TEST_FILES_PATH "VP_KHR_roadmap_2022.json";
+-- > const char* profile_name_data = "VP_KHR_roadmap_2022";
+-- > VkBool32 emulate_portability_data = VK_TRUE;
+-- > const char* simulate_capabilities[] = {
+-- >     "SIMULATE_API_VERSION_BIT",
+-- >     "SIMULATE_FEATURES_BIT",
+-- >     "SIMULATE_PROPERTIES_BIT",
+-- >     "SIMULATE_EXTENSIONS_BIT",
+-- >     "SIMULATE_FORMATS_BIT",
+-- >     "SIMULATE_QUEUE_FAMILY_PROPERTIES_BIT"
+-- > };
+-- > const char* debug_reports[] = {
+-- >     "DEBUG_REPORT_ERROR_BIT",
+-- >     "DEBUG_REPORT_WARNING_BIT",
+-- >     "DEBUG_REPORT_NOTIFICATION_BIT",
+-- >     "DEBUG_REPORT_DEBUG_BIT"
+-- > };
+-- >
+-- > const VkLayerSettingEXT settings[] = {
+-- >      {kLayerName, kLayerSettingsProfileFile, VK_LAYER_SETTING_TYPE_STRING_EXT, 1, &profile_file_data},
+-- >      {kLayerName, kLayerSettingsProfileName, VK_LAYER_SETTING_TYPE_STRING_EXT, 1, &profile_name_data},
+-- >      {kLayerName, kLayerSettingsEmulatePortability, VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &emulate_portability_data},
+-- >      {kLayerName, kLayerSettingsSimulateCapabilities, VK_LAYER_SETTING_TYPE_STRING_EXT,
+-- >         static_cast<uint32_t>(std::size(simulate_capabilities)), simulate_capabilities},
+-- >      {kLayerName, kLayerSettingsDebugReports, VK_LAYER_SETTING_TYPE_STRING_EXT,
+-- >         static_cast<uint32_t>(std::size(debug_reports)), debug_reports}
+-- > };
+-- >
+-- > const VkLayerSettingsCreateInfoEXT layer_settings_create_info{
+-- >     VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT, nullptr,
+-- >     static_cast<uint32_t>(std::size(settings)), settings};
+-- >
+-- > VkInstanceCreateInfo inst_create_info = {};
+-- > ...
+-- > inst_create_info.pNext = &layer_settings_create_info;
+-- > vkCreateInstance(&inst_create_info, nullptr, &_instances);
+--
+-- Note
+--
+-- The @VK_EXT_layer_settings@ extension subsumes all the functionality
+-- provided in the @VK_EXT_validation_flags@ extension and the
+-- @VK_EXT_validation_features@ extension.
+--
+-- == New Structures
+--
+-- -   'LayerSettingEXT'
+--
+-- -   Extending 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo':
+--
+--     -   'LayerSettingsCreateInfoEXT'
+--
+-- == New Enums
+--
+-- -   'LayerSettingTypeEXT'
+--
+-- == New Enum Constants
+--
+-- -   'EXT_LAYER_SETTINGS_EXTENSION_NAME'
+--
+-- -   'EXT_LAYER_SETTINGS_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT'
+--
+-- == Issues
+--
+-- -   How should application developers figure out the list of available
+--     settings?
+--
+-- This extension does not provide a reflection API for layer settings.
+-- Layer settings are described in each layer JSON manifest and the
+-- documentation of each layer which implements this extension.
+--
+-- == Version History
+--
+-- -   Revision 1, 2020-06-17 (Mark Lobodzinski)
+--
+--     -   Initial revision for Validation layer internal usages
+--
+-- -   Revision 2, 2023-09-26 (Christophe Riccio)
+--
+--     -   Refactor APIs for any layer usages and public release
+--
+-- == See Also
+--
+-- 'LayerSettingEXT', 'LayerSettingTypeEXT', 'LayerSettingsCreateInfoEXT'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_layer_settings Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_EXT_layer_settings  ( LayerSettingEXT
+                                                , LayerSettingsCreateInfoEXT
+                                                ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data LayerSettingEXT
+
+instance ToCStruct LayerSettingEXT
+instance Show LayerSettingEXT
+
+instance FromCStruct LayerSettingEXT
+
+
+data LayerSettingsCreateInfoEXT
+
+instance ToCStruct LayerSettingsCreateInfoEXT
+instance Show LayerSettingsCreateInfoEXT
+
+instance FromCStruct LayerSettingsCreateInfoEXT
+
diff --git a/src/Vulkan/Extensions/VK_EXT_mesh_shader.hs b/src/Vulkan/Extensions/VK_EXT_mesh_shader.hs
--- a/src/Vulkan/Extensions/VK_EXT_mesh_shader.hs
+++ b/src/Vulkan/Extensions/VK_EXT_mesh_shader.hs
@@ -492,10 +492,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMeshTasksEXT-None-08601# For each push constant that
@@ -504,11 +504,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMeshTasksEXT-maintenance4-08602# If the
@@ -519,20 +518,22 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMeshTasksEXT-None-08114# Descriptors in each bound
 --     descriptor set, specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdDrawMeshTasksEXT-None-08115# If the descriptors used by
@@ -585,14 +586,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdDrawMeshTasksEXT-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdDrawMeshTasksEXT-None-08608# If a pipeline is bound to
 --     the pipeline bind point used by this command, there /must/ not have
 --     been any calls to dynamic state setting commands for any state not
@@ -636,6 +629,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdDrawMeshTasksEXT-uniformBuffers-06935# If any stage of
 --     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline
 --     bind point used by this command accesses a uniform buffer, and that
@@ -1236,16 +1237,6 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
--- -   #VUID-vkCmdDrawMeshTasksEXT-sampleLocationsPerPixel-07934# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state enabled, then the @sampleLocationsPerPixel@ member of
---     @pSampleLocationsInfo@ in the last call to
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ equal the @rasterizationSamples@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
 -- -   #VUID-vkCmdDrawMeshTasksEXT-None-07840# If the bound graphics
 --     pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
@@ -1726,22 +1717,36 @@
 --
 -- -   #VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07284#
 --     If rasterization is not disabled in the bound graphics pipeline, and
---     none of the @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
+--     none of the following is enabled:
 --
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the currently bound graphics
+--     pipeline /must/ be the same as the current subpass color and\/or
+--     depth\/stencil attachments
+--
 -- -   #VUID-vkCmdDrawMeshTasksEXT-None-08644# If a shader object is bound
 --     to any graphics stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
 --     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the
---     @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then the most recent call to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then the most recent call to
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
 --     in the current command buffer /must/ have set @rasterizationSamples@
 --     to be the same as the number of samples for the current render pass
@@ -1843,42 +1848,42 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
 --     used to create the currently bound graphics pipeline
 --
--- -   #VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08911#
+-- -   #VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08912#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is enabled, and the current render pass instance was begun
---     with
+--     feature is not enabled, and the current render pass instance was
+--     begun with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ not equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
+--     array with a @imageView@ equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound graphics pipeline, or the
---     corresponding element of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
---     if it exists, /must/ be
+--     used to create the currently bound pipeline equal to
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
--- -   #VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08912#
+-- -   #VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08911#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is not enabled, and the current render pass instance was
---     begun with
+--     feature is enabled, and the current render pass instance was begun
+--     with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
+--     array with a @imageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound pipeline equal to
+--     used to create the currently bound graphics pipeline, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
 -- -   #VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-09362# If the
@@ -2286,9 +2291,7 @@
 --     the currently bound graphics pipeline
 --
 -- -   #VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07286#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -2302,9 +2305,7 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
 --
 -- -   #VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07287#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -4189,10 +4190,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08601# For each push
@@ -4201,11 +4202,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-maintenance4-08602# If the
@@ -4216,20 +4216,22 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08114# Descriptors in each
 --     bound descriptor set, specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08115# If the descriptors
@@ -4282,14 +4284,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08608# If a pipeline is
 --     bound to the pipeline bind point used by this command, there /must/
 --     not have been any calls to dynamic state setting commands for any
@@ -4333,6 +4327,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-uniformBuffers-06935# If any
 --     stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the
 --     pipeline bind point used by this command accesses a uniform buffer,
@@ -4939,16 +4941,6 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07934#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state enabled, then the @sampleLocationsPerPixel@ member of
---     @pSampleLocationsInfo@ in the last call to
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ equal the @rasterizationSamples@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
 -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07840# If the bound
 --     graphics pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
@@ -5430,22 +5422,36 @@
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07284#
 --     If rasterization is not disabled in the bound graphics pipeline, and
---     none of the @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
+--     none of the following is enabled:
 --
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the currently bound graphics
+--     pipeline /must/ be the same as the current subpass color and\/or
+--     depth\/stencil attachments
+--
 -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08644# If a shader object
 --     is bound to any graphics stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
 --     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the
---     @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then the most recent call to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then the most recent call to
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
 --     in the current command buffer /must/ have set @rasterizationSamples@
 --     to be the same as the number of samples for the current render pass
@@ -5548,42 +5554,42 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
 --     used to create the currently bound graphics pipeline
 --
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08911#
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08912#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is enabled, and the current render pass instance was begun
---     with
+--     feature is not enabled, and the current render pass instance was
+--     begun with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ not equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
+--     array with a @imageView@ equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound graphics pipeline, or the
---     corresponding element of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
---     if it exists, /must/ be
+--     used to create the currently bound pipeline equal to
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
--- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08912#
+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08911#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is not enabled, and the current render pass instance was
---     begun with
+--     feature is enabled, and the current render pass instance was begun
+--     with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
+--     array with a @imageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound pipeline equal to
+--     used to create the currently bound graphics pipeline, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-09362# If
@@ -5992,9 +5998,7 @@
 --     the currently bound graphics pipeline
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07286#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -6008,9 +6012,7 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07287#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -7886,10 +7888,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08601# For each push
@@ -7898,11 +7900,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-maintenance4-08602# If the
@@ -7913,20 +7914,22 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08114# Descriptors in
 --     each bound descriptor set, specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08115# If the
@@ -7979,14 +7982,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08608# If a pipeline
 --     is bound to the pipeline bind point used by this command, there
 --     /must/ not have been any calls to dynamic state setting commands for
@@ -8030,6 +8025,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-uniformBuffers-06935# If
 --     any stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to
 --     the pipeline bind point used by this command accesses a uniform
@@ -8637,16 +8640,6 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07934#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state enabled, then the @sampleLocationsPerPixel@ member of
---     @pSampleLocationsInfo@ in the last call to
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ equal the @rasterizationSamples@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07840# If the bound
 --     graphics pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
@@ -9131,22 +9124,36 @@
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07284#
 --     If rasterization is not disabled in the bound graphics pipeline, and
---     none of the @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
+--     none of the following is enabled:
 --
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the currently bound graphics
+--     pipeline /must/ be the same as the current subpass color and\/or
+--     depth\/stencil attachments
+--
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08644# If a shader
 --     object is bound to any graphics stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
 --     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the
---     @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then the most recent call to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then the most recent call to
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
 --     in the current command buffer /must/ have set @rasterizationSamples@
 --     to be the same as the number of samples for the current render pass
@@ -9249,42 +9256,42 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
 --     used to create the currently bound graphics pipeline
 --
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08911#
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08912#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is enabled, and the current render pass instance was begun
---     with
+--     feature is not enabled, and the current render pass instance was
+--     begun with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ not equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
+--     array with a @imageView@ equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound graphics pipeline, or the
---     corresponding element of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
---     if it exists, /must/ be
+--     used to create the currently bound pipeline equal to
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08912#
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08911#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is not enabled, and the current render pass instance was
---     begun with
+--     feature is enabled, and the current render pass instance was begun
+--     with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
+--     array with a @imageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound pipeline equal to
+--     used to create the currently bound graphics pipeline, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-09362#
@@ -9693,9 +9700,7 @@
 --     the currently bound graphics pipeline
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07286#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -9709,9 +9714,7 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07287#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
diff --git a/src/Vulkan/Extensions/VK_EXT_multi_draw.hs b/src/Vulkan/Extensions/VK_EXT_multi_draw.hs
--- a/src/Vulkan/Extensions/VK_EXT_multi_draw.hs
+++ b/src/Vulkan/Extensions/VK_EXT_multi_draw.hs
@@ -367,10 +367,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMultiEXT-None-08601# For each push constant that is
@@ -379,11 +379,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMultiEXT-maintenance4-08602# If the
@@ -394,20 +393,22 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMultiEXT-None-08114# Descriptors in each bound
 --     descriptor set, specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdDrawMultiEXT-None-08115# If the descriptors used by the
@@ -458,14 +459,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdDrawMultiEXT-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdDrawMultiEXT-None-08608# If a pipeline is bound to the
 --     pipeline bind point used by this command, there /must/ not have been
 --     any calls to dynamic state setting commands for any state not
@@ -509,6 +502,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdDrawMultiEXT-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdDrawMultiEXT-uniformBuffers-06935# If any stage of the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command accesses a uniform buffer, and that stage
@@ -1109,16 +1110,6 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
--- -   #VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07934# If the bound
---     graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state enabled, then the @sampleLocationsPerPixel@ member of
---     @pSampleLocationsInfo@ in the last call to
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ equal the @rasterizationSamples@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
 -- -   #VUID-vkCmdDrawMultiEXT-None-07840# If the bound graphics pipeline
 --     state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
@@ -1599,22 +1590,36 @@
 --
 -- -   #VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07284# If
 --     rasterization is not disabled in the bound graphics pipeline, and
---     none of the @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
+--     none of the following is enabled:
 --
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the currently bound graphics
+--     pipeline /must/ be the same as the current subpass color and\/or
+--     depth\/stencil attachments
+--
 -- -   #VUID-vkCmdDrawMultiEXT-None-08644# If a shader object is bound to
 --     any graphics stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
 --     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the
---     @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then the most recent call to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then the most recent call to
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
 --     in the current command buffer /must/ have set @rasterizationSamples@
 --     to be the same as the number of samples for the current render pass
@@ -1716,42 +1721,42 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
 --     used to create the currently bound graphics pipeline
 --
--- -   #VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08911# If
+-- -   #VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08912# If
 --     the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is enabled, and the current render pass instance was begun
---     with
+--     feature is not enabled, and the current render pass instance was
+--     begun with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ not equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
+--     array with a @imageView@ equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound graphics pipeline, or the
---     corresponding element of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
---     if it exists, /must/ be
+--     used to create the currently bound pipeline equal to
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
--- -   #VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08912# If
+-- -   #VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08911# If
 --     the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is not enabled, and the current render pass instance was
---     begun with
+--     feature is enabled, and the current render pass instance was begun
+--     with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
+--     array with a @imageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound pipeline equal to
+--     used to create the currently bound graphics pipeline, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
 -- -   #VUID-vkCmdDrawMultiEXT-colorAttachmentCount-09362# If the current
@@ -2159,8 +2164,6 @@
 --     the currently bound graphics pipeline
 --
 -- -   #VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07286# If
---     the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
 --     the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
@@ -2175,8 +2178,6 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
 --
 -- -   #VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07287# If
---     the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
 --     the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
@@ -3893,6 +3894,32 @@
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
 --     stages
 --
+-- -   #VUID-vkCmdDrawMultiEXT-pNext-09461# If the bound graphics pipeline
+--     state was created with
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'
+--     in the @pNext@ chain of
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,
+--     any member of
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@
+--     has a value other than @1@ in @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
+--
+-- -   #VUID-vkCmdDrawMultiEXT-None-09462# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>
+--     are used for drawing or the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, any member of the
+--     @pVertexBindingDescriptions@ parameter to the
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     call that sets this dynamic state has a value other than @1@ in
+--     @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
+--
 -- -   #VUID-vkCmdDrawMultiEXT-None-04933# The
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiDraw multiDraw>
 --     feature /must/ be enabled
@@ -4166,10 +4193,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08601# For each push constant
@@ -4178,11 +4205,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMultiIndexedEXT-maintenance4-08602# If the
@@ -4193,20 +4219,22 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08114# Descriptors in each bound
 --     descriptor set, specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08115# If the descriptors used
@@ -4259,14 +4287,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08608# If a pipeline is bound to
 --     the pipeline bind point used by this command, there /must/ not have
 --     been any calls to dynamic state setting commands for any state not
@@ -4310,6 +4330,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdDrawMultiIndexedEXT-uniformBuffers-06935# If any stage of
 --     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline
 --     bind point used by this command accesses a uniform buffer, and that
@@ -4910,16 +4938,6 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
--- -   #VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07934# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state enabled, then the @sampleLocationsPerPixel@ member of
---     @pSampleLocationsInfo@ in the last call to
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ equal the @rasterizationSamples@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
 -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07840# If the bound graphics
 --     pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
@@ -5400,22 +5418,36 @@
 --
 -- -   #VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07284#
 --     If rasterization is not disabled in the bound graphics pipeline, and
---     none of the @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
+--     none of the following is enabled:
 --
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the currently bound graphics
+--     pipeline /must/ be the same as the current subpass color and\/or
+--     depth\/stencil attachments
+--
 -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08644# If a shader object is
 --     bound to any graphics stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
 --     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the
---     @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then the most recent call to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then the most recent call to
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
 --     in the current command buffer /must/ have set @rasterizationSamples@
 --     to be the same as the number of samples for the current render pass
@@ -5517,42 +5549,42 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
 --     used to create the currently bound graphics pipeline
 --
--- -   #VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08911#
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08912#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is enabled, and the current render pass instance was begun
---     with
+--     feature is not enabled, and the current render pass instance was
+--     begun with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ not equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
+--     array with a @imageView@ equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound graphics pipeline, or the
---     corresponding element of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
---     if it exists, /must/ be
+--     used to create the currently bound pipeline equal to
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
--- -   #VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08912#
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08911#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is not enabled, and the current render pass instance was
---     begun with
+--     feature is enabled, and the current render pass instance was begun
+--     with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
+--     array with a @imageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound pipeline equal to
+--     used to create the currently bound graphics pipeline, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
 -- -   #VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-09362# If the
@@ -5960,9 +5992,7 @@
 --     the currently bound graphics pipeline
 --
 -- -   #VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07286#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -5976,9 +6006,7 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
 --
 -- -   #VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07287#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -7713,6 +7741,32 @@
 --     @indexType@, where the index buffer, @indexType@, and @offset@ are
 --     specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-pNext-09461# If the bound graphics
+--     pipeline state was created with
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'
+--     in the @pNext@ chain of
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,
+--     any member of
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@
+--     has a value other than @1@ in @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
+--
+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-09462# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>
+--     are used for drawing or the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, any member of the
+--     @pVertexBindingDescriptions@ parameter to the
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     call that sets this dynamic state has a value other than @1@ in
+--     @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
 --
 -- -   #VUID-vkCmdDrawMultiIndexedEXT-robustBufferAccess2-08798# If
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs b/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs
--- a/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs
+++ b/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs
@@ -60,7 +60,7 @@
 -- When using pipeline libraries in ray tracing pipelines, a library might
 -- get linked into different pipelines in an incremental way. An
 -- application can have a strategy where a ray tracing pipeline is
--- comprised of N pipeline libraries and is later augumented by creating a
+-- comprised of N pipeline libraries and is later augmented by creating a
 -- new pipeline with N + 1 libraries. Without this extension, all group
 -- handles must be re-queried as the group handle is tied to the pipeline,
 -- not the library. This is problematic for applications which aim to
diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs-boot b/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs-boot
@@ -60,7 +60,7 @@
 -- When using pipeline libraries in ray tracing pipelines, a library might
 -- get linked into different pipelines in an incremental way. An
 -- application can have a strategy where a ray tracing pipeline is
--- comprised of N pipeline libraries and is later augumented by creating a
+-- comprised of N pipeline libraries and is later augmented by creating a
 -- new pipeline with N + 1 libraries. Without this extension, all group
 -- handles must be re-queried as the group handle is tied to the pipeline,
 -- not the library. This is problematic for applications which aim to
diff --git a/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs b/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs
--- a/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs
+++ b/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs
@@ -1592,10 +1592,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08601# For each push
@@ -1604,11 +1604,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-08602# If the
@@ -1619,20 +1618,22 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08114# Descriptors in each
 --     bound descriptor set, specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08115# If the descriptors
@@ -1685,14 +1686,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08608# If a pipeline is
 --     bound to the pipeline bind point used by this command, there /must/
 --     not have been any calls to dynamic state setting commands for any
@@ -1736,6 +1729,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-uniformBuffers-06935# If any
 --     stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the
 --     pipeline bind point used by this command accesses a uniform buffer,
@@ -2342,16 +2343,6 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07934#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state enabled, then the @sampleLocationsPerPixel@ member of
---     @pSampleLocationsInfo@ in the last call to
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ equal the @rasterizationSamples@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07840# If the bound
 --     graphics pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
@@ -2833,22 +2824,36 @@
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07284#
 --     If rasterization is not disabled in the bound graphics pipeline, and
---     none of the @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
+--     none of the following is enabled:
 --
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the currently bound graphics
+--     pipeline /must/ be the same as the current subpass color and\/or
+--     depth\/stencil attachments
+--
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08644# If a shader object
 --     is bound to any graphics stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
 --     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the
---     @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then the most recent call to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then the most recent call to
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
 --     in the current command buffer /must/ have set @rasterizationSamples@
 --     to be the same as the number of samples for the current render pass
@@ -2951,42 +2956,42 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
 --     used to create the currently bound graphics pipeline
 --
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08911#
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08912#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is enabled, and the current render pass instance was begun
---     with
+--     feature is not enabled, and the current render pass instance was
+--     begun with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ not equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
+--     array with a @imageView@ equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound graphics pipeline, or the
---     corresponding element of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
---     if it exists, /must/ be
+--     used to create the currently bound pipeline equal to
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
--- -   #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08912#
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08911#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is not enabled, and the current render pass instance was
---     begun with
+--     feature is enabled, and the current render pass instance was begun
+--     with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
+--     array with a @imageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound pipeline equal to
+--     used to create the currently bound graphics pipeline, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-09362# If
@@ -3395,9 +3400,7 @@
 --     the currently bound graphics pipeline
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07286#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -3411,9 +3414,7 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07287#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -5115,6 +5116,32 @@
 --     or
 --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'
 --     stages
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-pNext-09461# If the bound
+--     graphics pipeline state was created with
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'
+--     in the @pNext@ chain of
+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,
+--     any member of
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@
+--     has a value other than @1@ in @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
+--
+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09462# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>
+--     are used for drawing or the bound graphics pipeline state was
+--     created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'
+--     dynamic state enabled, any member of the
+--     @pVertexBindingDescriptions@ parameter to the
+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'
+--     call that sets this dynamic state has a value other than @1@ in
+--     @divisor@, and
+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@
+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@
+--     /must/ be @0@
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287#
 --     'PhysicalDeviceTransformFeedbackFeaturesEXT'::@transformFeedback@
diff --git a/src/Vulkan/Extensions/VK_EXT_validation_features.hs b/src/Vulkan/Extensions/VK_EXT_validation_features.hs
--- a/src/Vulkan/Extensions/VK_EXT_validation_features.hs
+++ b/src/Vulkan/Extensions/VK_EXT_validation_features.hs
@@ -15,7 +15,7 @@
 --     248
 --
 -- [__Revision__]
---     5
+--     6
 --
 -- [__Ratification Status__]
 --     Not ratified
@@ -23,6 +23,12 @@
 -- [__Extension and Version Dependencies__]
 --     None
 --
+-- [__Deprecation State__]
+--
+--     -   /Deprecated/ by
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_layer_settings VK_EXT_layer_settings>
+--         extension
+--
 -- [__Special Use__]
 --
 --     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Debugging tools>
@@ -67,10 +73,10 @@
 -- values that disable specific validation layer features that are enabled
 -- by default.
 --
--- Note
+-- == Deprecation by @VK_EXT_layer_settings@
 --
--- The @VK_EXT_validation_features@ extension subsumes all the
--- functionality provided in the @VK_EXT_validation_flags@ extension.
+-- Functionality in this extension is subsumed into the
+-- @VK_EXT_layer_settings@ extension.
 --
 -- == New Structures
 --
@@ -116,6 +122,10 @@
 --
 --     -   Add Shader Validation Cache disable
 --
+-- -   Revision 6, 2023-09-25 (Christophe Riccio)
+--
+--     -   Marked as deprecated by VK_EXT_layer_settings
+--
 -- == See Also
 --
 -- 'ValidationFeatureDisableEXT', 'ValidationFeatureEnableEXT',
@@ -496,11 +506,11 @@
       conNameValidationFeatureDisableEXT
       ValidationFeatureDisableEXT
 
-type EXT_VALIDATION_FEATURES_SPEC_VERSION = 5
+type EXT_VALIDATION_FEATURES_SPEC_VERSION = 6
 
 -- No documentation found for TopLevel "VK_EXT_VALIDATION_FEATURES_SPEC_VERSION"
 pattern EXT_VALIDATION_FEATURES_SPEC_VERSION :: forall a . Integral a => a
-pattern EXT_VALIDATION_FEATURES_SPEC_VERSION = 5
+pattern EXT_VALIDATION_FEATURES_SPEC_VERSION = 6
 
 
 type EXT_VALIDATION_FEATURES_EXTENSION_NAME = "VK_EXT_validation_features"
diff --git a/src/Vulkan/Extensions/VK_EXT_validation_features.hs-boot b/src/Vulkan/Extensions/VK_EXT_validation_features.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_validation_features.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_validation_features.hs-boot
@@ -15,7 +15,7 @@
 --     248
 --
 -- [__Revision__]
---     5
+--     6
 --
 -- [__Ratification Status__]
 --     Not ratified
@@ -23,6 +23,12 @@
 -- [__Extension and Version Dependencies__]
 --     None
 --
+-- [__Deprecation State__]
+--
+--     -   /Deprecated/ by
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_layer_settings VK_EXT_layer_settings>
+--         extension
+--
 -- [__Special Use__]
 --
 --     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Debugging tools>
@@ -67,10 +73,10 @@
 -- values that disable specific validation layer features that are enabled
 -- by default.
 --
--- Note
+-- == Deprecation by @VK_EXT_layer_settings@
 --
--- The @VK_EXT_validation_features@ extension subsumes all the
--- functionality provided in the @VK_EXT_validation_flags@ extension.
+-- Functionality in this extension is subsumed into the
+-- @VK_EXT_layer_settings@ extension.
 --
 -- == New Structures
 --
@@ -115,6 +121,10 @@
 -- -   Revision 5, 2021-05-18 (Tony Barbour)
 --
 --     -   Add Shader Validation Cache disable
+--
+-- -   Revision 6, 2023-09-25 (Christophe Riccio)
+--
+--     -   Marked as deprecated by VK_EXT_layer_settings
 --
 -- == See Also
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_validation_flags.hs b/src/Vulkan/Extensions/VK_EXT_validation_flags.hs
--- a/src/Vulkan/Extensions/VK_EXT_validation_flags.hs
+++ b/src/Vulkan/Extensions/VK_EXT_validation_flags.hs
@@ -15,7 +15,7 @@
 --     62
 --
 -- [__Revision__]
---     2
+--     3
 --
 -- [__Ratification Status__]
 --     Not ratified
@@ -26,7 +26,7 @@
 -- [__Deprecation State__]
 --
 --     -   /Deprecated/ by
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_features VK_EXT_validation_features>
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_layer_settings VK_EXT_layer_settings>
 --         extension
 --
 -- [__Special Use__]
@@ -62,10 +62,10 @@
 -- contains an array of 'ValidationCheckEXT' values that will be disabled
 -- by the validation layers.
 --
--- == Deprecation by @VK_EXT_validation_features@
+-- == Deprecation by @VK_EXT_layer_settings@
 --
 -- Functionality in this extension is subsumed into the
--- @VK_EXT_validation_features@ extension.
+-- @VK_EXT_layer_settings@ extension.
 --
 -- == New Structures
 --
@@ -89,9 +89,13 @@
 --
 -- == Version History
 --
+-- -   Revision 3, 2023-09-25 (Christophe Riccio)
+--
+--     -   Marked as deprecated by VK_EXT_layer_settings
+--
 -- -   Revision 2, 2019-08-19 (Mark Lobodzinski)
 --
---     -   Marked as deprecated
+--     -   Marked as deprecated by VK_EXT_validation_features
 --
 -- -   Revision 1, 2016-08-26 (Courtney Goeltzenleuchter)
 --
@@ -259,11 +263,11 @@
       conNameValidationCheckEXT
       ValidationCheckEXT
 
-type EXT_VALIDATION_FLAGS_SPEC_VERSION = 2
+type EXT_VALIDATION_FLAGS_SPEC_VERSION = 3
 
 -- No documentation found for TopLevel "VK_EXT_VALIDATION_FLAGS_SPEC_VERSION"
 pattern EXT_VALIDATION_FLAGS_SPEC_VERSION :: forall a . Integral a => a
-pattern EXT_VALIDATION_FLAGS_SPEC_VERSION = 2
+pattern EXT_VALIDATION_FLAGS_SPEC_VERSION = 3
 
 
 type EXT_VALIDATION_FLAGS_EXTENSION_NAME = "VK_EXT_validation_flags"
diff --git a/src/Vulkan/Extensions/VK_EXT_validation_flags.hs-boot b/src/Vulkan/Extensions/VK_EXT_validation_flags.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_validation_flags.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_validation_flags.hs-boot
@@ -15,7 +15,7 @@
 --     62
 --
 -- [__Revision__]
---     2
+--     3
 --
 -- [__Ratification Status__]
 --     Not ratified
@@ -26,7 +26,7 @@
 -- [__Deprecation State__]
 --
 --     -   /Deprecated/ by
---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_features VK_EXT_validation_features>
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_layer_settings VK_EXT_layer_settings>
 --         extension
 --
 -- [__Special Use__]
@@ -62,10 +62,10 @@
 -- contains an array of 'ValidationCheckEXT' values that will be disabled
 -- by the validation layers.
 --
--- == Deprecation by @VK_EXT_validation_features@
+-- == Deprecation by @VK_EXT_layer_settings@
 --
 -- Functionality in this extension is subsumed into the
--- @VK_EXT_validation_features@ extension.
+-- @VK_EXT_layer_settings@ extension.
 --
 -- == New Structures
 --
@@ -89,9 +89,13 @@
 --
 -- == Version History
 --
+-- -   Revision 3, 2023-09-25 (Christophe Riccio)
+--
+--     -   Marked as deprecated by VK_EXT_layer_settings
+--
 -- -   Revision 2, 2019-08-19 (Mark Lobodzinski)
 --
---     -   Marked as deprecated
+--     -   Marked as deprecated by VK_EXT_validation_features
 --
 -- -   Revision 1, 2016-08-26 (Courtney Goeltzenleuchter)
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs b/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs
--- a/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs
+++ b/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs
@@ -25,6 +25,12 @@
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
+-- [__Deprecation State__]
+--
+--     -   /Promoted/ to
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_vertex_attribute_divisor VK_KHR_vertex_attribute_divisor>
+--         extension
+--
 -- [__Contact__]
 --
 --     -   Vikram Kushwaha
@@ -78,11 +84,11 @@
 --
 -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
 --
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT'
+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT'
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT'
 --
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT'
+--     -   'STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT'
 --
 -- == Issues
 --
@@ -166,24 +172,24 @@
 --
 -- This page is a generated document. Fixes and changes should be made to
 -- the generator scripts, not directly.
-module Vulkan.Extensions.VK_EXT_vertex_attribute_divisor  ( VertexInputBindingDivisorDescriptionEXT(..)
-                                                          , PipelineVertexInputDivisorStateCreateInfoEXT(..)
+module Vulkan.Extensions.VK_EXT_vertex_attribute_divisor  ( pattern STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT
+                                                          , pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT
                                                           , PhysicalDeviceVertexAttributeDivisorPropertiesEXT(..)
-                                                          , PhysicalDeviceVertexAttributeDivisorFeaturesEXT(..)
+                                                          , VertexInputBindingDivisorDescriptionEXT
+                                                          , PipelineVertexInputDivisorStateCreateInfoEXT
+                                                          , PhysicalDeviceVertexAttributeDivisorFeaturesEXT
                                                           , EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION
                                                           , pattern EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION
                                                           , EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME
                                                           , pattern EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME
+                                                          , VertexInputBindingDivisorDescriptionKHR(..)
+                                                          , PipelineVertexInputDivisorStateCreateInfoKHR(..)
+                                                          , PhysicalDeviceVertexAttributeDivisorFeaturesKHR(..)
                                                           ) where
 
 import Foreign.Marshal.Alloc (allocaBytes)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
-import Control.Monad.Trans.Class (lift)
-import Control.Monad.Trans.Cont (evalContT)
-import Data.Vector (generateM)
-import qualified Data.Vector (imapM_)
-import qualified Data.Vector (length)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.CStruct (ToCStruct)
@@ -199,161 +205,22 @@
 import Foreign.Ptr (Ptr)
 import Data.Word (Word32)
 import Data.Kind (Type)
-import Control.Monad.Trans.Cont (ContT(..))
-import Data.Vector (Vector)
-import Vulkan.CStruct.Utils (advancePtrBytes)
-import Vulkan.Core10.FundamentalTypes (bool32ToBool)
-import Vulkan.Core10.FundamentalTypes (boolToBool32)
-import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesKHR)
+import Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PipelineVertexInputDivisorStateCreateInfoKHR)
 import Vulkan.Core10.Enums.StructureType (StructureType)
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT))
+import Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (VertexInputBindingDivisorDescriptionKHR)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT))
-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT))
--- | VkVertexInputBindingDivisorDescriptionEXT - Structure specifying a
--- divisor used in instanced rendering
---
--- = Description
---
--- If this structure is not used to define a divisor value for an
--- attribute, then the divisor has a logical default value of 1.
---
--- == Valid Usage
---
--- -   #VUID-VkVertexInputBindingDivisorDescriptionEXT-binding-01869#
---     @binding@ /must/ be less than
---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@
---
--- -   #VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateZeroDivisor-02228#
---     If the @vertexAttributeInstanceRateZeroDivisor@ feature is not
---     enabled, @divisor@ /must/ not be @0@
---
--- -   #VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateDivisor-02229#
---     If the @vertexAttributeInstanceRateDivisor@ feature is not enabled,
---     @divisor@ /must/ be @1@
---
--- -   #VUID-VkVertexInputBindingDivisorDescriptionEXT-divisor-01870#
---     @divisor@ /must/ be a value between @0@ and
---     'PhysicalDeviceVertexAttributeDivisorPropertiesEXT'::@maxVertexAttribDivisor@,
---     inclusive
---
--- -   #VUID-VkVertexInputBindingDivisorDescriptionEXT-inputRate-01871#
---     'Vulkan.Core10.Pipeline.VertexInputBindingDescription'::@inputRate@
---     /must/ be of type
---     'Vulkan.Core10.Enums.VertexInputRate.VERTEX_INPUT_RATE_INSTANCE' for
---     this @binding@
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisor VK_EXT_vertex_attribute_divisor>,
--- 'PipelineVertexInputDivisorStateCreateInfoEXT'
-data VertexInputBindingDivisorDescriptionEXT = VertexInputBindingDivisorDescriptionEXT
-  { -- | @binding@ is the binding number for which the divisor is specified.
-    binding :: Word32
-  , -- | @divisor@ is the number of successive instances that will use the same
-    -- value of the vertex attribute when instanced rendering is enabled. For
-    -- example, if the divisor is N, the same vertex attribute will be applied
-    -- to N successive instances before moving on to the next vertex attribute.
-    -- The maximum value of @divisor@ is implementation-dependent and can be
-    -- queried using
-    -- 'PhysicalDeviceVertexAttributeDivisorPropertiesEXT'::@maxVertexAttribDivisor@.
-    -- A value of @0@ /can/ be used for the divisor if the
-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor vertexAttributeInstanceRateZeroDivisor>
-    -- feature is enabled. In this case, the same vertex attribute will be
-    -- applied to all instances.
-    divisor :: Word32
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (VertexInputBindingDivisorDescriptionEXT)
-#endif
-deriving instance Show VertexInputBindingDivisorDescriptionEXT
-
-instance ToCStruct VertexInputBindingDivisorDescriptionEXT where
-  withCStruct x f = allocaBytes 8 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p VertexInputBindingDivisorDescriptionEXT{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr Word32)) (binding)
-    poke ((p `plusPtr` 4 :: Ptr Word32)) (divisor)
-    f
-  cStructSize = 8
-  cStructAlignment = 4
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)
-    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)
-    f
-
-instance FromCStruct VertexInputBindingDivisorDescriptionEXT where
-  peekCStruct p = do
-    binding <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))
-    divisor <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
-    pure $ VertexInputBindingDivisorDescriptionEXT
-             binding divisor
-
-instance Storable VertexInputBindingDivisorDescriptionEXT where
-  sizeOf ~_ = 8
-  alignment ~_ = 4
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
-
-instance Zero VertexInputBindingDivisorDescriptionEXT where
-  zero = VertexInputBindingDivisorDescriptionEXT
-           zero
-           zero
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR))
+import Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesKHR(..))
+import Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PipelineVertexInputDivisorStateCreateInfoKHR(..))
+import Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (VertexInputBindingDivisorDescriptionKHR(..))
+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT"
+pattern STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR
 
 
--- | VkPipelineVertexInputDivisorStateCreateInfoEXT - Structure specifying
--- vertex attributes assignment during instanced rendering
---
--- == Valid Usage (Implicit)
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisor VK_EXT_vertex_attribute_divisor>,
--- 'Vulkan.Core10.Enums.StructureType.StructureType',
--- 'VertexInputBindingDivisorDescriptionEXT'
-data PipelineVertexInputDivisorStateCreateInfoEXT = PipelineVertexInputDivisorStateCreateInfoEXT
-  { -- | @pVertexBindingDivisors@ is a pointer to an array of
-    -- 'VertexInputBindingDivisorDescriptionEXT' structures specifying the
-    -- divisor value for each binding.
-    --
-    -- #VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-pVertexBindingDivisors-parameter#
-    -- @pVertexBindingDivisors@ /must/ be a valid pointer to an array of
-    -- @vertexBindingDivisorCount@ 'VertexInputBindingDivisorDescriptionEXT'
-    -- structures
-    vertexBindingDivisors :: Vector VertexInputBindingDivisorDescriptionEXT }
-  deriving (Typeable)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PipelineVertexInputDivisorStateCreateInfoEXT)
-#endif
-deriving instance Show PipelineVertexInputDivisorStateCreateInfoEXT
-
-instance ToCStruct PipelineVertexInputDivisorStateCreateInfoEXT where
-  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PipelineVertexInputDivisorStateCreateInfoEXT{..} f = evalContT $ do
-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT)
-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (vertexBindingDivisors)) :: Word32))
-    pPVertexBindingDivisors' <- ContT $ allocaBytes @VertexInputBindingDivisorDescriptionEXT ((Data.Vector.length (vertexBindingDivisors)) * 8)
-    lift $ Data.Vector.imapM_ (\i e -> poke (pPVertexBindingDivisors' `plusPtr` (8 * (i)) :: Ptr VertexInputBindingDivisorDescriptionEXT) (e)) (vertexBindingDivisors)
-    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr VertexInputBindingDivisorDescriptionEXT))) (pPVertexBindingDivisors')
-    lift $ f
-  cStructSize = 32
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    f
-
-instance FromCStruct PipelineVertexInputDivisorStateCreateInfoEXT where
-  peekCStruct p = do
-    vertexBindingDivisorCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
-    pVertexBindingDivisors <- peek @(Ptr VertexInputBindingDivisorDescriptionEXT) ((p `plusPtr` 24 :: Ptr (Ptr VertexInputBindingDivisorDescriptionEXT)))
-    pVertexBindingDivisors' <- generateM (fromIntegral vertexBindingDivisorCount) (\i -> peekCStruct @VertexInputBindingDivisorDescriptionEXT ((pVertexBindingDivisors `advancePtrBytes` (8 * (i)) :: Ptr VertexInputBindingDivisorDescriptionEXT)))
-    pure $ PipelineVertexInputDivisorStateCreateInfoEXT
-             pVertexBindingDivisors'
-
-instance Zero PipelineVertexInputDivisorStateCreateInfoEXT where
-  zero = PipelineVertexInputDivisorStateCreateInfoEXT
-           mempty
+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR
 
 
 -- | VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT - Structure
@@ -377,9 +244,9 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisor VK_EXT_vertex_attribute_divisor>,
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PhysicalDeviceVertexAttributeDivisorPropertiesEXT = PhysicalDeviceVertexAttributeDivisorPropertiesEXT
-  { -- | #limits-maxVertexAttribDivisor# @maxVertexAttribDivisor@ is the maximum
-    -- value of the number of instances that will repeat the value of vertex
-    -- attribute data when instanced rendering is enabled.
+  { -- | #extension-limits-maxVertexAttribDivisor# @maxVertexAttribDivisor@ is
+    -- the maximum value of the number of instances that will repeat the value
+    -- of vertex attribute data when instanced rendering is enabled.
     maxVertexAttribDivisor :: Word32 }
   deriving (Typeable, Eq)
 #if defined(GENERIC_INSTANCES)
@@ -419,83 +286,16 @@
            zero
 
 
--- | VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT - Structure describing
--- if fetching of vertex attribute may be repeated for instanced rendering
---
--- = Members
---
--- This structure describes the following features:
---
--- = Description
---
--- If the 'PhysicalDeviceVertexAttributeDivisorFeaturesEXT' structure is
--- included in the @pNext@ chain of the
--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'
--- structure passed to
--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',
--- it is filled in to indicate whether each corresponding feature is
--- supported. 'PhysicalDeviceVertexAttributeDivisorFeaturesEXT' /can/ also
--- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'
--- to selectively enable these features.
---
--- == Valid Usage (Implicit)
---
--- = See Also
---
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisor VK_EXT_vertex_attribute_divisor>,
--- 'Vulkan.Core10.FundamentalTypes.Bool32',
--- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data PhysicalDeviceVertexAttributeDivisorFeaturesEXT = PhysicalDeviceVertexAttributeDivisorFeaturesEXT
-  { -- | #features-vertexAttributeInstanceRateDivisor#
-    -- @vertexAttributeInstanceRateDivisor@ specifies whether vertex attribute
-    -- fetching may be repeated in case of instanced rendering.
-    vertexAttributeInstanceRateDivisor :: Bool
-  , -- | #features-vertexAttributeInstanceRateZeroDivisor#
-    -- @vertexAttributeInstanceRateZeroDivisor@ specifies whether a zero value
-    -- for 'VertexInputBindingDivisorDescriptionEXT'::@divisor@ is supported.
-    vertexAttributeInstanceRateZeroDivisor :: Bool
-  }
-  deriving (Typeable, Eq)
-#if defined(GENERIC_INSTANCES)
-deriving instance Generic (PhysicalDeviceVertexAttributeDivisorFeaturesEXT)
-#endif
-deriving instance Show PhysicalDeviceVertexAttributeDivisorFeaturesEXT
+-- No documentation found for TopLevel "VkVertexInputBindingDivisorDescriptionEXT"
+type VertexInputBindingDivisorDescriptionEXT = VertexInputBindingDivisorDescriptionKHR
 
-instance ToCStruct PhysicalDeviceVertexAttributeDivisorFeaturesEXT where
-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PhysicalDeviceVertexAttributeDivisorFeaturesEXT{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (vertexAttributeInstanceRateDivisor))
-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (vertexAttributeInstanceRateZeroDivisor))
-    f
-  cStructSize = 24
-  cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))
-    f
 
-instance FromCStruct PhysicalDeviceVertexAttributeDivisorFeaturesEXT where
-  peekCStruct p = do
-    vertexAttributeInstanceRateDivisor <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
-    vertexAttributeInstanceRateZeroDivisor <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
-    pure $ PhysicalDeviceVertexAttributeDivisorFeaturesEXT
-             (bool32ToBool vertexAttributeInstanceRateDivisor)
-             (bool32ToBool vertexAttributeInstanceRateZeroDivisor)
+-- No documentation found for TopLevel "VkPipelineVertexInputDivisorStateCreateInfoEXT"
+type PipelineVertexInputDivisorStateCreateInfoEXT = PipelineVertexInputDivisorStateCreateInfoKHR
 
-instance Storable PhysicalDeviceVertexAttributeDivisorFeaturesEXT where
-  sizeOf ~_ = 24
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
 
-instance Zero PhysicalDeviceVertexAttributeDivisorFeaturesEXT where
-  zero = PhysicalDeviceVertexAttributeDivisorFeaturesEXT
-           zero
-           zero
+-- No documentation found for TopLevel "VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT"
+type PhysicalDeviceVertexAttributeDivisorFeaturesEXT = PhysicalDeviceVertexAttributeDivisorFeaturesKHR
 
 
 type EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION = 3
diff --git a/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs-boot b/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs-boot
--- a/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs-boot
+++ b/src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs-boot
@@ -25,6 +25,12 @@
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
 --
+-- [__Deprecation State__]
+--
+--     -   /Promoted/ to
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_vertex_attribute_divisor VK_KHR_vertex_attribute_divisor>
+--         extension
+--
 -- [__Contact__]
 --
 --     -   Vikram Kushwaha
@@ -78,11 +84,11 @@
 --
 -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
 --
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT'
+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT'
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT'
 --
---     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT'
+--     -   'STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT'
 --
 -- == Issues
 --
@@ -166,44 +172,16 @@
 --
 -- This page is a generated document. Fixes and changes should be made to
 -- the generator scripts, not directly.
-module Vulkan.Extensions.VK_EXT_vertex_attribute_divisor  ( PhysicalDeviceVertexAttributeDivisorFeaturesEXT
-                                                          , PhysicalDeviceVertexAttributeDivisorPropertiesEXT
-                                                          , PipelineVertexInputDivisorStateCreateInfoEXT
-                                                          , VertexInputBindingDivisorDescriptionEXT
-                                                          ) where
+module Vulkan.Extensions.VK_EXT_vertex_attribute_divisor  (PhysicalDeviceVertexAttributeDivisorPropertiesEXT) where
 
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
 
-data PhysicalDeviceVertexAttributeDivisorFeaturesEXT
-
-instance ToCStruct PhysicalDeviceVertexAttributeDivisorFeaturesEXT
-instance Show PhysicalDeviceVertexAttributeDivisorFeaturesEXT
-
-instance FromCStruct PhysicalDeviceVertexAttributeDivisorFeaturesEXT
-
-
 data PhysicalDeviceVertexAttributeDivisorPropertiesEXT
 
 instance ToCStruct PhysicalDeviceVertexAttributeDivisorPropertiesEXT
 instance Show PhysicalDeviceVertexAttributeDivisorPropertiesEXT
 
 instance FromCStruct PhysicalDeviceVertexAttributeDivisorPropertiesEXT
-
-
-data PipelineVertexInputDivisorStateCreateInfoEXT
-
-instance ToCStruct PipelineVertexInputDivisorStateCreateInfoEXT
-instance Show PipelineVertexInputDivisorStateCreateInfoEXT
-
-instance FromCStruct PipelineVertexInputDivisorStateCreateInfoEXT
-
-
-data VertexInputBindingDivisorDescriptionEXT
-
-instance ToCStruct VertexInputBindingDivisorDescriptionEXT
-instance Show VertexInputBindingDivisorDescriptionEXT
-
-instance FromCStruct VertexInputBindingDivisorDescriptionEXT
 
diff --git a/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs b/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs
--- a/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs
+++ b/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs
@@ -15,7 +15,7 @@
 --     405
 --
 -- [__Revision__]
---     2
+--     3
 --
 -- [__Ratification Status__]
 --     Not ratified
@@ -38,7 +38,7 @@
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
---     2022-11-17
+--     2023-08-16
 --
 -- [__Interactions and External Dependencies__]
 --
@@ -80,10 +80,10 @@
 -- pipeline.
 --
 -- A set of new built-in output variables are used to express a visible
--- cluster. In addition, a new built-in function is used to emit these
--- variables from CCS to the IA stage. The IA stage can use these variables
--- to fetches vertices of a visible cluster and drive vertex shaders to
--- shading these vertices.
+-- cluster, including per-cluster shading rate. In addition, a new built-in
+-- function is used to emit these variables from CCS to the IA stage. The
+-- IA stage can use these variables to fetches vertices of a visible
+-- cluster and drive vertex shaders to shading these vertices.
 --
 -- Note that CCS do not work with geometry or tessellation shaders, but
 -- both IA and vertex shaders are preserved. Vertex shaders are still used
@@ -99,6 +99,10 @@
 --
 -- == New Structures
 --
+-- -   Extending 'PhysicalDeviceClusterCullingShaderFeaturesHUAWEI':
+--
+--     -   'PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI'
+--
 -- -   Extending
 --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
 --     'Vulkan.Core10.Device.DeviceCreateInfo':
@@ -137,6 +141,8 @@
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI'
 --
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI'
+--
 -- == New Built-In Variables
 --
 -- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-indexcounthuawei IndexCountHUAWEI>
@@ -155,6 +161,8 @@
 --
 -- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-clusteridhuawei ClusterIDHUAWEI>
 --
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-clustershadingratehuawei ClusterShadingRateHUAWEI>
+--
 -- == New SPIR-V Capability
 --
 -- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ClusterCullingShadingHUAWEI ClusterCullingShadingHUAWEI>
@@ -176,13 +184,8 @@
 -- > // - warpsize = 32
 -- > layout(local_size_x=GPU_GROUP_SIZE, local_size_y=1, local_size_z=1) in;
 -- >
--- >
--- > #define GPU_CLUSTER_DESCRIPTOR_BINDING      0
--- > #define GPU_DRAW_BUFFER_BINDING             1
--- > #define GPU_INSTANCE_DESCRIPTOR_BINDING     2
--- >
--- > const float pi_half = 1.570795;
--- > uint instance_id;
+-- > #define GPU_DRAW_BUFFER_BINDING             0
+-- > #define GPU_INSTANCE_DESCRIPTOR_BINDING     1
 -- >
 -- > struct BoundingSphere
 -- > {
@@ -190,19 +193,6 @@
 -- >   float radius;
 -- > };
 -- >
--- > struct BoundingCone
--- > {
--- >   vec3 normal;
--- >   float angle;
--- > };
--- >
--- > struct ClusterDescriptor
--- > {
--- >   BoundingSphere sphere;
--- >   BoundingCone cone;
--- >   uint instance_idx;
--- > };
--- >
 -- > struct InstanceData
 -- > {
 -- >   mat4 mvp_matrix;                      // mvp matrix.
@@ -238,15 +228,9 @@
 -- >   int  gl_VertexOffsetHUAWEI;
 -- >   uint gl_FirstInstanceHUAWEI;
 -- >   uint gl_ClusterIDHUAWEI;
--- > };
--- >
--- >
--- > layout(binding = GPU_CLUSTER_DESCRIPTOR_BINDING, std430) readonly buffer cluster_descriptor_ssbo
--- > {
--- >         ClusterDescriptor cluster_descriptors[];
+-- >   uint gl_ClusterShadingRateHUAWEI;
 -- > };
 -- >
--- >
 -- > layout(binding = GPU_DRAW_BUFFER_BINDING, std430) buffer draw_indirect_ssbo
 -- > {
 -- >         DrawElementsCommand draw_commands[];
@@ -258,13 +242,13 @@
 -- > };
 -- >
 -- >
--- > bool isFrontFaceVisible( vec3 sphere_center, float sphere_radius, vec3 cone_normal, float cone_angle )
+-- > float Distance(uint instance_id)
 -- > {
--- >   vec3 sphere_center_dir = normalize(sphere_center -
--- >                            instance_descriptors[instance_id].instance_data.view_origin);
+-- >     vec3 v = normalize(instance_descriptor[instance_id].sphere.center -
+-- >                      instance_descriptor[instance_id].instance_data.view_origin);
+-- >     float dist = sqrt(dot(v,v));
 -- >
--- >   float sin_cone_angle = sin(min(cone_angle, pi_half));
--- >   return dot(cone_normal, sphere_center_dir) < sin_cone_angle;
+-- >     return dist;
 -- > }
 -- >
 -- > bool isSphereOutsideFrustum( vec3 sphere_center, float sphere_radius )
@@ -284,38 +268,40 @@
 -- >
 -- > void main()
 -- > {
--- >     uint cluster_id = gl_GlobalInvocationID.x;
--- >     ClusterDescriptor desc = cluster_descriptors[cluster_id];
--- >
 -- >     // get instance description
--- >     instance_id = desc.instance_idx;
+-- >     instance_id = gl_GlobalInvocationID.x;
 -- >     InstanceDescriptor inst_desc = instance_descriptors[instance_id];
 -- >
 -- >     //instance based culling
--- >     bool instance_render = !isSphereOutsideFrustum(inst_desc.sphere.center, inst_desc.sphere.radius);
+-- >     bool render = !isSphereOutsideFrustum(inst_desc.sphere.center, inst_desc.sphere.radius);
 -- >
--- >     if( instance_render)
+-- >     if (render)
 -- >     {
--- >         // cluster based culling
--- >         bool render = (!isSphereOutsideFrustum(desc.sphere.center,
--- >         desc.sphere.radius) && isFrontFaceVisible(desc.sphere.center, desc.sphere.radius, desc.cone.norm
--- >         al, desc.cone.angle));
+-- >         // calculate distance
+-- >         float distance = Distance(instance_id);
 -- >
--- >         if (render)
--- >         {
--- >             // this cluster passed coarse-level culling, update built-in output variable.
--- >             // in case of indexed mode:
--- >             gl_IndexCountHUAWEI     = draw_commands[cluster_id].indexcount;
--- >             gl_InstanceCountHUAWEI  = draw_commands[cluster_id].instanceCount;
--- >             gl_FirstIndexHUAWEI     = draw_commands[cluster_id].firstIndex;
--- >             gl_VertexOffsetHUAWEI   = draw_commands[cluster_id].vertexoffset;
--- >             gl_FirstInstanceHUAWEI  = draw_commands[cluster_id].firstInstance;
--- >             gl_ClusterIDHUAWEI      = draw_commands[cluster_id].cluster_id;
+-- >         // update shading rate built-in variable
+-- >         if(distance > 0.7)
+-- >             gl_ClusterShadingRateHUAWEI =
+-- >                 gl_ShadingRateFlag4VerticalPixelsEXT | gl_ShadingRateFlag4HorizontalPixelsEXT;
+-- >         else if(distance > 0.3)
+-- >             gl_ClusterShadingRateHUAWEI =
+-- >                 gl_ShadingRateFlag2VerticalPixelsEXT | gl_ShadingRateFlag2HorizontalPixelsEXT;
+-- >         else
+-- >             gl_ClusterShadingRateHUAWEI = 0;
 -- >
--- >             // emit built-in output variables as a drawing command to subsequent
--- >             // rendering pipeline.
--- >             dispatchClusterHUAWEI();
--- >         }
+-- >         // this is a visible cluster, update built-in output variable.
+-- >         // in case of indexed mode:
+-- >         gl_IndexCountHUAWEI     = draw_commands[cluster_id].indexcount;
+-- >         gl_InstanceCountHUAWEI  = draw_commands[cluster_id].instanceCount;
+-- >         gl_FirstIndexHUAWEI     = draw_commands[cluster_id].firstIndex;
+-- >         gl_VertexOffsetHUAWEI   = draw_commands[cluster_id].vertexoffset;
+-- >         gl_FirstInstanceHUAWEI  = draw_commands[cluster_id].firstInstance;
+-- >         gl_ClusterIDHUAWEI      = draw_commands[cluster_id].cluster_id;
+-- >
+-- >         // emit built-in output variables as a drawing command to subsequent
+-- >         // rendering pipeline.
+-- >         dispatchClusterHUAWEI();
 -- >     }
 -- > }
 --
@@ -357,10 +343,15 @@
 --
 --     -   Grammar edits.
 --
+-- -   Revision 3, 2023-08-21 (YuChang Wang)
+--
+--     -   Add per-cluster shading rate.
+--
 -- == See Also
 --
 -- 'PhysicalDeviceClusterCullingShaderFeaturesHUAWEI',
 -- 'PhysicalDeviceClusterCullingShaderPropertiesHUAWEI',
+-- 'PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI',
 -- 'cmdDrawClusterHUAWEI', 'cmdDrawClusterIndirectHUAWEI'
 --
 -- == Document Notes
@@ -374,6 +365,7 @@
                                                            , cmdDrawClusterIndirectHUAWEI
                                                            , PhysicalDeviceClusterCullingShaderPropertiesHUAWEI(..)
                                                            , PhysicalDeviceClusterCullingShaderFeaturesHUAWEI(..)
+                                                           , PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI(..)
                                                            , HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION
                                                            , pattern HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION
                                                            , HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME
@@ -384,11 +376,15 @@
 import Vulkan.Internal.Utils (traceAroundEvent)
 import Control.Monad (unless)
 import Control.Monad.IO.Class (liftIO)
+import Data.Typeable (eqT)
 import Foreign.Marshal.Alloc (allocaBytes)
 import GHC.IO (throwIO)
+import GHC.Ptr (castPtr)
 import GHC.Ptr (nullFunPtr)
 import Foreign.Ptr (nullPtr)
 import Foreign.Ptr (plusPtr)
+import Control.Monad.Trans.Class (lift)
+import Control.Monad.Trans.Cont (evalContT)
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (FromCStruct(..))
 import Vulkan.CStruct (ToCStruct)
@@ -396,6 +392,7 @@
 import Vulkan.Zero (Zero(..))
 import Control.Monad.IO.Class (MonadIO)
 import Data.String (IsString)
+import Data.Type.Equality ((:~:)(Refl))
 import Data.Typeable (Typeable)
 import Foreign.Storable (Storable)
 import Foreign.Storable (Storable(peek))
@@ -408,6 +405,7 @@
 import Foreign.Ptr (Ptr)
 import Data.Word (Word32)
 import Data.Kind (Type)
+import Control.Monad.Trans.Cont (ContT(..))
 import Vulkan.CStruct.Utils (advancePtrBytes)
 import Vulkan.Core10.FundamentalTypes (bool32ToBool)
 import Vulkan.Core10.FundamentalTypes (boolToBool32)
@@ -416,6 +414,7 @@
 import Vulkan.Core10.FundamentalTypes (Bool32)
 import Vulkan.Core10.Handles (Buffer)
 import Vulkan.Core10.Handles (Buffer(..))
+import Vulkan.CStruct.Extends (Chain)
 import Vulkan.Core10.Handles (CommandBuffer)
 import Vulkan.Core10.Handles (CommandBuffer(..))
 import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))
@@ -423,9 +422,17 @@
 import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawClusterHUAWEI))
 import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawClusterIndirectHUAWEI))
 import Vulkan.Core10.FundamentalTypes (DeviceSize)
+import Vulkan.CStruct.Extends (Extends)
+import Vulkan.CStruct.Extends (Extendss)
+import Vulkan.CStruct.Extends (Extensible(..))
+import Vulkan.CStruct.Extends (PeekChain)
+import Vulkan.CStruct.Extends (PeekChain(..))
+import Vulkan.CStruct.Extends (PokeChain)
+import Vulkan.CStruct.Extends (PokeChain(..))
 import Vulkan.Core10.Enums.StructureType (StructureType)
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI))
 foreign import ccall
 #if !defined(SAFE_FOREIGN_CALLS)
   unsafe
@@ -603,10 +610,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawClusterHUAWEI-None-08601# For each push constant that
@@ -615,11 +622,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawClusterHUAWEI-maintenance4-08602# If the
@@ -630,20 +636,22 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawClusterHUAWEI-None-08114# Descriptors in each bound
 --     descriptor set, specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdDrawClusterHUAWEI-None-08115# If the descriptors used by
@@ -696,14 +704,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdDrawClusterHUAWEI-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdDrawClusterHUAWEI-None-08608# If a pipeline is bound to
 --     the pipeline bind point used by this command, there /must/ not have
 --     been any calls to dynamic state setting commands for any state not
@@ -747,6 +747,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdDrawClusterHUAWEI-uniformBuffers-06935# If any stage of
 --     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline
 --     bind point used by this command accesses a uniform buffer, and that
@@ -1347,16 +1355,6 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
--- -   #VUID-vkCmdDrawClusterHUAWEI-sampleLocationsPerPixel-07934# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state enabled, then the @sampleLocationsPerPixel@ member of
---     @pSampleLocationsInfo@ in the last call to
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ equal the @rasterizationSamples@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
 -- -   #VUID-vkCmdDrawClusterHUAWEI-None-07840# If the bound graphics
 --     pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
@@ -1837,22 +1835,36 @@
 --
 -- -   #VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07284#
 --     If rasterization is not disabled in the bound graphics pipeline, and
---     none of the @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
+--     none of the following is enabled:
 --
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the currently bound graphics
+--     pipeline /must/ be the same as the current subpass color and\/or
+--     depth\/stencil attachments
+--
 -- -   #VUID-vkCmdDrawClusterHUAWEI-None-08644# If a shader object is bound
 --     to any graphics stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
 --     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the
---     @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then the most recent call to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then the most recent call to
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
 --     in the current command buffer /must/ have set @rasterizationSamples@
 --     to be the same as the number of samples for the current render pass
@@ -1954,42 +1966,42 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
 --     used to create the currently bound graphics pipeline
 --
--- -   #VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08911#
+-- -   #VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08912#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is enabled, and the current render pass instance was begun
---     with
+--     feature is not enabled, and the current render pass instance was
+--     begun with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ not equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
+--     array with a @imageView@ equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound graphics pipeline, or the
---     corresponding element of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
---     if it exists, /must/ be
+--     used to create the currently bound pipeline equal to
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
--- -   #VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08912#
+-- -   #VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08911#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is not enabled, and the current render pass instance was
---     begun with
+--     feature is enabled, and the current render pass instance was begun
+--     with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
+--     array with a @imageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound pipeline equal to
+--     used to create the currently bound graphics pipeline, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
 -- -   #VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-09362# If the
@@ -2397,9 +2409,7 @@
 --     the currently bound graphics pipeline
 --
 -- -   #VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07286#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -2413,9 +2423,7 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
 --
 -- -   #VUID-vkCmdDrawClusterHUAWEI-multisampledRenderToSingleSampled-07287#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -4264,10 +4272,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08601# For each push
@@ -4276,11 +4284,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-maintenance4-08602# If the
@@ -4291,20 +4298,22 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08114# Descriptors in each
 --     bound descriptor set, specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08115# If the descriptors
@@ -4357,14 +4366,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08608# If a pipeline is
 --     bound to the pipeline bind point used by this command, there /must/
 --     not have been any calls to dynamic state setting commands for any
@@ -4408,6 +4409,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-uniformBuffers-06935# If any
 --     stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the
 --     pipeline bind point used by this command accesses a uniform buffer,
@@ -5014,16 +5023,6 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsPerPixel-07934#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state enabled, then the @sampleLocationsPerPixel@ member of
---     @pSampleLocationsInfo@ in the last call to
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ equal the @rasterizationSamples@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
 -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07840# If the bound
 --     graphics pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
@@ -5505,22 +5504,36 @@
 --
 -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07284#
 --     If rasterization is not disabled in the bound graphics pipeline, and
---     none of the @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
+--     none of the following is enabled:
 --
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the currently bound graphics
+--     pipeline /must/ be the same as the current subpass color and\/or
+--     depth\/stencil attachments
+--
 -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08644# If a shader object
 --     is bound to any graphics stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
 --     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the
---     @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then the most recent call to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then the most recent call to
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
 --     in the current command buffer /must/ have set @rasterizationSamples@
 --     to be the same as the number of samples for the current render pass
@@ -5623,42 +5636,42 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
 --     used to create the currently bound graphics pipeline
 --
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08911#
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08912#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is enabled, and the current render pass instance was begun
---     with
+--     feature is not enabled, and the current render pass instance was
+--     begun with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ not equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
+--     array with a @imageView@ equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound graphics pipeline, or the
---     corresponding element of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
---     if it exists, /must/ be
+--     used to create the currently bound pipeline equal to
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
--- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08912#
+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08911#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is not enabled, and the current render pass instance was
---     begun with
+--     feature is enabled, and the current render pass instance was begun
+--     with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
+--     array with a @imageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound pipeline equal to
+--     used to create the currently bound graphics pipeline, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
 -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-09362# If
@@ -6067,9 +6080,7 @@
 --     the currently bound graphics pipeline
 --
 -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07286#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -6083,9 +6094,7 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
 --
 -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-multisampledRenderToSingleSampled-07287#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -7891,62 +7900,127 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_cluster_culling_shader VK_HUAWEI_cluster_culling_shader>,
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
-data PhysicalDeviceClusterCullingShaderFeaturesHUAWEI = PhysicalDeviceClusterCullingShaderFeaturesHUAWEI
-  { -- | #features-clustercullingShader# @clustercullingShader@ specifies whether
+data PhysicalDeviceClusterCullingShaderFeaturesHUAWEI (es :: [Type]) = PhysicalDeviceClusterCullingShaderFeaturesHUAWEI
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es
+  , -- | #features-clustercullingShader# @clustercullingShader@ specifies whether
     -- cluster culling shader is supported.
     clustercullingShader :: Bool
   , -- | #features-multiviewClusterCullingShader# @multiviewClusterCullingShader@
     -- specifies whether multiview is supported.
     multiviewClusterCullingShader :: Bool
   }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI (es :: [Type]))
+#endif
+deriving instance Show (Chain es) => Show (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI es)
+
+instance Extensible PhysicalDeviceClusterCullingShaderFeaturesHUAWEI where
+  extensibleTypeName = "PhysicalDeviceClusterCullingShaderFeaturesHUAWEI"
+  setNext PhysicalDeviceClusterCullingShaderFeaturesHUAWEI{..} next' = PhysicalDeviceClusterCullingShaderFeaturesHUAWEI{next = next', ..}
+  getNext PhysicalDeviceClusterCullingShaderFeaturesHUAWEI{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceClusterCullingShaderFeaturesHUAWEI e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI = Just f
+    | otherwise = Nothing
+
+instance ( Extendss PhysicalDeviceClusterCullingShaderFeaturesHUAWEI es
+         , PokeChain es ) => ToCStruct (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI es) where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceClusterCullingShaderFeaturesHUAWEI{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (clustercullingShader))
+    lift $ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (multiviewClusterCullingShader))
+    lift $ f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    lift $ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))
+    lift $ f
+
+instance ( Extendss PhysicalDeviceClusterCullingShaderFeaturesHUAWEI es
+         , PeekChain es ) => FromCStruct (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI es) where
+  peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
+    clustercullingShader <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    multiviewClusterCullingShader <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    pure $ PhysicalDeviceClusterCullingShaderFeaturesHUAWEI
+             next
+             (bool32ToBool clustercullingShader)
+             (bool32ToBool multiviewClusterCullingShader)
+
+instance es ~ '[] => Zero (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI es) where
+  zero = PhysicalDeviceClusterCullingShaderFeaturesHUAWEI
+           ()
+           zero
+           zero
+
+
+-- | VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI - Structure
+-- describing whether cluster culling shader support VRS
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_cluster_culling_shader VK_HUAWEI_cluster_culling_shader>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI = PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI
+  { -- | #features-clusterShadingRate# @clusterShadingRate@ specifies whether
+    -- per-cluster shading rates is supported.
+    clusterShadingRate :: Bool }
   deriving (Typeable, Eq)
 #if defined(GENERIC_INSTANCES)
-deriving instance Generic (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI)
+deriving instance Generic (PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI)
 #endif
-deriving instance Show PhysicalDeviceClusterCullingShaderFeaturesHUAWEI
+deriving instance Show PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI
 
-instance ToCStruct PhysicalDeviceClusterCullingShaderFeaturesHUAWEI where
+instance ToCStruct PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI where
   withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p PhysicalDeviceClusterCullingShaderFeaturesHUAWEI{..} f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI)
+  pokeCStruct p PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI)
     poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (clustercullingShader))
-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (multiviewClusterCullingShader))
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (clusterShadingRate))
     f
   cStructSize = 24
   cStructAlignment = 8
   pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI)
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI)
     poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
     poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))
     f
 
-instance FromCStruct PhysicalDeviceClusterCullingShaderFeaturesHUAWEI where
+instance FromCStruct PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI where
   peekCStruct p = do
-    clustercullingShader <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
-    multiviewClusterCullingShader <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
-    pure $ PhysicalDeviceClusterCullingShaderFeaturesHUAWEI
-             (bool32ToBool clustercullingShader)
-             (bool32ToBool multiviewClusterCullingShader)
+    clusterShadingRate <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI
+             (bool32ToBool clusterShadingRate)
 
-instance Storable PhysicalDeviceClusterCullingShaderFeaturesHUAWEI where
+instance Storable PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI where
   sizeOf ~_ = 24
   alignment ~_ = 8
   peek = peekCStruct
   poke ptr poked = pokeCStruct ptr poked (pure ())
 
-instance Zero PhysicalDeviceClusterCullingShaderFeaturesHUAWEI where
-  zero = PhysicalDeviceClusterCullingShaderFeaturesHUAWEI
-           zero
+instance Zero PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI where
+  zero = PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI
            zero
 
 
-type HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 2
+type HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 3
 
 -- No documentation found for TopLevel "VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION"
 pattern HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION :: forall a . Integral a => a
-pattern HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 2
+pattern HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 3
 
 
 type HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME = "VK_HUAWEI_cluster_culling_shader"
diff --git a/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs-boot b/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs-boot
--- a/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs-boot
+++ b/src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs-boot
@@ -15,7 +15,7 @@
 --     405
 --
 -- [__Revision__]
---     2
+--     3
 --
 -- [__Ratification Status__]
 --     Not ratified
@@ -38,7 +38,7 @@
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
---     2022-11-17
+--     2023-08-16
 --
 -- [__Interactions and External Dependencies__]
 --
@@ -80,10 +80,10 @@
 -- pipeline.
 --
 -- A set of new built-in output variables are used to express a visible
--- cluster. In addition, a new built-in function is used to emit these
--- variables from CCS to the IA stage. The IA stage can use these variables
--- to fetches vertices of a visible cluster and drive vertex shaders to
--- shading these vertices.
+-- cluster, including per-cluster shading rate. In addition, a new built-in
+-- function is used to emit these variables from CCS to the IA stage. The
+-- IA stage can use these variables to fetches vertices of a visible
+-- cluster and drive vertex shaders to shading these vertices.
 --
 -- Note that CCS do not work with geometry or tessellation shaders, but
 -- both IA and vertex shaders are preserved. Vertex shaders are still used
@@ -99,6 +99,10 @@
 --
 -- == New Structures
 --
+-- -   Extending 'PhysicalDeviceClusterCullingShaderFeaturesHUAWEI':
+--
+--     -   'PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI'
+--
 -- -   Extending
 --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
 --     'Vulkan.Core10.Device.DeviceCreateInfo':
@@ -137,6 +141,8 @@
 --
 --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI'
 --
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI'
+--
 -- == New Built-In Variables
 --
 -- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-indexcounthuawei IndexCountHUAWEI>
@@ -155,6 +161,8 @@
 --
 -- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-clusteridhuawei ClusterIDHUAWEI>
 --
+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-clustershadingratehuawei ClusterShadingRateHUAWEI>
+--
 -- == New SPIR-V Capability
 --
 -- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ClusterCullingShadingHUAWEI ClusterCullingShadingHUAWEI>
@@ -176,13 +184,8 @@
 -- > // - warpsize = 32
 -- > layout(local_size_x=GPU_GROUP_SIZE, local_size_y=1, local_size_z=1) in;
 -- >
--- >
--- > #define GPU_CLUSTER_DESCRIPTOR_BINDING      0
--- > #define GPU_DRAW_BUFFER_BINDING             1
--- > #define GPU_INSTANCE_DESCRIPTOR_BINDING     2
--- >
--- > const float pi_half = 1.570795;
--- > uint instance_id;
+-- > #define GPU_DRAW_BUFFER_BINDING             0
+-- > #define GPU_INSTANCE_DESCRIPTOR_BINDING     1
 -- >
 -- > struct BoundingSphere
 -- > {
@@ -190,19 +193,6 @@
 -- >   float radius;
 -- > };
 -- >
--- > struct BoundingCone
--- > {
--- >   vec3 normal;
--- >   float angle;
--- > };
--- >
--- > struct ClusterDescriptor
--- > {
--- >   BoundingSphere sphere;
--- >   BoundingCone cone;
--- >   uint instance_idx;
--- > };
--- >
 -- > struct InstanceData
 -- > {
 -- >   mat4 mvp_matrix;                      // mvp matrix.
@@ -238,15 +228,9 @@
 -- >   int  gl_VertexOffsetHUAWEI;
 -- >   uint gl_FirstInstanceHUAWEI;
 -- >   uint gl_ClusterIDHUAWEI;
--- > };
--- >
--- >
--- > layout(binding = GPU_CLUSTER_DESCRIPTOR_BINDING, std430) readonly buffer cluster_descriptor_ssbo
--- > {
--- >         ClusterDescriptor cluster_descriptors[];
+-- >   uint gl_ClusterShadingRateHUAWEI;
 -- > };
 -- >
--- >
 -- > layout(binding = GPU_DRAW_BUFFER_BINDING, std430) buffer draw_indirect_ssbo
 -- > {
 -- >         DrawElementsCommand draw_commands[];
@@ -258,13 +242,13 @@
 -- > };
 -- >
 -- >
--- > bool isFrontFaceVisible( vec3 sphere_center, float sphere_radius, vec3 cone_normal, float cone_angle )
+-- > float Distance(uint instance_id)
 -- > {
--- >   vec3 sphere_center_dir = normalize(sphere_center -
--- >                            instance_descriptors[instance_id].instance_data.view_origin);
+-- >     vec3 v = normalize(instance_descriptor[instance_id].sphere.center -
+-- >                      instance_descriptor[instance_id].instance_data.view_origin);
+-- >     float dist = sqrt(dot(v,v));
 -- >
--- >   float sin_cone_angle = sin(min(cone_angle, pi_half));
--- >   return dot(cone_normal, sphere_center_dir) < sin_cone_angle;
+-- >     return dist;
 -- > }
 -- >
 -- > bool isSphereOutsideFrustum( vec3 sphere_center, float sphere_radius )
@@ -284,38 +268,40 @@
 -- >
 -- > void main()
 -- > {
--- >     uint cluster_id = gl_GlobalInvocationID.x;
--- >     ClusterDescriptor desc = cluster_descriptors[cluster_id];
--- >
 -- >     // get instance description
--- >     instance_id = desc.instance_idx;
+-- >     instance_id = gl_GlobalInvocationID.x;
 -- >     InstanceDescriptor inst_desc = instance_descriptors[instance_id];
 -- >
 -- >     //instance based culling
--- >     bool instance_render = !isSphereOutsideFrustum(inst_desc.sphere.center, inst_desc.sphere.radius);
+-- >     bool render = !isSphereOutsideFrustum(inst_desc.sphere.center, inst_desc.sphere.radius);
 -- >
--- >     if( instance_render)
+-- >     if (render)
 -- >     {
--- >         // cluster based culling
--- >         bool render = (!isSphereOutsideFrustum(desc.sphere.center,
--- >         desc.sphere.radius) && isFrontFaceVisible(desc.sphere.center, desc.sphere.radius, desc.cone.norm
--- >         al, desc.cone.angle));
+-- >         // calculate distance
+-- >         float distance = Distance(instance_id);
 -- >
--- >         if (render)
--- >         {
--- >             // this cluster passed coarse-level culling, update built-in output variable.
--- >             // in case of indexed mode:
--- >             gl_IndexCountHUAWEI     = draw_commands[cluster_id].indexcount;
--- >             gl_InstanceCountHUAWEI  = draw_commands[cluster_id].instanceCount;
--- >             gl_FirstIndexHUAWEI     = draw_commands[cluster_id].firstIndex;
--- >             gl_VertexOffsetHUAWEI   = draw_commands[cluster_id].vertexoffset;
--- >             gl_FirstInstanceHUAWEI  = draw_commands[cluster_id].firstInstance;
--- >             gl_ClusterIDHUAWEI      = draw_commands[cluster_id].cluster_id;
+-- >         // update shading rate built-in variable
+-- >         if(distance > 0.7)
+-- >             gl_ClusterShadingRateHUAWEI =
+-- >                 gl_ShadingRateFlag4VerticalPixelsEXT | gl_ShadingRateFlag4HorizontalPixelsEXT;
+-- >         else if(distance > 0.3)
+-- >             gl_ClusterShadingRateHUAWEI =
+-- >                 gl_ShadingRateFlag2VerticalPixelsEXT | gl_ShadingRateFlag2HorizontalPixelsEXT;
+-- >         else
+-- >             gl_ClusterShadingRateHUAWEI = 0;
 -- >
--- >             // emit built-in output variables as a drawing command to subsequent
--- >             // rendering pipeline.
--- >             dispatchClusterHUAWEI();
--- >         }
+-- >         // this is a visible cluster, update built-in output variable.
+-- >         // in case of indexed mode:
+-- >         gl_IndexCountHUAWEI     = draw_commands[cluster_id].indexcount;
+-- >         gl_InstanceCountHUAWEI  = draw_commands[cluster_id].instanceCount;
+-- >         gl_FirstIndexHUAWEI     = draw_commands[cluster_id].firstIndex;
+-- >         gl_VertexOffsetHUAWEI   = draw_commands[cluster_id].vertexoffset;
+-- >         gl_FirstInstanceHUAWEI  = draw_commands[cluster_id].firstInstance;
+-- >         gl_ClusterIDHUAWEI      = draw_commands[cluster_id].cluster_id;
+-- >
+-- >         // emit built-in output variables as a drawing command to subsequent
+-- >         // rendering pipeline.
+-- >         dispatchClusterHUAWEI();
 -- >     }
 -- > }
 --
@@ -357,10 +343,15 @@
 --
 --     -   Grammar edits.
 --
+-- -   Revision 3, 2023-08-21 (YuChang Wang)
+--
+--     -   Add per-cluster shading rate.
+--
 -- == See Also
 --
 -- 'PhysicalDeviceClusterCullingShaderFeaturesHUAWEI',
 -- 'PhysicalDeviceClusterCullingShaderPropertiesHUAWEI',
+-- 'PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI',
 -- 'cmdDrawClusterHUAWEI', 'cmdDrawClusterIndirectHUAWEI'
 --
 -- == Document Notes
@@ -372,18 +363,25 @@
 -- the generator scripts, not directly.
 module Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader  ( PhysicalDeviceClusterCullingShaderFeaturesHUAWEI
                                                            , PhysicalDeviceClusterCullingShaderPropertiesHUAWEI
+                                                           , PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI
                                                            ) where
 
 import Vulkan.CStruct (FromCStruct)
 import Vulkan.CStruct (ToCStruct)
 import Data.Kind (Type)
-
-data PhysicalDeviceClusterCullingShaderFeaturesHUAWEI
+import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)
+import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)
+import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)
+import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)
+type role PhysicalDeviceClusterCullingShaderFeaturesHUAWEI nominal
+data PhysicalDeviceClusterCullingShaderFeaturesHUAWEI (es :: [Type])
 
-instance ToCStruct PhysicalDeviceClusterCullingShaderFeaturesHUAWEI
-instance Show PhysicalDeviceClusterCullingShaderFeaturesHUAWEI
+instance ( Extendss PhysicalDeviceClusterCullingShaderFeaturesHUAWEI es
+         , PokeChain es ) => ToCStruct (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI es)
+instance Show (Chain es) => Show (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI es)
 
-instance FromCStruct PhysicalDeviceClusterCullingShaderFeaturesHUAWEI
+instance ( Extendss PhysicalDeviceClusterCullingShaderFeaturesHUAWEI es
+         , PeekChain es ) => FromCStruct (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI es)
 
 
 data PhysicalDeviceClusterCullingShaderPropertiesHUAWEI
@@ -392,4 +390,12 @@
 instance Show PhysicalDeviceClusterCullingShaderPropertiesHUAWEI
 
 instance FromCStruct PhysicalDeviceClusterCullingShaderPropertiesHUAWEI
+
+
+data PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI
+
+instance ToCStruct PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI
+instance Show PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI
+
+instance FromCStruct PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI
 
diff --git a/src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs b/src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs
--- a/src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs
+++ b/src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs
@@ -663,10 +663,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdSubpassShadingHUAWEI-None-08601# For each push constant
@@ -675,11 +675,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdSubpassShadingHUAWEI-maintenance4-08602# If the
@@ -690,20 +689,22 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdSubpassShadingHUAWEI-None-08114# Descriptors in each
 --     bound descriptor set, specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdSubpassShadingHUAWEI-None-08115# If the descriptors used
@@ -756,14 +757,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdSubpassShadingHUAWEI-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdSubpassShadingHUAWEI-None-08608# If a pipeline is bound
 --     to the pipeline bind point used by this command, there /must/ not
 --     have been any calls to dynamic state setting commands for any state
@@ -806,6 +799,14 @@
 --     coordinates, that sampler /must/ not be used with any of the SPIR-V
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
+--
+-- -   #VUID-vkCmdSubpassShadingHUAWEI-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
 --
 -- -   #VUID-vkCmdSubpassShadingHUAWEI-uniformBuffers-06935# If any stage
 --     of the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline
diff --git a/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs b/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs
--- a/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs
+++ b/src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs
@@ -2368,7 +2368,7 @@
 --     @queryType@ /must/ be
 --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR',
 --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR',
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR'
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR',
 --     or
 --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR'
 --
@@ -2514,7 +2514,7 @@
 --     @queryType@ /must/ be
 --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR',
 --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR',
---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR'
+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR',
 --     or
 --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR'
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_calibrated_timestamps.hs b/src/Vulkan/Extensions/VK_KHR_calibrated_timestamps.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_KHR_calibrated_timestamps.hs
@@ -0,0 +1,561 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_KHR_calibrated_timestamps - device extension
+--
+-- == VK_KHR_calibrated_timestamps
+--
+-- [__Name String__]
+--     @VK_KHR_calibrated_timestamps@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     544
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--
+-- [__Contact__]
+--
+--     -   Daniel Rakos
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_calibrated_timestamps] @aqnuep%0A*Here describe the issue or question you have about the VK_KHR_calibrated_timestamps extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_calibrated_timestamps.adoc VK_EXT_calibrated_timestamps>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-07-12
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Matthaeus G. Chajdas, AMD
+--
+--     -   Alan Harrison, AMD
+--
+--     -   Derrick Owens, AMD
+--
+--     -   Daniel Rakos, RasterGrid
+--
+--     -   Faith Ekstrand, Intel
+--
+--     -   Keith Packard, Valve
+--
+-- == Description
+--
+-- This extension provides an interface to query calibrated timestamps
+-- obtained quasi simultaneously from two time domains.
+--
+-- == New Commands
+--
+-- -   'getCalibratedTimestampsKHR'
+--
+-- -   'getPhysicalDeviceCalibrateableTimeDomainsKHR'
+--
+-- == New Structures
+--
+-- -   'CalibratedTimestampInfoKHR'
+--
+-- == New Enums
+--
+-- -   'TimeDomainKHR'
+--
+-- == New Enum Constants
+--
+-- -   'KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME'
+--
+-- -   'KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR'
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-07-12 (Daniel Rakos)
+--
+--     -   Initial draft.
+--
+-- == See Also
+--
+-- 'CalibratedTimestampInfoKHR', 'TimeDomainKHR',
+-- 'getCalibratedTimestampsKHR',
+-- 'getPhysicalDeviceCalibrateableTimeDomainsKHR'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_calibrated_timestamps Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_KHR_calibrated_timestamps  ( getPhysicalDeviceCalibrateableTimeDomainsKHR
+                                                       , getCalibratedTimestampsKHR
+                                                       , CalibratedTimestampInfoKHR(..)
+                                                       , TimeDomainKHR( TIME_DOMAIN_DEVICE_KHR
+                                                                      , TIME_DOMAIN_CLOCK_MONOTONIC_KHR
+                                                                      , TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR
+                                                                      , TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR
+                                                                      , ..
+                                                                      )
+                                                       , KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION
+                                                       , pattern KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION
+                                                       , KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME
+                                                       , pattern KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME
+                                                       ) where
+
+import Vulkan.Internal.Utils (enumReadPrec)
+import Vulkan.Internal.Utils (enumShowsPrec)
+import Vulkan.Internal.Utils (traceAroundEvent)
+import Control.Exception.Base (bracket)
+import Control.Monad (unless)
+import Control.Monad.IO.Class (liftIO)
+import Foreign.Marshal.Alloc (allocaBytes)
+import Foreign.Marshal.Alloc (callocBytes)
+import Foreign.Marshal.Alloc (free)
+import GHC.Base (when)
+import GHC.IO (throwIO)
+import GHC.Ptr (nullFunPtr)
+import Foreign.Ptr (nullPtr)
+import Foreign.Ptr (plusPtr)
+import GHC.Show (showsPrec)
+import Control.Monad.Trans.Class (lift)
+import Control.Monad.Trans.Cont (evalContT)
+import Data.Vector (generateM)
+import qualified Data.Vector (imapM_)
+import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero)
+import Vulkan.Zero (Zero(..))
+import Control.Monad.IO.Class (MonadIO)
+import Data.String (IsString)
+import Data.Typeable (Typeable)
+import Foreign.Storable (Storable)
+import Foreign.Storable (Storable(peek))
+import Foreign.Storable (Storable(poke))
+import qualified Foreign.Storable (Storable(..))
+import GHC.Generics (Generic)
+import GHC.IO.Exception (IOErrorType(..))
+import GHC.IO.Exception (IOException(..))
+import Data.Int (Int32)
+import Foreign.Ptr (FunPtr)
+import Foreign.Ptr (Ptr)
+import GHC.Read (Read(readPrec))
+import GHC.Show (Show(showsPrec))
+import Data.Word (Word32)
+import Data.Word (Word64)
+import Data.Kind (Type)
+import Control.Monad.Trans.Cont (ContT(..))
+import Data.Vector (Vector)
+import Vulkan.CStruct.Utils (advancePtrBytes)
+import Vulkan.NamedType ((:::))
+import Vulkan.Core10.Handles (Device)
+import Vulkan.Core10.Handles (Device(..))
+import Vulkan.Core10.Handles (Device(Device))
+import Vulkan.Dynamic (DeviceCmds(pVkGetCalibratedTimestampsKHR))
+import Vulkan.Core10.Handles (Device_T)
+import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceCalibrateableTimeDomainsKHR))
+import Vulkan.Core10.Handles (PhysicalDevice)
+import Vulkan.Core10.Handles (PhysicalDevice(..))
+import Vulkan.Core10.Handles (PhysicalDevice(PhysicalDevice))
+import Vulkan.Core10.Handles (PhysicalDevice_T)
+import Vulkan.Core10.Enums.Result (Result)
+import Vulkan.Core10.Enums.Result (Result(..))
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Exception (VulkanException(..))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR))
+import Vulkan.Core10.Enums.Result (Result(SUCCESS))
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetPhysicalDeviceCalibrateableTimeDomainsKHR
+  :: FunPtr (Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr TimeDomainKHR -> IO Result) -> Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr TimeDomainKHR -> IO Result
+
+-- | vkGetPhysicalDeviceCalibrateableTimeDomainsKHR - Query calibrateable
+-- time domains
+--
+-- = Description
+--
+-- If @pTimeDomains@ is @NULL@, then the number of calibrateable time
+-- domains supported for the given @physicalDevice@ is returned in
+-- @pTimeDomainCount@. Otherwise, @pTimeDomainCount@ /must/ point to a
+-- variable set by the user to the number of elements in the @pTimeDomains@
+-- array, and on return the variable is overwritten with the number of
+-- values actually written to @pTimeDomains@. If the value of
+-- @pTimeDomainCount@ is less than the number of calibrateable time domains
+-- supported, at most @pTimeDomainCount@ values will be written to
+-- @pTimeDomains@, and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be
+-- returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate
+-- that not all the available time domains were returned.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-physicalDevice-parameter#
+--     @physicalDevice@ /must/ be a valid
+--     'Vulkan.Core10.Handles.PhysicalDevice' handle
+--
+-- -   #VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-pTimeDomainCount-parameter#
+--     @pTimeDomainCount@ /must/ be a valid pointer to a @uint32_t@ value
+--
+-- -   #VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-pTimeDomains-parameter#
+--     If the value referenced by @pTimeDomainCount@ is not @0@, and
+--     @pTimeDomains@ is not @NULL@, @pTimeDomains@ /must/ be a valid
+--     pointer to an array of @pTimeDomainCount@ 'TimeDomainKHR' values
+--
+-- == Return Codes
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
+--
+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'
+--
+--     -   'Vulkan.Core10.Enums.Result.INCOMPLETE'
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps VK_EXT_calibrated_timestamps>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_calibrated_timestamps VK_KHR_calibrated_timestamps>,
+-- 'Vulkan.Core10.Handles.PhysicalDevice', 'TimeDomainKHR'
+getPhysicalDeviceCalibrateableTimeDomainsKHR :: forall io
+                                              . (MonadIO io)
+                                             => -- | @physicalDevice@ is the physical device from which to query the set of
+                                                -- calibrateable time domains.
+                                                PhysicalDevice
+                                             -> io (Result, ("timeDomains" ::: Vector TimeDomainKHR))
+getPhysicalDeviceCalibrateableTimeDomainsKHR physicalDevice = liftIO . evalContT $ do
+  let vkGetPhysicalDeviceCalibrateableTimeDomainsKHRPtr = pVkGetPhysicalDeviceCalibrateableTimeDomainsKHR (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)
+  lift $ unless (vkGetPhysicalDeviceCalibrateableTimeDomainsKHRPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceCalibrateableTimeDomainsKHR is null" Nothing Nothing
+  let vkGetPhysicalDeviceCalibrateableTimeDomainsKHR' = mkVkGetPhysicalDeviceCalibrateableTimeDomainsKHR vkGetPhysicalDeviceCalibrateableTimeDomainsKHRPtr
+  let physicalDevice' = physicalDeviceHandle (physicalDevice)
+  pPTimeDomainCount <- ContT $ bracket (callocBytes @Word32 4) free
+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR" (vkGetPhysicalDeviceCalibrateableTimeDomainsKHR'
+                                                                                   physicalDevice'
+                                                                                   (pPTimeDomainCount)
+                                                                                   (nullPtr))
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+  pTimeDomainCount <- lift $ peek @Word32 pPTimeDomainCount
+  pPTimeDomains <- ContT $ bracket (callocBytes @TimeDomainKHR ((fromIntegral (pTimeDomainCount)) * 4)) free
+  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR" (vkGetPhysicalDeviceCalibrateableTimeDomainsKHR'
+                                                                                    physicalDevice'
+                                                                                    (pPTimeDomainCount)
+                                                                                    (pPTimeDomains))
+  lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))
+  pTimeDomainCount' <- lift $ peek @Word32 pPTimeDomainCount
+  pTimeDomains' <- lift $ generateM (fromIntegral (pTimeDomainCount')) (\i -> peek @TimeDomainKHR ((pPTimeDomains `advancePtrBytes` (4 * (i)) :: Ptr TimeDomainKHR)))
+  pure $ ((r'), pTimeDomains')
+
+
+foreign import ccall
+#if !defined(SAFE_FOREIGN_CALLS)
+  unsafe
+#endif
+  "dynamic" mkVkGetCalibratedTimestampsKHR
+  :: FunPtr (Ptr Device_T -> Word32 -> Ptr CalibratedTimestampInfoKHR -> Ptr Word64 -> Ptr Word64 -> IO Result) -> Ptr Device_T -> Word32 -> Ptr CalibratedTimestampInfoKHR -> Ptr Word64 -> Ptr Word64 -> IO Result
+
+-- | vkGetCalibratedTimestampsKHR - Query calibrated timestamps
+--
+-- = Description
+--
+-- Note
+--
+-- The maximum deviation /may/ vary between calls to
+-- 'getCalibratedTimestampsKHR' even for the same set of time domains due
+-- to implementation and platform specific reasons. It is the application’s
+-- responsibility to assess whether the returned maximum deviation makes
+-- the timestamp values suitable for any particular purpose and /can/
+-- choose to re-issue the timestamp calibration call pursuing a lower
+-- deviation value.
+--
+-- Calibrated timestamp values /can/ be extrapolated to estimate future
+-- coinciding timestamp values, however, depending on the nature of the
+-- time domains and other properties of the platform extrapolating values
+-- over a sufficiently long period of time /may/ no longer be accurate
+-- enough to fit any particular purpose, so applications are expected to
+-- re-calibrate the timestamps on a regular basis.
+--
+-- == Valid Usage
+--
+-- -   #VUID-vkGetCalibratedTimestampsEXT-timeDomain-09246# The
+--     @timeDomain@ value of each
+--     'Vulkan.Extensions.VK_EXT_calibrated_timestamps.CalibratedTimestampInfoEXT'
+--     in @pTimestampInfos@ /must/ be unique
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-vkGetCalibratedTimestampsKHR-device-parameter# @device@ /must/
+--     be a valid 'Vulkan.Core10.Handles.Device' handle
+--
+-- -   #VUID-vkGetCalibratedTimestampsKHR-pTimestampInfos-parameter#
+--     @pTimestampInfos@ /must/ be a valid pointer to an array of
+--     @timestampCount@ valid 'CalibratedTimestampInfoKHR' structures
+--
+-- -   #VUID-vkGetCalibratedTimestampsKHR-pTimestamps-parameter#
+--     @pTimestamps@ /must/ be a valid pointer to an array of
+--     @timestampCount@ @uint64_t@ values
+--
+-- -   #VUID-vkGetCalibratedTimestampsKHR-pMaxDeviation-parameter#
+--     @pMaxDeviation@ /must/ be a valid pointer to a @uint64_t@ value
+--
+-- -   #VUID-vkGetCalibratedTimestampsKHR-timestampCount-arraylength#
+--     @timestampCount@ /must/ be greater than @0@
+--
+-- == Return Codes
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]
+--
+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'
+--
+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'
+--
+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps VK_EXT_calibrated_timestamps>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_calibrated_timestamps VK_KHR_calibrated_timestamps>,
+-- 'CalibratedTimestampInfoKHR', 'Vulkan.Core10.Handles.Device'
+getCalibratedTimestampsKHR :: forall io
+                            . (MonadIO io)
+                           => -- | @device@ is the logical device used to perform the query.
+                              Device
+                           -> -- | @pTimestampInfos@ is a pointer to an array of @timestampCount@
+                              -- 'CalibratedTimestampInfoKHR' structures, describing the time domains the
+                              -- calibrated timestamps should be captured from.
+                              ("timestampInfos" ::: Vector CalibratedTimestampInfoKHR)
+                           -> io (("timestamps" ::: Vector Word64), ("maxDeviation" ::: Word64))
+getCalibratedTimestampsKHR device timestampInfos = liftIO . evalContT $ do
+  let vkGetCalibratedTimestampsKHRPtr = pVkGetCalibratedTimestampsKHR (case device of Device{deviceCmds} -> deviceCmds)
+  lift $ unless (vkGetCalibratedTimestampsKHRPtr /= nullFunPtr) $
+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetCalibratedTimestampsKHR is null" Nothing Nothing
+  let vkGetCalibratedTimestampsKHR' = mkVkGetCalibratedTimestampsKHR vkGetCalibratedTimestampsKHRPtr
+  pPTimestampInfos <- ContT $ allocaBytes @CalibratedTimestampInfoKHR ((Data.Vector.length (timestampInfos)) * 24)
+  lift $ Data.Vector.imapM_ (\i e -> poke (pPTimestampInfos `plusPtr` (24 * (i)) :: Ptr CalibratedTimestampInfoKHR) (e)) (timestampInfos)
+  pPTimestamps <- ContT $ bracket (callocBytes @Word64 ((fromIntegral ((fromIntegral (Data.Vector.length $ (timestampInfos)) :: Word32))) * 8)) free
+  pPMaxDeviation <- ContT $ bracket (callocBytes @Word64 8) free
+  r <- lift $ traceAroundEvent "vkGetCalibratedTimestampsKHR" (vkGetCalibratedTimestampsKHR'
+                                                                 (deviceHandle (device))
+                                                                 ((fromIntegral (Data.Vector.length $ (timestampInfos)) :: Word32))
+                                                                 (pPTimestampInfos)
+                                                                 (pPTimestamps)
+                                                                 (pPMaxDeviation))
+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))
+  pTimestamps <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (timestampInfos)) :: Word32))) (\i -> peek @Word64 ((pPTimestamps `advancePtrBytes` (8 * (i)) :: Ptr Word64)))
+  pMaxDeviation <- lift $ peek @Word64 pPMaxDeviation
+  pure $ (pTimestamps, pMaxDeviation)
+
+
+-- | VkCalibratedTimestampInfoKHR - Structure specifying the input parameters
+-- of a calibrated timestamp query
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps VK_EXT_calibrated_timestamps>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_calibrated_timestamps VK_KHR_calibrated_timestamps>,
+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'TimeDomainKHR',
+-- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.getCalibratedTimestampsEXT',
+-- 'getCalibratedTimestampsKHR'
+data CalibratedTimestampInfoKHR = CalibratedTimestampInfoKHR
+  { -- | @timeDomain@ is a 'TimeDomainKHR' value specifying the time domain from
+    -- which the calibrated timestamp value should be returned.
+    --
+    -- #VUID-VkCalibratedTimestampInfoEXT-timeDomain-02354# @timeDomain@ /must/
+    -- be one of the 'TimeDomainKHR' values returned by
+    -- 'getPhysicalDeviceCalibrateableTimeDomainsKHR'
+    --
+    -- #VUID-VkCalibratedTimestampInfoKHR-timeDomain-parameter# @timeDomain@
+    -- /must/ be a valid 'TimeDomainKHR' value
+    timeDomain :: TimeDomainKHR }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (CalibratedTimestampInfoKHR)
+#endif
+deriving instance Show CalibratedTimestampInfoKHR
+
+instance ToCStruct CalibratedTimestampInfoKHR where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p CalibratedTimestampInfoKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr TimeDomainKHR)) (timeDomain)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr TimeDomainKHR)) (zero)
+    f
+
+instance FromCStruct CalibratedTimestampInfoKHR where
+  peekCStruct p = do
+    timeDomain <- peek @TimeDomainKHR ((p `plusPtr` 16 :: Ptr TimeDomainKHR))
+    pure $ CalibratedTimestampInfoKHR
+             timeDomain
+
+instance Storable CalibratedTimestampInfoKHR where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero CalibratedTimestampInfoKHR where
+  zero = CalibratedTimestampInfoKHR
+           zero
+
+
+-- | VkTimeDomainKHR - Supported time domains
+--
+-- = Description
+--
+-- Note
+--
+-- An implementation supporting @VK_KHR_calibrated_timestamps@ or
+-- @VK_EXT_calibrated_timestamps@ will use the same time domain for all its
+-- 'Vulkan.Core10.Handles.Queue' so that timestamp values reported for
+-- 'TIME_DOMAIN_DEVICE_KHR' can be matched to any timestamp captured
+-- through 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp' or
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2'
+-- .
+--
+-- > struct timespec tv;
+-- > clock_gettime(CLOCK_MONOTONIC, &tv);
+-- > return tv.tv_nsec + tv.tv_sec*1000000000ull;
+--
+-- > struct timespec tv;
+-- > clock_gettime(CLOCK_MONOTONIC_RAW, &tv);
+-- > return tv.tv_nsec + tv.tv_sec*1000000000ull;
+--
+-- > LARGE_INTEGER counter;
+-- > QueryPerformanceCounter(&counter);
+-- > return counter.QuadPart;
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps VK_EXT_calibrated_timestamps>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_calibrated_timestamps VK_KHR_calibrated_timestamps>,
+-- 'CalibratedTimestampInfoKHR',
+-- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.getPhysicalDeviceCalibrateableTimeDomainsEXT',
+-- 'getPhysicalDeviceCalibrateableTimeDomainsKHR'
+newtype TimeDomainKHR = TimeDomainKHR Int32
+  deriving newtype (Eq, Ord, Storable, Zero)
+
+-- | 'TIME_DOMAIN_DEVICE_KHR' specifies the device time domain. Timestamp
+-- values in this time domain use the same units and are comparable with
+-- device timestamp values captured using
+-- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp' or
+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2'
+-- and are defined to be incrementing according to the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-timestampPeriod timestampPeriod>
+-- of the device.
+pattern TIME_DOMAIN_DEVICE_KHR = TimeDomainKHR 0
+
+-- | 'TIME_DOMAIN_CLOCK_MONOTONIC_KHR' specifies the CLOCK_MONOTONIC time
+-- domain available on POSIX platforms. Timestamp values in this time
+-- domain are in units of nanoseconds and are comparable with platform
+-- timestamp values captured using the POSIX clock_gettime API as computed
+-- by this example:
+pattern TIME_DOMAIN_CLOCK_MONOTONIC_KHR = TimeDomainKHR 1
+
+-- | 'TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR' specifies the CLOCK_MONOTONIC_RAW
+-- time domain available on POSIX platforms. Timestamp values in this time
+-- domain are in units of nanoseconds and are comparable with platform
+-- timestamp values captured using the POSIX clock_gettime API as computed
+-- by this example:
+pattern TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR = TimeDomainKHR 2
+
+-- | 'TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR' specifies the performance
+-- counter (QPC) time domain available on Windows. Timestamp values in this
+-- time domain are in the same units as those provided by the Windows
+-- QueryPerformanceCounter API and are comparable with platform timestamp
+-- values captured using that API as computed by this example:
+pattern TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR = TimeDomainKHR 3
+
+{-# COMPLETE
+  TIME_DOMAIN_DEVICE_KHR
+  , TIME_DOMAIN_CLOCK_MONOTONIC_KHR
+  , TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR
+  , TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR ::
+    TimeDomainKHR
+  #-}
+
+conNameTimeDomainKHR :: String
+conNameTimeDomainKHR = "TimeDomainKHR"
+
+enumPrefixTimeDomainKHR :: String
+enumPrefixTimeDomainKHR = "TIME_DOMAIN_"
+
+showTableTimeDomainKHR :: [(TimeDomainKHR, String)]
+showTableTimeDomainKHR =
+  [ (TIME_DOMAIN_DEVICE_KHR, "DEVICE_KHR")
+  ,
+    ( TIME_DOMAIN_CLOCK_MONOTONIC_KHR
+    , "CLOCK_MONOTONIC_KHR"
+    )
+  ,
+    ( TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR
+    , "CLOCK_MONOTONIC_RAW_KHR"
+    )
+  ,
+    ( TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR
+    , "QUERY_PERFORMANCE_COUNTER_KHR"
+    )
+  ]
+
+instance Show TimeDomainKHR where
+  showsPrec =
+    enumShowsPrec
+      enumPrefixTimeDomainKHR
+      showTableTimeDomainKHR
+      conNameTimeDomainKHR
+      (\(TimeDomainKHR x) -> x)
+      (showsPrec 11)
+
+instance Read TimeDomainKHR where
+  readPrec =
+    enumReadPrec
+      enumPrefixTimeDomainKHR
+      showTableTimeDomainKHR
+      conNameTimeDomainKHR
+      TimeDomainKHR
+
+type KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION"
+pattern KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION :: forall a . Integral a => a
+pattern KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION = 1
+
+
+type KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME = "VK_KHR_calibrated_timestamps"
+
+-- No documentation found for TopLevel "VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME"
+pattern KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME = "VK_KHR_calibrated_timestamps"
+
diff --git a/src/Vulkan/Extensions/VK_KHR_calibrated_timestamps.hs-boot b/src/Vulkan/Extensions/VK_KHR_calibrated_timestamps.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_KHR_calibrated_timestamps.hs-boot
@@ -0,0 +1,123 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_KHR_calibrated_timestamps - device extension
+--
+-- == VK_KHR_calibrated_timestamps
+--
+-- [__Name String__]
+--     @VK_KHR_calibrated_timestamps@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     544
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--
+-- [__Contact__]
+--
+--     -   Daniel Rakos
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_calibrated_timestamps] @aqnuep%0A*Here describe the issue or question you have about the VK_KHR_calibrated_timestamps extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_calibrated_timestamps.adoc VK_EXT_calibrated_timestamps>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-07-12
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Matthaeus G. Chajdas, AMD
+--
+--     -   Alan Harrison, AMD
+--
+--     -   Derrick Owens, AMD
+--
+--     -   Daniel Rakos, RasterGrid
+--
+--     -   Faith Ekstrand, Intel
+--
+--     -   Keith Packard, Valve
+--
+-- == Description
+--
+-- This extension provides an interface to query calibrated timestamps
+-- obtained quasi simultaneously from two time domains.
+--
+-- == New Commands
+--
+-- -   'getCalibratedTimestampsKHR'
+--
+-- -   'getPhysicalDeviceCalibrateableTimeDomainsKHR'
+--
+-- == New Structures
+--
+-- -   'CalibratedTimestampInfoKHR'
+--
+-- == New Enums
+--
+-- -   'TimeDomainKHR'
+--
+-- == New Enum Constants
+--
+-- -   'KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME'
+--
+-- -   'KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR'
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-07-12 (Daniel Rakos)
+--
+--     -   Initial draft.
+--
+-- == See Also
+--
+-- 'CalibratedTimestampInfoKHR', 'TimeDomainKHR',
+-- 'getCalibratedTimestampsKHR',
+-- 'getPhysicalDeviceCalibrateableTimeDomainsKHR'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_calibrated_timestamps Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_KHR_calibrated_timestamps  ( CalibratedTimestampInfoKHR
+                                                       , TimeDomainKHR
+                                                       ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data CalibratedTimestampInfoKHR
+
+instance ToCStruct CalibratedTimestampInfoKHR
+instance Show CalibratedTimestampInfoKHR
+
+instance FromCStruct CalibratedTimestampInfoKHR
+
+
+data TimeDomainKHR
+
diff --git a/src/Vulkan/Extensions/VK_KHR_draw_indirect_count.hs b/src/Vulkan/Extensions/VK_KHR_draw_indirect_count.hs
--- a/src/Vulkan/Extensions/VK_KHR_draw_indirect_count.hs
+++ b/src/Vulkan/Extensions/VK_KHR_draw_indirect_count.hs
@@ -57,7 +57,7 @@
 --
 -- == Description
 --
--- This extension is based off the @VK_AMD_draw_indirect_count@ extension.
+-- This extension is based on the @VK_AMD_draw_indirect_count@ extension.
 -- This extension allows an application to source the number of draws for
 -- indirect drawing calls from a buffer.
 --
@@ -92,7 +92,7 @@
 --
 -- -   Revision 1, 2017-08-25 (Piers Daniell)
 --
---     -   Initial draft based off VK_AMD_draw_indirect_count
+--     -   Initial draft based on VK_AMD_draw_indirect_count
 --
 -- == See Also
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_external_memory.hs b/src/Vulkan/Extensions/VK_KHR_external_memory.hs
--- a/src/Vulkan/Extensions/VK_KHR_external_memory.hs
+++ b/src/Vulkan/Extensions/VK_KHR_external_memory.hs
@@ -305,7 +305,7 @@
 -- instances and APIs other than that required to share the data contained
 -- in the memory objects explicitly shared. As specific examples, data from
 -- previously freed memory objects that used the same underlying physical
--- memory, and data from memory obects using adjacent physical memory must
+-- memory, and data from memory objects using adjacent physical memory must
 -- not be visible to applications importing an exported memory object.
 --
 -- 9) Must implementations validate external handles the application
diff --git a/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs b/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs
--- a/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs
+++ b/src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs
@@ -539,8 +539,8 @@
 --     refers to a handle type with copy payload transference semantics,
 --     @semaphore@ /must/ have an associated semaphore signal operation
 --     that has been submitted for execution and any semaphore signal
---     operations on which it depends (if any) /must/ have also been
---     submitted for execution
+--     operations on which it depends /must/ have also been submitted for
+--     execution
 --
 -- == Valid Usage (Implicit)
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs b/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs
--- a/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs
+++ b/src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs
@@ -272,8 +272,8 @@
 --
 -- -   #VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06522#
 --     If @pSurfaceInfo->surface@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ be supported by
---     @physicalDevice@, as reported by
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @pSurfaceInfo->surface@
+--     /must/ be supported by @physicalDevice@, as reported by
 --     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR'
 --     or an equivalent platform-specific mechanism
 --
@@ -413,8 +413,8 @@
 --
 -- -   #VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-06522# If
 --     @pSurfaceInfo->surface@ is not
---     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ be supported by
---     @physicalDevice@, as reported by
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @pSurfaceInfo->surface@
+--     /must/ be supported by @physicalDevice@, as reported by
 --     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR'
 --     or an equivalent platform-specific mechanism
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_maintenance5.hs b/src/Vulkan/Extensions/VK_KHR_maintenance5.hs
--- a/src/Vulkan/Extensions/VK_KHR_maintenance5.hs
+++ b/src/Vulkan/Extensions/VK_KHR_maintenance5.hs
@@ -974,12 +974,12 @@
 --     @arrayLayers@ specified in @image@
 --
 -- -   #VUID-vkGetImageSubresourceLayout2KHR-format-08886# If @format@ of
---     the @image@ is a color format, @tiling@ of the @image@ is
---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' or
---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', and does not
---     have a
+--     the @image@ is a color format that is not a
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
---     the @aspectMask@ member of @pSubresource@ /must/ be
+--     and @tiling@ of the @image@ is
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' or
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', the
+--     @aspectMask@ member of @pSubresource@ /must/ be
 --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
 --
 -- -   #VUID-vkGetImageSubresourceLayout2KHR-format-04462# If @format@ of
@@ -1768,12 +1768,12 @@
 --     @arrayLayers@ specified in @pCreateInfo@
 --
 -- -   #VUID-VkDeviceImageSubresourceInfoKHR-format-08886# If @format@ of
---     the @pCreateInfo@ is a color format, @tiling@ of the @pCreateInfo@
---     is 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' or
---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', and does not
---     have a
+--     the @image@ is a color format that is not a
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
---     the @aspectMask@ member of @pSubresource@ /must/ be
+--     and @tiling@ of the @pCreateInfo@ is
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' or
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', the
+--     @aspectMask@ member of @pSubresource@ /must/ be
 --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'
 --
 -- -   #VUID-VkDeviceImageSubresourceInfoKHR-format-04462# If @format@ of
@@ -1962,11 +1962,13 @@
 --
 -- -   'PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR' specifies
 --     that triangle primitives will be skipped during traversal using
---     @OpTraceRayKHR@.
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-pipeline-trace-ray pipeline trace ray>
+--     instructions.
 --
 -- -   'PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR' specifies that
 --     AABB primitives will be skipped during traversal using
---     @OpTraceRayKHR@.
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-pipeline-trace-ray pipeline trace ray>
+--     instructions.
 --
 -- -   'PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR'
 --     specifies that the shader group handles /can/ be saved and reused on
diff --git a/src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs b/src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs
--- a/src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs
+++ b/src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs
@@ -434,10 +434,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-08601# For each push constant
@@ -446,11 +446,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-maintenance4-08602# If the
@@ -461,20 +460,22 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-08114# Descriptors in each
 --     bound descriptor set, specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-08115# If the descriptors used
@@ -527,14 +528,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-08608# If a pipeline is bound
 --     to the pipeline bind point used by this command, there /must/ not
 --     have been any calls to dynamic state setting commands for any state
@@ -578,6 +571,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-uniformBuffers-06935# If any stage
 --     of the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline
 --     bind point used by this command accesses a uniform buffer, and that
@@ -817,6 +818,14 @@
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-03429# Any shader group handle
 --     referenced by this call /must/ have been queried from the currently
 --     bound ray tracing pipeline
+--
+-- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-09458# If the bound ray
+--     tracing pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdSetRayTracingPipelineStackSizeKHR'
+--     /must/ have been called in the current command buffer prior to this
+--     trace command
 --
 -- -   #VUID-vkCmdTraceRaysIndirect2KHR-maxPipelineRayRecursionDepth-03679#
 --     This command /must/ not cause a shader call instruction to be
diff --git a/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs b/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs
--- a/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs
+++ b/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs
@@ -1050,10 +1050,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdTraceRaysKHR-None-08601# For each push constant that is
@@ -1062,11 +1062,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdTraceRaysKHR-maintenance4-08602# If the
@@ -1077,20 +1076,22 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdTraceRaysKHR-None-08114# Descriptors in each bound
 --     descriptor set, specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdTraceRaysKHR-None-08115# If the descriptors used by the
@@ -1141,14 +1142,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdTraceRaysKHR-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdTraceRaysKHR-None-08608# If a pipeline is bound to the
 --     pipeline bind point used by this command, there /must/ not have been
 --     any calls to dynamic state setting commands for any state not
@@ -1192,6 +1185,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdTraceRaysKHR-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdTraceRaysKHR-uniformBuffers-06935# If any stage of the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command accesses a uniform buffer, and that stage
@@ -1430,6 +1431,13 @@
 --     referenced by this call /must/ have been queried from the currently
 --     bound ray tracing pipeline
 --
+-- -   #VUID-vkCmdTraceRaysKHR-None-09458# If the bound ray tracing
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR'
+--     dynamic state enabled then 'cmdSetRayTracingPipelineStackSizeKHR'
+--     /must/ have been called in the current command buffer prior to this
+--     trace command
+--
 -- -   #VUID-vkCmdTraceRaysKHR-maxPipelineRayRecursionDepth-03679# This
 --     command /must/ not cause a shader call instruction to be executed
 --     from a shader invocation with a
@@ -1986,6 +1994,9 @@
 -- 'PhysicalDeviceRayTracingPipelineFeaturesKHR'::@rayTracingPipelineShaderGroupHandleCaptureReplay@
 -- is enabled.
 --
+-- Pipelines are created and returned as described for
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-multiple Multiple Pipeline Creation>.
+--
 -- == Valid Usage
 --
 -- -   #VUID-vkCreateRayTracingPipelinesKHR-flags-03415# If the @flags@
@@ -2347,10 +2358,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-None-08601# For each push constant
@@ -2359,11 +2370,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-maintenance4-08602# If the
@@ -2374,20 +2384,22 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-None-08114# Descriptors in each
 --     bound descriptor set, specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-None-08115# If the descriptors used
@@ -2440,14 +2452,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdTraceRaysIndirectKHR-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-None-08608# If a pipeline is bound
 --     to the pipeline bind point used by this command, there /must/ not
 --     have been any calls to dynamic state setting commands for any state
@@ -2491,6 +2495,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdTraceRaysIndirectKHR-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-uniformBuffers-06935# If any stage
 --     of the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline
 --     bind point used by this command accesses a uniform buffer, and that
@@ -2730,6 +2742,13 @@
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-None-03429# Any shader group handle
 --     referenced by this call /must/ have been queried from the currently
 --     bound ray tracing pipeline
+--
+-- -   #VUID-vkCmdTraceRaysIndirectKHR-None-09458# If the bound ray tracing
+--     pipeline state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR'
+--     dynamic state enabled then 'cmdSetRayTracingPipelineStackSizeKHR'
+--     /must/ have been called in the current command buffer prior to this
+--     trace command
 --
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-maxPipelineRayRecursionDepth-03679#
 --     This command /must/ not cause a shader call instruction to be
diff --git a/src/Vulkan/Extensions/VK_KHR_surface.hs b/src/Vulkan/Extensions/VK_KHR_surface.hs
--- a/src/Vulkan/Extensions/VK_KHR_surface.hs
+++ b/src/Vulkan/Extensions/VK_KHR_surface.hs
@@ -807,8 +807,8 @@
 --     /must/ be a valid 'Vulkan.Extensions.Handles.SurfaceKHR' handle
 --
 -- -   #VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-06525# If
---     @surface@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/
---     be supported by @physicalDevice@, as reported by
+--     @surface@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @surface@
+--     /must/ be supported by @physicalDevice@, as reported by
 --     'getPhysicalDeviceSurfaceSupportKHR' or an equivalent
 --     platform-specific mechanism
 --
@@ -934,8 +934,8 @@
 --     handle
 --
 -- -   #VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06525# If
---     @surface@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/
---     be supported by @physicalDevice@, as reported by
+--     @surface@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @surface@
+--     /must/ be supported by @physicalDevice@, as reported by
 --     'getPhysicalDeviceSurfaceSupportKHR' or an equivalent
 --     platform-specific mechanism
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_swapchain.hs b/src/Vulkan/Extensions/VK_KHR_swapchain.hs
--- a/src/Vulkan/Extensions/VK_KHR_swapchain.hs
+++ b/src/Vulkan/Extensions/VK_KHR_swapchain.hs
@@ -1960,8 +1960,7 @@
 --     semaphore signal operation that has been submitted for execution and
 --     any
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>
---     on which it depends (if any) /must/ have also been submitted for
---     execution
+--     on which it depends /must/ have also been submitted for execution
 --
 -- Any writes to memory backing the images referenced by the
 -- @pImageIndices@ and @pSwapchains@ members of @pPresentInfo@, that are
diff --git a/src/Vulkan/Extensions/VK_KHR_vertex_attribute_divisor.hs b/src/Vulkan/Extensions/VK_KHR_vertex_attribute_divisor.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_KHR_vertex_attribute_divisor.hs
@@ -0,0 +1,473 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_KHR_vertex_attribute_divisor - device extension
+--
+-- == VK_KHR_vertex_attribute_divisor
+--
+-- [__Name String__]
+--     @VK_KHR_vertex_attribute_divisor@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     526
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--
+-- [__Contact__]
+--
+--     -   Shahbaz Youssefi
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_vertex_attribute_divisor] @syoussefi%0A*Here describe the issue or question you have about the VK_KHR_vertex_attribute_divisor extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_vertex_attribute_divisor.adoc VK_KHR_vertex_attribute_divisor>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-09-20
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Shahbaz Youssefi, Google
+--
+--     -   Contributors to @VK_EXT_vertex_attribute_divisor@
+--
+-- == Description
+--
+-- This extension is based on the @VK_EXT_vertex_attribute_divisor@
+-- extension. The only difference is the new property
+-- @supportsNonZeroFirstInstance@, which indicates support for non-zero
+-- values in @firstInstance@. This allows the extension to be supported on
+-- implementations that have traditionally only supported OpenGL ES.
+--
+-- == New Structures
+--
+-- -   'VertexInputBindingDivisorDescriptionKHR'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceVertexAttributeDivisorFeaturesKHR'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceVertexAttributeDivisorPropertiesKHR'
+--
+-- -   Extending
+--     'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo':
+--
+--     -   'PipelineVertexInputDivisorStateCreateInfoKHR'
+--
+-- == New Enum Constants
+--
+-- -   'KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME'
+--
+-- -   'KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR'
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-09-20 (Shahbaz Youssefi)
+--
+--     -   First Version, based on @VK_EXT_vertex_attribute_divisor@
+--
+-- == See Also
+--
+-- 'PhysicalDeviceVertexAttributeDivisorFeaturesKHR',
+-- 'PhysicalDeviceVertexAttributeDivisorPropertiesKHR',
+-- 'PipelineVertexInputDivisorStateCreateInfoKHR',
+-- 'VertexInputBindingDivisorDescriptionKHR'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_vertex_attribute_divisor Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_KHR_vertex_attribute_divisor  ( VertexInputBindingDivisorDescriptionKHR(..)
+                                                          , PipelineVertexInputDivisorStateCreateInfoKHR(..)
+                                                          , PhysicalDeviceVertexAttributeDivisorPropertiesKHR(..)
+                                                          , PhysicalDeviceVertexAttributeDivisorFeaturesKHR(..)
+                                                          , KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION
+                                                          , pattern KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION
+                                                          , KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME
+                                                          , pattern KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME
+                                                          ) where
+
+import Foreign.Marshal.Alloc (allocaBytes)
+import Foreign.Ptr (nullPtr)
+import Foreign.Ptr (plusPtr)
+import Control.Monad.Trans.Class (lift)
+import Control.Monad.Trans.Cont (evalContT)
+import Data.Vector (generateM)
+import qualified Data.Vector (imapM_)
+import qualified Data.Vector (length)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
+import Data.String (IsString)
+import Data.Typeable (Typeable)
+import Foreign.Storable (Storable)
+import Foreign.Storable (Storable(peek))
+import Foreign.Storable (Storable(poke))
+import qualified Foreign.Storable (Storable(..))
+import GHC.Generics (Generic)
+import Foreign.Ptr (Ptr)
+import Data.Word (Word32)
+import Data.Kind (Type)
+import Control.Monad.Trans.Cont (ContT(..))
+import Data.Vector (Vector)
+import Vulkan.CStruct.Utils (advancePtrBytes)
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR))
+-- | VkVertexInputBindingDivisorDescriptionKHR - Structure specifying a
+-- divisor used in instanced rendering
+--
+-- = Description
+--
+-- If this structure is not used to define a divisor value for an
+-- attribute, then the divisor has a logical default value of 1.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkVertexInputBindingDivisorDescriptionKHR-binding-01869#
+--     @binding@ /must/ be less than
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@
+--
+-- -   #VUID-VkVertexInputBindingDivisorDescriptionKHR-vertexAttributeInstanceRateZeroDivisor-02228#
+--     If the @vertexAttributeInstanceRateZeroDivisor@ feature is not
+--     enabled, @divisor@ /must/ not be @0@
+--
+-- -   #VUID-VkVertexInputBindingDivisorDescriptionKHR-vertexAttributeInstanceRateDivisor-02229#
+--     If the @vertexAttributeInstanceRateDivisor@ feature is not enabled,
+--     @divisor@ /must/ be @1@
+--
+-- -   #VUID-VkVertexInputBindingDivisorDescriptionKHR-divisor-01870#
+--     @divisor@ /must/ be a value between @0@ and
+--     'PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@maxVertexAttribDivisor@,
+--     inclusive
+--
+-- -   #VUID-VkVertexInputBindingDivisorDescriptionKHR-inputRate-01871#
+--     'Vulkan.Core10.Pipeline.VertexInputBindingDescription'::@inputRate@
+--     /must/ be of type
+--     'Vulkan.Core10.Enums.VertexInputRate.VERTEX_INPUT_RATE_INSTANCE' for
+--     this @binding@
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisor VK_EXT_vertex_attribute_divisor>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_vertex_attribute_divisor VK_KHR_vertex_attribute_divisor>,
+-- 'PipelineVertexInputDivisorStateCreateInfoKHR'
+data VertexInputBindingDivisorDescriptionKHR = VertexInputBindingDivisorDescriptionKHR
+  { -- | @binding@ is the binding number for which the divisor is specified.
+    binding :: Word32
+  , -- | @divisor@ is the number of successive instances that will use the same
+    -- value of the vertex attribute when instanced rendering is enabled. For
+    -- example, if the divisor is N, the same vertex attribute will be applied
+    -- to N successive instances before moving on to the next vertex attribute.
+    -- The maximum value of @divisor@ is implementation-dependent and can be
+    -- queried using
+    -- 'PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@maxVertexAttribDivisor@.
+    -- A value of @0@ /can/ be used for the divisor if the
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor vertexAttributeInstanceRateZeroDivisor>
+    -- feature is enabled. In this case, the same vertex attribute will be
+    -- applied to all instances.
+    divisor :: Word32
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (VertexInputBindingDivisorDescriptionKHR)
+#endif
+deriving instance Show VertexInputBindingDivisorDescriptionKHR
+
+instance ToCStruct VertexInputBindingDivisorDescriptionKHR where
+  withCStruct x f = allocaBytes 8 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p VertexInputBindingDivisorDescriptionKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr Word32)) (binding)
+    poke ((p `plusPtr` 4 :: Ptr Word32)) (divisor)
+    f
+  cStructSize = 8
+  cStructAlignment = 4
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)
+    f
+
+instance FromCStruct VertexInputBindingDivisorDescriptionKHR where
+  peekCStruct p = do
+    binding <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))
+    divisor <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))
+    pure $ VertexInputBindingDivisorDescriptionKHR
+             binding divisor
+
+instance Storable VertexInputBindingDivisorDescriptionKHR where
+  sizeOf ~_ = 8
+  alignment ~_ = 4
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero VertexInputBindingDivisorDescriptionKHR where
+  zero = VertexInputBindingDivisorDescriptionKHR
+           zero
+           zero
+
+
+-- | VkPipelineVertexInputDivisorStateCreateInfoKHR - Structure specifying
+-- vertex attributes assignment during instanced rendering
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisor VK_EXT_vertex_attribute_divisor>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_vertex_attribute_divisor VK_KHR_vertex_attribute_divisor>,
+-- 'Vulkan.Core10.Enums.StructureType.StructureType',
+-- 'VertexInputBindingDivisorDescriptionKHR'
+data PipelineVertexInputDivisorStateCreateInfoKHR = PipelineVertexInputDivisorStateCreateInfoKHR
+  { -- | @pVertexBindingDivisors@ is a pointer to an array of
+    -- 'VertexInputBindingDivisorDescriptionKHR' structures specifying the
+    -- divisor value for each binding.
+    --
+    -- #VUID-VkPipelineVertexInputDivisorStateCreateInfoKHR-pVertexBindingDivisors-parameter#
+    -- @pVertexBindingDivisors@ /must/ be a valid pointer to an array of
+    -- @vertexBindingDivisorCount@ 'VertexInputBindingDivisorDescriptionKHR'
+    -- structures
+    vertexBindingDivisors :: Vector VertexInputBindingDivisorDescriptionKHR }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PipelineVertexInputDivisorStateCreateInfoKHR)
+#endif
+deriving instance Show PipelineVertexInputDivisorStateCreateInfoKHR
+
+instance ToCStruct PipelineVertexInputDivisorStateCreateInfoKHR where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PipelineVertexInputDivisorStateCreateInfoKHR{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (vertexBindingDivisors)) :: Word32))
+    pPVertexBindingDivisors' <- ContT $ allocaBytes @VertexInputBindingDivisorDescriptionKHR ((Data.Vector.length (vertexBindingDivisors)) * 8)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPVertexBindingDivisors' `plusPtr` (8 * (i)) :: Ptr VertexInputBindingDivisorDescriptionKHR) (e)) (vertexBindingDivisors)
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr VertexInputBindingDivisorDescriptionKHR))) (pPVertexBindingDivisors')
+    lift $ f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    f
+
+instance FromCStruct PipelineVertexInputDivisorStateCreateInfoKHR where
+  peekCStruct p = do
+    vertexBindingDivisorCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    pVertexBindingDivisors <- peek @(Ptr VertexInputBindingDivisorDescriptionKHR) ((p `plusPtr` 24 :: Ptr (Ptr VertexInputBindingDivisorDescriptionKHR)))
+    pVertexBindingDivisors' <- generateM (fromIntegral vertexBindingDivisorCount) (\i -> peekCStruct @VertexInputBindingDivisorDescriptionKHR ((pVertexBindingDivisors `advancePtrBytes` (8 * (i)) :: Ptr VertexInputBindingDivisorDescriptionKHR)))
+    pure $ PipelineVertexInputDivisorStateCreateInfoKHR
+             pVertexBindingDivisors'
+
+instance Zero PipelineVertexInputDivisorStateCreateInfoKHR where
+  zero = PipelineVertexInputDivisorStateCreateInfoKHR
+           mempty
+
+
+-- | VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR - Structure
+-- describing max value of vertex attribute divisor that can be supported
+-- by an implementation
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceVertexAttributeDivisorPropertiesKHR' structure is
+-- included in the @pNext@ chain of the
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'
+-- structure passed to
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',
+-- it is filled in with each corresponding implementation-dependent
+-- property.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_vertex_attribute_divisor VK_KHR_vertex_attribute_divisor>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceVertexAttributeDivisorPropertiesKHR = PhysicalDeviceVertexAttributeDivisorPropertiesKHR
+  { -- | #limits-maxVertexAttribDivisor# @maxVertexAttribDivisor@ is the maximum
+    -- value of the number of instances that will repeat the value of vertex
+    -- attribute data when instanced rendering is enabled.
+    maxVertexAttribDivisor :: Word32
+  , -- | #limits-supportsNonZeroFirstInstance# @supportsNonZeroFirstInstance@
+    -- specifies whether a non-zero value for the @firstInstance@ parameter of
+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing drawing commands>
+    -- is supported when 'VertexInputBindingDivisorDescriptionKHR'::@divisor@
+    -- is not @1@.
+    supportsNonZeroFirstInstance :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceVertexAttributeDivisorPropertiesKHR)
+#endif
+deriving instance Show PhysicalDeviceVertexAttributeDivisorPropertiesKHR
+
+instance ToCStruct PhysicalDeviceVertexAttributeDivisorPropertiesKHR where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceVertexAttributeDivisorPropertiesKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (maxVertexAttribDivisor)
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (supportsNonZeroFirstInstance))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceVertexAttributeDivisorPropertiesKHR where
+  peekCStruct p = do
+    maxVertexAttribDivisor <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    supportsNonZeroFirstInstance <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    pure $ PhysicalDeviceVertexAttributeDivisorPropertiesKHR
+             maxVertexAttribDivisor (bool32ToBool supportsNonZeroFirstInstance)
+
+instance Storable PhysicalDeviceVertexAttributeDivisorPropertiesKHR where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceVertexAttributeDivisorPropertiesKHR where
+  zero = PhysicalDeviceVertexAttributeDivisorPropertiesKHR
+           zero
+           zero
+
+
+-- | VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR - Structure describing
+-- if fetching of vertex attribute may be repeated for instanced rendering
+--
+-- = Members
+--
+-- This structure describes the following features:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceVertexAttributeDivisorFeaturesKHR' structure is
+-- included in the @pNext@ chain of the
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'
+-- structure passed to
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',
+-- it is filled in to indicate whether each corresponding feature is
+-- supported. 'PhysicalDeviceVertexAttributeDivisorFeaturesKHR' /can/ also
+-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'
+-- to selectively enable these features.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisor VK_EXT_vertex_attribute_divisor>,
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_vertex_attribute_divisor VK_KHR_vertex_attribute_divisor>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceVertexAttributeDivisorFeaturesKHR = PhysicalDeviceVertexAttributeDivisorFeaturesKHR
+  { -- | #features-vertexAttributeInstanceRateDivisor#
+    -- @vertexAttributeInstanceRateDivisor@ specifies whether vertex attribute
+    -- fetching may be repeated in the case of instanced rendering.
+    vertexAttributeInstanceRateDivisor :: Bool
+  , -- | #features-vertexAttributeInstanceRateZeroDivisor#
+    -- @vertexAttributeInstanceRateZeroDivisor@ specifies whether a zero value
+    -- for
+    -- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VertexInputBindingDivisorDescriptionEXT'::@divisor@
+    -- is supported.
+    vertexAttributeInstanceRateZeroDivisor :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceVertexAttributeDivisorFeaturesKHR)
+#endif
+deriving instance Show PhysicalDeviceVertexAttributeDivisorFeaturesKHR
+
+instance ToCStruct PhysicalDeviceVertexAttributeDivisorFeaturesKHR where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceVertexAttributeDivisorFeaturesKHR{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (vertexAttributeInstanceRateDivisor))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (vertexAttributeInstanceRateZeroDivisor))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceVertexAttributeDivisorFeaturesKHR where
+  peekCStruct p = do
+    vertexAttributeInstanceRateDivisor <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    vertexAttributeInstanceRateZeroDivisor <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    pure $ PhysicalDeviceVertexAttributeDivisorFeaturesKHR
+             (bool32ToBool vertexAttributeInstanceRateDivisor)
+             (bool32ToBool vertexAttributeInstanceRateZeroDivisor)
+
+instance Storable PhysicalDeviceVertexAttributeDivisorFeaturesKHR where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceVertexAttributeDivisorFeaturesKHR where
+  zero = PhysicalDeviceVertexAttributeDivisorFeaturesKHR
+           zero
+           zero
+
+
+type KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION"
+pattern KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION :: forall a . Integral a => a
+pattern KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION = 1
+
+
+type KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME = "VK_KHR_vertex_attribute_divisor"
+
+-- No documentation found for TopLevel "VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME"
+pattern KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME = "VK_KHR_vertex_attribute_divisor"
+
diff --git a/src/Vulkan/Extensions/VK_KHR_vertex_attribute_divisor.hs-boot b/src/Vulkan/Extensions/VK_KHR_vertex_attribute_divisor.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_KHR_vertex_attribute_divisor.hs-boot
@@ -0,0 +1,152 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_KHR_vertex_attribute_divisor - device extension
+--
+-- == VK_KHR_vertex_attribute_divisor
+--
+-- [__Name String__]
+--     @VK_KHR_vertex_attribute_divisor@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     526
+--
+-- [__Revision__]
+--     1
+--
+-- [__Ratification Status__]
+--     Ratified
+--
+-- [__Extension and Version Dependencies__]
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>
+--     or
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>
+--
+-- [__Contact__]
+--
+--     -   Shahbaz Youssefi
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_vertex_attribute_divisor] @syoussefi%0A*Here describe the issue or question you have about the VK_KHR_vertex_attribute_divisor extension* >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_vertex_attribute_divisor.adoc VK_KHR_vertex_attribute_divisor>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2023-09-20
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Shahbaz Youssefi, Google
+--
+--     -   Contributors to @VK_EXT_vertex_attribute_divisor@
+--
+-- == Description
+--
+-- This extension is based on the @VK_EXT_vertex_attribute_divisor@
+-- extension. The only difference is the new property
+-- @supportsNonZeroFirstInstance@, which indicates support for non-zero
+-- values in @firstInstance@. This allows the extension to be supported on
+-- implementations that have traditionally only supported OpenGL ES.
+--
+-- == New Structures
+--
+-- -   'VertexInputBindingDivisorDescriptionKHR'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceVertexAttributeDivisorFeaturesKHR'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceVertexAttributeDivisorPropertiesKHR'
+--
+-- -   Extending
+--     'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo':
+--
+--     -   'PipelineVertexInputDivisorStateCreateInfoKHR'
+--
+-- == New Enum Constants
+--
+-- -   'KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME'
+--
+-- -   'KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR'
+--
+-- == Version History
+--
+-- -   Revision 1, 2023-09-20 (Shahbaz Youssefi)
+--
+--     -   First Version, based on @VK_EXT_vertex_attribute_divisor@
+--
+-- == See Also
+--
+-- 'PhysicalDeviceVertexAttributeDivisorFeaturesKHR',
+-- 'PhysicalDeviceVertexAttributeDivisorPropertiesKHR',
+-- 'PipelineVertexInputDivisorStateCreateInfoKHR',
+-- 'VertexInputBindingDivisorDescriptionKHR'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_vertex_attribute_divisor Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_KHR_vertex_attribute_divisor  ( PhysicalDeviceVertexAttributeDivisorFeaturesKHR
+                                                          , PhysicalDeviceVertexAttributeDivisorPropertiesKHR
+                                                          , PipelineVertexInputDivisorStateCreateInfoKHR
+                                                          , VertexInputBindingDivisorDescriptionKHR
+                                                          ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDeviceVertexAttributeDivisorFeaturesKHR
+
+instance ToCStruct PhysicalDeviceVertexAttributeDivisorFeaturesKHR
+instance Show PhysicalDeviceVertexAttributeDivisorFeaturesKHR
+
+instance FromCStruct PhysicalDeviceVertexAttributeDivisorFeaturesKHR
+
+
+data PhysicalDeviceVertexAttributeDivisorPropertiesKHR
+
+instance ToCStruct PhysicalDeviceVertexAttributeDivisorPropertiesKHR
+instance Show PhysicalDeviceVertexAttributeDivisorPropertiesKHR
+
+instance FromCStruct PhysicalDeviceVertexAttributeDivisorPropertiesKHR
+
+
+data PipelineVertexInputDivisorStateCreateInfoKHR
+
+instance ToCStruct PipelineVertexInputDivisorStateCreateInfoKHR
+instance Show PipelineVertexInputDivisorStateCreateInfoKHR
+
+instance FromCStruct PipelineVertexInputDivisorStateCreateInfoKHR
+
+
+data VertexInputBindingDivisorDescriptionKHR
+
+instance ToCStruct VertexInputBindingDivisorDescriptionKHR
+instance Show VertexInputBindingDivisorDescriptionKHR
+
+instance FromCStruct VertexInputBindingDivisorDescriptionKHR
+
diff --git a/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs b/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs
--- a/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs
+++ b/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs
@@ -891,10 +891,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08601# For each push
@@ -903,11 +903,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-maintenance4-08602# If the
@@ -918,20 +917,22 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08114# Descriptors in
 --     each bound descriptor set, specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08115# If the descriptors
@@ -984,14 +985,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08608# If a pipeline is
 --     bound to the pipeline bind point used by this command, there /must/
 --     not have been any calls to dynamic state setting commands for any
@@ -1035,6 +1028,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-uniformBuffers-06935# If any
 --     stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the
 --     pipeline bind point used by this command accesses a uniform buffer,
@@ -1641,16 +1642,6 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07934#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state enabled, then the @sampleLocationsPerPixel@ member of
---     @pSampleLocationsInfo@ in the last call to
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ equal the @rasterizationSamples@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
 -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07840# If the bound
 --     graphics pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
@@ -2132,22 +2123,36 @@
 --
 -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07284#
 --     If rasterization is not disabled in the bound graphics pipeline, and
---     none of the @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
+--     none of the following is enabled:
 --
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the currently bound graphics
+--     pipeline /must/ be the same as the current subpass color and\/or
+--     depth\/stencil attachments
+--
 -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08644# If a shader object
 --     is bound to any graphics stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
 --     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the
---     @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then the most recent call to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then the most recent call to
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
 --     in the current command buffer /must/ have set @rasterizationSamples@
 --     to be the same as the number of samples for the current render pass
@@ -2250,42 +2255,42 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
 --     used to create the currently bound graphics pipeline
 --
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08911#
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08912#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is enabled, and the current render pass instance was begun
---     with
+--     feature is not enabled, and the current render pass instance was
+--     begun with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ not equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
+--     array with a @imageView@ equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound graphics pipeline, or the
---     corresponding element of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
---     if it exists, /must/ be
+--     used to create the currently bound pipeline equal to
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
--- -   #VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08912#
+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08911#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is not enabled, and the current render pass instance was
---     begun with
+--     feature is enabled, and the current render pass instance was begun
+--     with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
+--     array with a @imageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound pipeline equal to
+--     used to create the currently bound graphics pipeline, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
 -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-09362# If
@@ -2694,9 +2699,7 @@
 --     the currently bound graphics pipeline
 --
 -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07286#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -2710,9 +2713,7 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
 --
 -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07287#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
diff --git a/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs b/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs
--- a/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs
+++ b/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs
@@ -50,7 +50,7 @@
 -- buffer, or a previous secondary command buffer executed within the same
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' call. It
 -- addresses a frequent scenario in applications that deal with window
--- resizing and want to improve utilization of re-usable secondary command
+-- resizing and want to improve utilization of reusable secondary command
 -- buffers. The functionality is provided through
 -- 'CommandBufferInheritanceViewportScissorInfoNV'. Viewport inheritance is
 -- effectively limited to the 2D rectangle; secondary command buffers must
diff --git a/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot b/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot
--- a/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot
+++ b/src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot
@@ -50,7 +50,7 @@
 -- buffer, or a previous secondary command buffer executed within the same
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' call. It
 -- addresses a frequent scenario in applications that deal with window
--- resizing and want to improve utilization of re-usable secondary command
+-- resizing and want to improve utilization of reusable secondary command
 -- buffers. The functionality is provided through
 -- 'CommandBufferInheritanceViewportScissorInfoNV'. Viewport inheritance is
 -- effectively limited to the 2D rectangle; secondary command buffers must
diff --git a/src/Vulkan/Extensions/VK_NV_mesh_shader.hs b/src/Vulkan/Extensions/VK_NV_mesh_shader.hs
--- a/src/Vulkan/Extensions/VK_NV_mesh_shader.hs
+++ b/src/Vulkan/Extensions/VK_NV_mesh_shader.hs
@@ -502,10 +502,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMeshTasksNV-None-08601# For each push constant that
@@ -514,11 +514,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMeshTasksNV-maintenance4-08602# If the
@@ -529,20 +528,22 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMeshTasksNV-None-08114# Descriptors in each bound
 --     descriptor set, specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdDrawMeshTasksNV-None-08115# If the descriptors used by
@@ -595,14 +596,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdDrawMeshTasksNV-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdDrawMeshTasksNV-None-08608# If a pipeline is bound to the
 --     pipeline bind point used by this command, there /must/ not have been
 --     any calls to dynamic state setting commands for any state not
@@ -646,6 +639,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdDrawMeshTasksNV-uniformBuffers-06935# If any stage of the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command accesses a uniform buffer, and that stage
@@ -1246,16 +1247,6 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
--- -   #VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07934# If the
---     bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state enabled, then the @sampleLocationsPerPixel@ member of
---     @pSampleLocationsInfo@ in the last call to
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ equal the @rasterizationSamples@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
 -- -   #VUID-vkCmdDrawMeshTasksNV-None-07840# If the bound graphics
 --     pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
@@ -1736,22 +1727,36 @@
 --
 -- -   #VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07284#
 --     If rasterization is not disabled in the bound graphics pipeline, and
---     none of the @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
+--     none of the following is enabled:
 --
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the currently bound graphics
+--     pipeline /must/ be the same as the current subpass color and\/or
+--     depth\/stencil attachments
+--
 -- -   #VUID-vkCmdDrawMeshTasksNV-None-08644# If a shader object is bound
 --     to any graphics stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
 --     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the
---     @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then the most recent call to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then the most recent call to
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
 --     in the current command buffer /must/ have set @rasterizationSamples@
 --     to be the same as the number of samples for the current render pass
@@ -1853,42 +1858,42 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
 --     used to create the currently bound graphics pipeline
 --
--- -   #VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08911#
+-- -   #VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08912#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is enabled, and the current render pass instance was begun
---     with
+--     feature is not enabled, and the current render pass instance was
+--     begun with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ not equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
+--     array with a @imageView@ equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound graphics pipeline, or the
---     corresponding element of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
---     if it exists, /must/ be
+--     used to create the currently bound pipeline equal to
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
--- -   #VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08912#
+-- -   #VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08911#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is not enabled, and the current render pass instance was
---     begun with
+--     feature is enabled, and the current render pass instance was begun
+--     with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
+--     array with a @imageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound pipeline equal to
+--     used to create the currently bound graphics pipeline, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
 -- -   #VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-09362# If the
@@ -2296,9 +2301,7 @@
 --     the currently bound graphics pipeline
 --
 -- -   #VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07286#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -2312,9 +2315,7 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
 --
 -- -   #VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07287#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -4133,10 +4134,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08601# For each push
@@ -4145,11 +4146,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-08602# If the
@@ -4160,20 +4160,22 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08114# Descriptors in each
 --     bound descriptor set, specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08115# If the descriptors
@@ -4226,14 +4228,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08608# If a pipeline is
 --     bound to the pipeline bind point used by this command, there /must/
 --     not have been any calls to dynamic state setting commands for any
@@ -4277,6 +4271,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-uniformBuffers-06935# If any
 --     stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the
 --     pipeline bind point used by this command accesses a uniform buffer,
@@ -4880,16 +4882,6 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsPerPixel-07934# If
---     the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state enabled, then the @sampleLocationsPerPixel@ member of
---     @pSampleLocationsInfo@ in the last call to
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ equal the @rasterizationSamples@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
 -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07840# If the bound graphics
 --     pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
@@ -5371,22 +5363,36 @@
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07284#
 --     If rasterization is not disabled in the bound graphics pipeline, and
---     none of the @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
+--     none of the following is enabled:
 --
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the currently bound graphics
+--     pipeline /must/ be the same as the current subpass color and\/or
+--     depth\/stencil attachments
+--
 -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08644# If a shader object is
 --     bound to any graphics stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
 --     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the
---     @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then the most recent call to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then the most recent call to
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
 --     in the current command buffer /must/ have set @rasterizationSamples@
 --     to be the same as the number of samples for the current render pass
@@ -5489,42 +5495,42 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
 --     used to create the currently bound graphics pipeline
 --
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08911#
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08912#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is enabled, and the current render pass instance was begun
---     with
+--     feature is not enabled, and the current render pass instance was
+--     begun with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ not equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
+--     array with a @imageView@ equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound graphics pipeline, or the
---     corresponding element of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
---     if it exists, /must/ be
+--     used to create the currently bound pipeline equal to
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
--- -   #VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08912#
+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08911#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is not enabled, and the current render pass instance was
---     begun with
+--     feature is enabled, and the current render pass instance was begun
+--     with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
+--     array with a @imageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound pipeline equal to
+--     used to create the currently bound graphics pipeline, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-09362# If
@@ -5932,9 +5938,7 @@
 --     the currently bound graphics pipeline
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07286#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -5948,9 +5952,7 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07287#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -7825,10 +7827,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08601# For each push
@@ -7837,11 +7839,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-08602# If the
@@ -7852,20 +7853,22 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08114# Descriptors in
 --     each bound descriptor set, specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08115# If the
@@ -7918,14 +7921,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08608# If a pipeline is
 --     bound to the pipeline bind point used by this command, there /must/
 --     not have been any calls to dynamic state setting commands for any
@@ -7969,6 +7964,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-uniformBuffers-06935# If any
 --     stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the
 --     pipeline bind point used by this command accesses a uniform buffer,
@@ -8575,16 +8578,6 @@
 --     /must/ have been called in the current command buffer prior to this
 --     drawing command
 --
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsPerPixel-07934#
---     If the bound graphics pipeline state was created with the
---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'
---     state enabled, then the @sampleLocationsPerPixel@ member of
---     @pSampleLocationsInfo@ in the last call to
---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'
---     /must/ equal the @rasterizationSamples@ member of the
---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'
---     structure the bound graphics pipeline has been created with
---
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07840# If the bound
 --     graphics pipeline state was created with the
 --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic
@@ -9069,22 +9062,36 @@
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07284#
 --     If rasterization is not disabled in the bound graphics pipeline, and
---     none of the @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then @rasterizationSamples@ for the currently
---     bound graphics pipeline /must/ be the same as the current subpass
---     color and\/or depth\/stencil attachments
+--     none of the following is enabled:
 --
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then @rasterizationSamples@ for the currently bound graphics
+--     pipeline /must/ be the same as the current subpass color and\/or
+--     depth\/stencil attachments
+--
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08644# If a shader
 --     object is bound to any graphics stage, and the most recent call to
 --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable'
 --     in the current command buffer set @rasterizerDiscardEnable@ to
---     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the
---     @VK_AMD_mixed_attachment_samples@ extension, the
---     @VK_NV_framebuffer_mixed_samples@ extension, or the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
---     feature is enabled, then the most recent call to
+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is
+--     enabled:
+--
+--     -   the @VK_AMD_mixed_attachment_samples@ extension
+--
+--     -   the @VK_NV_framebuffer_mixed_samples@ extension
+--
+--     -   the
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>
+--         feature
+--
+--     then the most recent call to
 --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'
 --     in the current command buffer /must/ have set @rasterizationSamples@
 --     to be the same as the number of samples for the current render pass
@@ -9187,42 +9194,42 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
 --     used to create the currently bound graphics pipeline
 --
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08911#
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08912#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is enabled, and the current render pass instance was begun
---     with
+--     feature is not enabled, and the current render pass instance was
+--     begun with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ not equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
---     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
+--     array with a @imageView@ equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound graphics pipeline, or the
---     corresponding element of
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
---     if it exists, /must/ be
+--     used to create the currently bound pipeline equal to
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
--- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08912#
+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08911#
 --     If the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>
---     feature is not enabled, and the current render pass instance was
---     begun with
+--     feature is enabled, and the current render pass instance was begun
+--     with
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'
 --     and
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@colorAttachmentCount@
 --     greater than @0@, then each element of the
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pColorAttachments@
---     array with a @imageView@ equal to
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the
+--     array with a @imageView@ not equal to
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have been created
+--     with a 'Vulkan.Core10.Enums.Format.Format' equal to the
 --     corresponding element of
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@
---     used to create the currently bound pipeline equal to
+--     used to create the currently bound graphics pipeline, or the
+--     corresponding element of
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,
+--     if it exists, /must/ be
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-09362#
@@ -9631,9 +9638,7 @@
 --     the currently bound graphics pipeline
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07286#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
@@ -9647,9 +9652,7 @@
 --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07287#
---     If the current render pass instance was begun with
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering',
---     the currently bound pipeline was created without a
+--     If the currently bound pipeline was created without a
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD'
 --     or
 --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
diff --git a/src/Vulkan/Extensions/VK_NV_optical_flow.hs b/src/Vulkan/Extensions/VK_NV_optical_flow.hs
--- a/src/Vulkan/Extensions/VK_NV_optical_flow.hs
+++ b/src/Vulkan/Extensions/VK_NV_optical_flow.hs
@@ -485,8 +485,9 @@
 -- supported, at most @pFormatCount@ values will be written to
 -- @pImageFormatProperties@, and 'Vulkan.Core10.Enums.Result.INCOMPLETE'
 -- will be returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to
--- indicate that not all the available values were returned. Before
--- creating an image to be used as a optical flow frame, obtain the
+-- indicate that not all the available values were returned.
+--
+-- Before creating an image to be used as a optical flow frame, obtain the
 -- supported image creation parameters by querying with
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'
 -- and
@@ -494,10 +495,11 @@
 -- using one of the reported formats and adding
 -- 'OpticalFlowImageFormatInfoNV' to the @pNext@ chain of
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2'.
+--
 -- When querying the parameters with
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'
 -- for images used for optical flow operations, the
--- 'OpticalFlowImageFormatInfoNV'::@usage@ field should contain one or more
+-- 'OpticalFlowImageFormatInfoNV'::@usage@ field /must/ contain one or more
 -- of the bits defined in 'OpticalFlowUsageFlagBitsNV'.
 --
 -- == Valid Usage (Implicit)
diff --git a/src/Vulkan/Extensions/VK_NV_ray_tracing.hs b/src/Vulkan/Extensions/VK_NV_ray_tracing.hs
--- a/src/Vulkan/Extensions/VK_NV_ray_tracing.hs
+++ b/src/Vulkan/Extensions/VK_NV_ray_tracing.hs
@@ -1888,10 +1888,10 @@
 --     a descriptor set /must/ have been bound to /n/ at the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for set /n/, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdTraceRaysNV-None-08601# For each push constant that is
@@ -1900,11 +1900,10 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
---     'Vulkan.Core10.Handles.DescriptorSetLayout' and
---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the
+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdTraceRaysNV-maintenance4-08602# If the
@@ -1915,20 +1914,22 @@
 --     a push constant value /must/ have been set for the same pipeline
 --     bind point, with a 'Vulkan.Core10.Handles.PipelineLayout' that is
 --     compatible for push constants, with the
---     'Vulkan.Core10.Handles.PipelineLayout' or
+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current
+--     'Vulkan.Core10.Handles.Pipeline' or the
 --     'Vulkan.Core10.Handles.DescriptorSetLayout' and
 --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to
---     create the current 'Vulkan.Core10.Handles.Pipeline' or
---     'Vulkan.Extensions.Handles.ShaderEXT', as described in
+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as
+--     described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???>
 --
 -- -   #VUID-vkCmdTraceRaysNV-None-08114# Descriptors in each bound
 --     descriptor set, specified via
 --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/
---     be valid if they are statically used by the
---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point
---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'
---     was not created with
+--     be valid as described by
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>
+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'
+--     bound to the pipeline bind point used by this command and the bound
+--     'Vulkan.Core10.Handles.Pipeline' was not created with
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT'
 --
 -- -   #VUID-vkCmdTraceRaysNV-None-08115# If the descriptors used by the
@@ -1979,14 +1980,6 @@
 --     feature is not enabled, a valid pipeline /must/ be bound to the
 --     pipeline bind point used by this command
 --
--- -   #VUID-vkCmdTraceRaysNV-None-08607# If the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
---     is enabled, either a valid pipeline /must/ be bound to the pipeline
---     bind point used by this command, or a valid combination of valid and
---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
---     bound to every supported shader stage corresponding to the pipeline
---     bind point used by this command
---
 -- -   #VUID-vkCmdTraceRaysNV-None-08608# If a pipeline is bound to the
 --     pipeline bind point used by this command, there /must/ not have been
 --     any calls to dynamic state setting commands for any state not
@@ -2030,6 +2023,14 @@
 --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that
 --     includes a LOD bias or any offset values, in any shader stage
 --
+-- -   #VUID-vkCmdTraceRaysNV-None-08607# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>
+--     is enabled, either a valid pipeline /must/ be bound to the pipeline
+--     bind point used by this command, or a valid combination of valid and
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be
+--     bound to every supported shader stage corresponding to the pipeline
+--     bind point used by this command
+--
 -- -   #VUID-vkCmdTraceRaysNV-uniformBuffers-06935# If any stage of the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command accesses a uniform buffer, and that stage
@@ -2268,6 +2269,14 @@
 --     referenced by this call /must/ have been queried from the currently
 --     bound ray tracing pipeline
 --
+-- -   #VUID-vkCmdTraceRaysNV-None-09458# If the bound ray tracing pipeline
+--     state was created with the
+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR'
+--     dynamic state enabled then
+--     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdSetRayTracingPipelineStackSizeKHR'
+--     /must/ have been called in the current command buffer prior to this
+--     trace command
+--
 -- -   #VUID-vkCmdTraceRaysNV-commandBuffer-04624# @commandBuffer@ /must/
 --     not be a protected command buffer
 --
@@ -2614,6 +2623,11 @@
 
 -- | vkCreateRayTracingPipelinesNV - Creates a new ray tracing pipeline
 -- object
+--
+-- = Description
+--
+-- Pipelines are created and returned as described for
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-multiple Multiple Pipeline Creation>.
 --
 -- == Valid Usage
 --
diff --git a/src/Vulkan/Version.hs b/src/Vulkan/Version.hs
--- a/src/Vulkan/Version.hs
+++ b/src/Vulkan/Version.hs
@@ -19,11 +19,11 @@
 import Data.Word (Word32)
 
 pattern HEADER_VERSION :: Word32
-pattern HEADER_VERSION = 271
+pattern HEADER_VERSION = 273
 
 
 pattern HEADER_VERSION_COMPLETE :: Word32
-pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 271
+pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 273
 
 
 pattern MAKE_API_VERSION :: Word32 -> Word32 -> Word32 -> Word32
diff --git a/vulkan.cabal b/vulkan.cabal
--- a/vulkan.cabal
+++ b/vulkan.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           vulkan
-version:        3.26.3
+version:        3.26.4
 synopsis:       Bindings to the Vulkan graphics API.
 description:    Please see [the readme](https://github.com/expipiplus1/vulkan/#readme)
 category:       Graphics
@@ -317,6 +317,7 @@
       Vulkan.Extensions.VK_ANDROID_external_format_resolve
       Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer
       Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access
+      Vulkan.Extensions.VK_ARM_render_pass_striped
       Vulkan.Extensions.VK_ARM_scheduling_controls
       Vulkan.Extensions.VK_ARM_shader_core_builtins
       Vulkan.Extensions.VK_ARM_shader_core_properties
@@ -381,6 +382,7 @@
       Vulkan.Extensions.VK_EXT_image_view_min_lod
       Vulkan.Extensions.VK_EXT_index_type_uint8
       Vulkan.Extensions.VK_EXT_inline_uniform_block
+      Vulkan.Extensions.VK_EXT_layer_settings
       Vulkan.Extensions.VK_EXT_legacy_dithering
       Vulkan.Extensions.VK_EXT_line_rasterization
       Vulkan.Extensions.VK_EXT_load_store_op_none
@@ -469,6 +471,7 @@
       Vulkan.Extensions.VK_KHR_android_surface
       Vulkan.Extensions.VK_KHR_bind_memory2
       Vulkan.Extensions.VK_KHR_buffer_device_address
+      Vulkan.Extensions.VK_KHR_calibrated_timestamps
       Vulkan.Extensions.VK_KHR_cooperative_matrix
       Vulkan.Extensions.VK_KHR_copy_commands2
       Vulkan.Extensions.VK_KHR_create_renderpass2
@@ -550,6 +553,7 @@
       Vulkan.Extensions.VK_KHR_timeline_semaphore
       Vulkan.Extensions.VK_KHR_uniform_buffer_standard_layout
       Vulkan.Extensions.VK_KHR_variable_pointers
+      Vulkan.Extensions.VK_KHR_vertex_attribute_divisor
       Vulkan.Extensions.VK_KHR_vulkan_memory_model
       Vulkan.Extensions.VK_KHR_wayland_surface
       Vulkan.Extensions.VK_KHR_win32_keyed_mutex
