diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -2,6 +2,9 @@
 
 ## WIP
 
+## [3.6.2] - 2020-07-21
+  - Bump API version to 1.2.148
+
 ## [3.6.1] - 2020-07-14
   - Bump API version to 1.2.147
 
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
@@ -351,6 +351,7 @@
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceIDProperties)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (PhysicalDeviceImageDrmFormatModifierInfoEXT)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceImageFormatInfo2)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_filter_cubic (PhysicalDeviceImageViewImageFormatInfoEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (PhysicalDeviceImagelessFramebufferFeatures)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_index_type_uint8 (PhysicalDeviceIndexTypeUint8FeaturesEXT)
@@ -392,6 +393,7 @@
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (PhysicalDeviceSamplerYcbcrConversionFeatures)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout (PhysicalDeviceScalarBlockLayoutFeatures)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts (PhysicalDeviceSeparateDepthStencilLayoutsFeatures)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64 (PhysicalDeviceShaderAtomicInt64Features)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_clock (PhysicalDeviceShaderClockFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_core_properties2 (PhysicalDeviceShaderCoreProperties2AMD)
@@ -749,6 +751,7 @@
   Extends DeviceCreateInfo PhysicalDeviceConditionalRenderingFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceVulkanMemoryModelFeatures = ()
   Extends DeviceCreateInfo PhysicalDeviceShaderAtomicInt64Features = ()
+  Extends DeviceCreateInfo PhysicalDeviceShaderAtomicFloatFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceVertexAttributeDivisorFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceASTCDecodeFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceTransformFeedbackFeaturesEXT = ()
@@ -797,6 +800,7 @@
   Extends DeviceCreateInfo PhysicalDeviceDiagnosticsConfigFeaturesNV = ()
   Extends DeviceCreateInfo DeviceDiagnosticsConfigCreateInfoNV = ()
   Extends DeviceCreateInfo PhysicalDeviceRobustness2FeaturesEXT = ()
+  Extends DeviceCreateInfo PhysicalDeviceImageRobustnessFeaturesEXT = ()
   Extends DeviceQueueCreateInfo DeviceQueueGlobalPriorityCreateInfoEXT = ()
   Extends FenceCreateInfo ExportFenceCreateInfo = ()
   Extends FenceCreateInfo ExportFenceWin32HandleInfoKHR = ()
@@ -865,6 +869,7 @@
   Extends PhysicalDeviceFeatures2 PhysicalDeviceConditionalRenderingFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceVulkanMemoryModelFeatures = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderAtomicInt64Features = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderAtomicFloatFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceVertexAttributeDivisorFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceASTCDecodeFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceTransformFeedbackFeaturesEXT = ()
@@ -911,6 +916,7 @@
   Extends PhysicalDeviceFeatures2 PhysicalDeviceExtendedDynamicStateFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceDiagnosticsConfigFeaturesNV = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceRobustness2FeaturesEXT = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceImageRobustnessFeaturesEXT = ()
   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceExternalImageFormatInfo = ()
   Extends PhysicalDeviceImageFormatInfo2 ImageFormatListCreateInfo = ()
   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceImageDrmFormatModifierInfoEXT = ()
@@ -1260,6 +1266,7 @@
   STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT -> go @PhysicalDeviceConditionalRenderingFeaturesEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES -> go @PhysicalDeviceVulkanMemoryModelFeatures
   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_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT -> go @PhysicalDeviceVertexAttributeDivisorFeaturesEXT
   STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV -> go @QueueFamilyCheckpointPropertiesNV
   STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES -> go @PhysicalDeviceDepthStencilResolveProperties
@@ -1370,6 +1377,7 @@
   STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV -> go @DeviceDiagnosticsConfigCreateInfoNV
   STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT -> go @PhysicalDeviceRobustness2FeaturesEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT -> go @PhysicalDeviceRobustness2PropertiesEXT
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT -> go @PhysicalDeviceImageRobustnessFeaturesEXT
   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
@@ -1554,6 +1562,7 @@
 {-# complete (::&) :: PhysicalDeviceConditionalRenderingFeaturesEXT #-}
 {-# complete (::&) :: PhysicalDeviceVulkanMemoryModelFeatures #-}
 {-# complete (::&) :: PhysicalDeviceShaderAtomicInt64Features #-}
+{-# complete (::&) :: PhysicalDeviceShaderAtomicFloatFeaturesEXT #-}
 {-# complete (::&) :: PhysicalDeviceVertexAttributeDivisorFeaturesEXT #-}
 {-# complete (::&) :: QueueFamilyCheckpointPropertiesNV #-}
 {-# complete (::&) :: PhysicalDeviceDepthStencilResolveProperties #-}
@@ -1664,6 +1673,7 @@
 {-# complete (::&) :: DeviceDiagnosticsConfigCreateInfoNV #-}
 {-# complete (::&) :: PhysicalDeviceRobustness2FeaturesEXT #-}
 {-# complete (::&) :: PhysicalDeviceRobustness2PropertiesEXT #-}
+{-# complete (::&) :: PhysicalDeviceImageRobustnessFeaturesEXT #-}
 
 -- | View the head and tail of a 'Chain', see '::&'
 --
diff --git a/src/Vulkan/Core10/CommandBuffer.hs b/src/Vulkan/Core10/CommandBuffer.hs
--- a/src/Vulkan/Core10/CommandBuffer.hs
+++ b/src/Vulkan/Core10/CommandBuffer.hs
@@ -149,8 +149,7 @@
 --     @pAllocateInfo->commandBufferCount@
 --     'Vulkan.Core10.Handles.CommandBuffer' handles
 --
--- -   The value referenced by @pAllocateInfo->commandBufferCount@ /must/
---     be greater than @0@
+-- -   @pAllocateInfo->commandBufferCount@ /must/ be greater than @0@
 --
 -- == Host Synchronization
 --
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
@@ -6866,7 +6866,7 @@
 --     been used within @commandBuffer@, its parent primary command buffer
 --     or secondary command buffer recorded within the same parent primary
 --     command buffer as @commandBuffer@, the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-features-performanceCounterMultipleQueryPools performanceCounterMultipleQueryPools>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-performanceCounterMultipleQueryPools performanceCounterMultipleQueryPools>
 --     feature /must/ be enabled
 --
 -- -   If @queryPool@ was created with a @queryType@ of
@@ -9575,11 +9575,11 @@
 --
 -- -   If the @pNext@ chain includes
 --     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM',
---     @renderArea@::@offset@ /must/ equal (0,0)
+--     @renderArea.offset@ /must/ equal (0,0)
 --
 -- -   If the @pNext@ chain includes
 --     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM',
---     @renderArea@::@extent@ transformed by
+--     @renderArea.extent@ transformed by
 --     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM'::@transform@
 --     /must/ equal the @framebuffer@ dimensions
 --
diff --git a/src/Vulkan/Core10/DescriptorSet.hs b/src/Vulkan/Core10/DescriptorSet.hs
--- a/src/Vulkan/Core10/DescriptorSet.hs
+++ b/src/Vulkan/Core10/DescriptorSet.hs
@@ -598,8 +598,7 @@
 --     @pAllocateInfo->descriptorSetCount@
 --     'Vulkan.Core10.Handles.DescriptorSet' handles
 --
--- -   The value referenced by @pAllocateInfo->descriptorSetCount@ /must/
---     be greater than @0@
+-- -   @pAllocateInfo->descriptorSetCount@ /must/ be greater than @0@
 --
 -- == Host Synchronization
 --
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
@@ -106,6 +106,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_shader_interlock (PhysicalDeviceFragmentShaderInterlockFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (PhysicalDeviceImagelessFramebufferFeatures)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_index_type_uint8 (PhysicalDeviceIndexTypeUint8FeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeaturesEXT)
@@ -124,6 +125,7 @@
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (PhysicalDeviceSamplerYcbcrConversionFeatures)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout (PhysicalDeviceScalarBlockLayoutFeatures)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts (PhysicalDeviceSeparateDepthStencilLayoutsFeatures)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64 (PhysicalDeviceShaderAtomicInt64Features)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_clock (PhysicalDeviceShaderClockFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT)
@@ -626,6 +628,7 @@
 --     'Vulkan.Extensions.VK_NV_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricFeaturesNV',
 --     'Vulkan.Extensions.VK_EXT_fragment_shader_interlock.PhysicalDeviceFragmentShaderInterlockFeaturesEXT',
 --     'Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset.PhysicalDeviceHostQueryResetFeatures',
+--     'Vulkan.Extensions.VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeaturesEXT',
 --     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.PhysicalDeviceImagelessFramebufferFeatures',
 --     'Vulkan.Extensions.VK_EXT_index_type_uint8.PhysicalDeviceIndexTypeUint8FeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeaturesEXT',
@@ -644,6 +647,7 @@
 --     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.PhysicalDeviceSamplerYcbcrConversionFeatures',
 --     'Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout.PhysicalDeviceScalarBlockLayoutFeatures',
 --     'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.PhysicalDeviceSeparateDepthStencilLayoutsFeatures',
+--     'Vulkan.Extensions.VK_EXT_shader_atomic_float.PhysicalDeviceShaderAtomicFloatFeaturesEXT',
 --     'Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64.PhysicalDeviceShaderAtomicInt64Features',
 --     'Vulkan.Extensions.VK_KHR_shader_clock.PhysicalDeviceShaderClockFeaturesKHR',
 --     'Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT',
@@ -738,6 +742,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 @PhysicalDeviceImageRobustnessFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceRobustness2FeaturesEXT = Just f
     | Just Refl <- eqT @e @DeviceDiagnosticsConfigCreateInfoNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDiagnosticsConfigFeaturesNV = Just f
@@ -786,6 +791,7 @@
     | 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 @PhysicalDeviceShaderAtomicFloatFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicInt64Features = Just f
     | Just Refl <- eqT @e @PhysicalDeviceVulkanMemoryModelFeatures = Just f
     | Just Refl <- eqT @e @PhysicalDeviceConditionalRenderingFeaturesEXT = Just f
diff --git a/src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs b/src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs
--- a/src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs
@@ -83,34 +83,34 @@
 -- attachment by a render pass that has a fragment density map attachment.
 -- Accessing a subsampled image has additional considerations:
 --
--- -   Image data read as an image sampler is undefined if the sampler was
---     not created with @flags@ containing
+-- -   Image data read as an image sampler will have undefined values if
+--     the sampler was not created with @flags@ containing
 --     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_SUBSAMPLED_BIT_EXT'
 --     or was not sampled through the use of a combined image sampler with
 --     an immutable sampler in
 --     'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutBinding'.
 --
--- -   Image data read with an input attachment is undefined if the
---     contents were not written as an attachment in an earlier subpass of
---     the same render pass.
+-- -   Image data read with an input attachment will have undefined values
+--     if the contents were not written as an attachment in an earlier
+--     subpass of the same render pass.
 --
 -- -   Image data read as an image sampler in the fragment shader will be
 --     additionally be read by the device during
 --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT'
 --     if
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-subsampledcoarsereconstructionearlyaccess ::subsampledCoarseReconstructionEarlyAccess>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-subsampledCoarseReconstructionEarlyAccess ::subsampledCoarseReconstructionEarlyAccess>
 --     is 'Vulkan.Core10.FundamentalTypes.TRUE' and the sampler was created
 --     with @flags@ containing
 --     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT'.
 --
 -- -   Image data read with load operations are resampled to the fragment
 --     density of the render pass if
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-subsampledloads ::subsampledLoads>
---     is 'Vulkan.Core10.FundamentalTypes.TRUE', otherwise they are
---     undefined.
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-subsampledLoads ::subsampledLoads>
+--     is 'Vulkan.Core10.FundamentalTypes.TRUE'. Otherwise, values of image
+--     data are undefined.
 --
--- -   Image contents outside of the render area become undefined if the
---     image is stored as a render pass attachment.
+-- -   Image contents outside of the render area take on undefined values
+--     if the image is stored as a render pass attachment.
 pattern IMAGE_CREATE_SUBSAMPLED_BIT_EXT = ImageCreateFlagBits 0x00004000
 -- | 'IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT' specifies that
 -- an image with a depth or depth\/stencil format /can/ be used with custom
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
@@ -49,6 +49,7 @@
                                                         , STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO
                                                         , STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO
                                                         , STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT
                                                         , STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV
@@ -85,6 +86,7 @@
                                                         , STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT
                                                         , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT
@@ -726,6 +728,7 @@
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties',
 -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.PhysicalDeviceImageDrmFormatModifierInfoEXT',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2',
+-- 'Vulkan.Extensions.VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_filter_cubic.PhysicalDeviceImageViewImageFormatInfoEXT',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.PhysicalDeviceImagelessFramebufferFeatures',
 -- 'Vulkan.Extensions.VK_EXT_index_type_uint8.PhysicalDeviceIndexTypeUint8FeaturesEXT',
@@ -764,6 +767,7 @@
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.PhysicalDeviceSamplerYcbcrConversionFeatures',
 -- 'Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout.PhysicalDeviceScalarBlockLayoutFeatures',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.PhysicalDeviceSeparateDepthStencilLayoutsFeatures',
+-- 'Vulkan.Extensions.VK_EXT_shader_atomic_float.PhysicalDeviceShaderAtomicFloatFeaturesEXT',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64.PhysicalDeviceShaderAtomicInt64Features',
 -- 'Vulkan.Extensions.VK_KHR_shader_clock.PhysicalDeviceShaderClockFeaturesKHR',
 -- 'Vulkan.Extensions.VK_AMD_shader_core_properties2.PhysicalDeviceShaderCoreProperties2AMD',
@@ -1019,6 +1023,8 @@
 pattern STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = StructureType 48
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT"
 pattern STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = StructureType 1000346000
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = StructureType 1000335000
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = StructureType 1000332001
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT"
@@ -1091,6 +1097,8 @@
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = StructureType 1000267000
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = StructureType 1000265000
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = StructureType 1000260000
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT"
 pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = StructureType 1000259002
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT"
@@ -1849,6 +1857,7 @@
              STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO,
              STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
              STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT,
+             STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT,
              STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT,
              STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT,
              STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV,
@@ -1885,6 +1894,7 @@
              STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR,
              STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT,
              STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT,
+             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT,
              STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT,
              STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT,
              STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT,
@@ -2292,6 +2302,7 @@
     STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO -> showString "STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO"
     STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO -> showString "STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO"
     STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT -> showString "STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT"
+    STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT"
     STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT"
     STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT"
     STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV -> showString "STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV"
@@ -2328,6 +2339,7 @@
     STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR -> showString "STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR"
     STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT"
     STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT"
+    STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT"
     STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT"
     STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT -> showString "STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT"
     STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT"
@@ -2735,6 +2747,7 @@
                             , ("STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO", pure STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO)
                             , ("STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO", pure STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO)
                             , ("STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT", pure STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT)
+                            , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT)
                             , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT)
                             , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT)
                             , ("STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV", pure STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV)
@@ -2771,6 +2784,7 @@
                             , ("STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR", pure STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR)
                             , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT)
                             , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT)
+                            , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT)
                             , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT)
                             , ("STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT", pure STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT)
                             , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT)
diff --git a/src/Vulkan/Core10/Enums/SubpassDescriptionFlagBits.hs b/src/Vulkan/Core10/Enums/SubpassDescriptionFlagBits.hs
--- a/src/Vulkan/Core10/Enums/SubpassDescriptionFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/SubpassDescriptionFlagBits.hs
@@ -31,10 +31,10 @@
 --
 -- Shader resolve operations allow for custom resolve operations, but
 -- overdrawing pixels /may/ have a performance and\/or power cost.
--- Furthermore, since the contents of any depth stencil attachment or color
+-- Furthermore, since the content of any depth stencil attachment or color
 -- attachment is undefined at the begining of a shader resolve subpass, any
--- depth testing, stencil testing, or blending which sources these
--- undefined values are also undefined.
+-- depth testing, stencil testing, or blending operation which sources
+-- these undefined values also has undefined result value.
 --
 -- = See Also
 --
diff --git a/src/Vulkan/Core10/Fence.hs b/src/Vulkan/Core10/Fence.hs
--- a/src/Vulkan/Core10/Fence.hs
+++ b/src/Vulkan/Core10/Fence.hs
@@ -445,8 +445,8 @@
 -- If the condition is satisfied when 'waitForFences' is called, then
 -- 'waitForFences' returns immediately. If the condition is not satisfied
 -- at the time 'waitForFences' is called, then 'waitForFences' will block
--- and wait up to @timeout@ nanoseconds for the condition to become
--- satisfied.
+-- and wait until the condition is satisfied or the @timeout@ has expired,
+-- whichever is sooner.
 --
 -- If @timeout@ is zero, then 'waitForFences' does not wait, but simply
 -- returns the current state of the fences.
@@ -454,10 +454,10 @@
 -- the condition is not satisfied, even though no actual wait was
 -- performed.
 --
--- If the specified timeout period expires before the condition is
--- satisfied, 'waitForFences' returns 'Vulkan.Core10.Enums.Result.TIMEOUT'.
--- If the condition is satisfied before @timeout@ nanoseconds has expired,
--- 'waitForFences' returns 'Vulkan.Core10.Enums.Result.SUCCESS'.
+-- If the condition is satisfied before the @timeout@ has expired,
+-- 'waitForFences' returns 'Vulkan.Core10.Enums.Result.SUCCESS'. Otherwise,
+-- 'waitForFences' returns 'Vulkan.Core10.Enums.Result.TIMEOUT' after the
+-- @timeout@ has expired.
 --
 -- If device loss occurs (see
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>)
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
@@ -419,6 +419,7 @@
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.PhysicalDeviceGroupProperties',
 -- 'Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset.PhysicalDeviceHostQueryResetFeatures',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties',
+-- 'Vulkan.Extensions.VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeaturesEXT',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.PhysicalDeviceImagelessFramebufferFeatures',
 -- 'Vulkan.Extensions.VK_EXT_index_type_uint8.PhysicalDeviceIndexTypeUint8FeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeaturesEXT',
@@ -443,6 +444,7 @@
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.PhysicalDeviceSamplerYcbcrConversionFeatures',
 -- 'Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout.PhysicalDeviceScalarBlockLayoutFeatures',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.PhysicalDeviceSeparateDepthStencilLayoutsFeatures',
+-- 'Vulkan.Extensions.VK_EXT_shader_atomic_float.PhysicalDeviceShaderAtomicFloatFeaturesEXT',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64.PhysicalDeviceShaderAtomicInt64Features',
 -- 'Vulkan.Extensions.VK_KHR_shader_clock.PhysicalDeviceShaderClockFeaturesKHR',
 -- 'Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT',
diff --git a/src/Vulkan/Core10/ImageView.hs b/src/Vulkan/Core10/ImageView.hs
--- a/src/Vulkan/Core10/ImageView.hs
+++ b/src/Vulkan/Core10/ImageView.hs
@@ -980,12 +980,12 @@
 --     @format@ /must/ be 'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT'
 --
 -- -   If
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentdensitymapdynamic dynamic fragment density map>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapDynamic dynamic fragment density map>
 --     feature is not enabled, @flags@ /must/ not contain
 --     'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT'
 --
 -- -   If
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentdensitymapdeferred deferred fragment density map>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapDeferred deferred fragment density map>
 --     feature is not enabled, @flags@ /must/ not contain
 --     'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT'
 --
@@ -999,7 +999,7 @@
 --     and @usage@ containing
 --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT',
 --     @subresourceRange.layerCount@ /must/ be less than or equal to
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxsubsampledarraylayers ::maxSubsampledArrayLayers>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxSubsampledArrayLayers ::maxSubsampledArrayLayers>
 --
 -- -   If @flags@ does not contain
 --     'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT'
diff --git a/src/Vulkan/Core10/Memory.hs b/src/Vulkan/Core10/Memory.hs
--- a/src/Vulkan/Core10/Memory.hs
+++ b/src/Vulkan/Core10/Memory.hs
@@ -771,6 +771,15 @@
 -- -   'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ImportAndroidHardwareBufferInfoANDROID'
 --     with a non-@NULL@ @buffer@ value
 --
+-- If the parameters define an import operation and the external handle
+-- type is
+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT',
+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT',
+-- or
+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT',
+-- @allocationSize@ is ignored. The implementation /must/ query the size of
+-- these allocations from the OS.
+--
 -- Importing memory /must/ not modify the content of the memory.
 -- Implementations /must/ ensure that importing memory does not enable the
 -- importing Vulkan instance to access any memory or resources in other
@@ -868,17 +877,6 @@
 --     then the values of @allocationSize@ and @memoryTypeIndex@ /must/
 --     match those specified when the memory object being imported was
 --     created
---
--- -   If the parameters define an import operation and the external handle
---     type is
---     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT',
---     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT',
---     or
---     'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT',
---     @allocationSize@ /must/ match the size reported in the memory
---     requirements of the @image@ or @buffer@ member of the
---     'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV'
---     structure included in the @pNext@ chain
 --
 -- -   If the parameters define an import operation and the external handle
 --     type is
diff --git a/src/Vulkan/Core10/Pass.hs b/src/Vulkan/Core10/Pass.hs
--- a/src/Vulkan/Core10/Pass.hs
+++ b/src/Vulkan/Core10/Pass.hs
@@ -2005,7 +2005,7 @@
 --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'
 --
 -- -   If @renderPass@ has a fragment density map attachment and
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nonsubsampledimages non-subsample image feature>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapNonSubsampledImages non-subsample image feature>
 --     is not enabled, each element of @pAttachments@ /must/ have been
 --     created with a @flags@ value including
 --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'
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
@@ -3600,7 +3600,7 @@
 -- -   If @flags@ includes
 --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV',
 --     then the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-device-generated-commands ::deviceGeneratedCommands>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
 --     feature /must/ be enabled
 --
 -- -   If @flags@ includes
diff --git a/src/Vulkan/Core10/PipelineLayout.hs b/src/Vulkan/Core10/PipelineLayout.hs
--- a/src/Vulkan/Core10/PipelineLayout.hs
+++ b/src/Vulkan/Core10/PipelineLayout.hs
@@ -596,7 +596,7 @@
 --     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT'
 --     across all shader stages and across all elements of @pSetLayouts@
 --     /must/ be less than or equal to
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxdescriptorsetsubsampledsamplers ::maxDescriptorSetSubsampledSamplers>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxDescriptorSetSubsampledSamplers ::maxDescriptorSetSubsampledSamplers>
 --
 -- == Valid Usage (Implicit)
 --
diff --git a/src/Vulkan/Core11/Enums/ExternalSemaphoreHandleTypeFlagBits.hs b/src/Vulkan/Core11/Enums/ExternalSemaphoreHandleTypeFlagBits.hs
--- a/src/Vulkan/Core11/Enums/ExternalSemaphoreHandleTypeFlagBits.hs
+++ b/src/Vulkan/Core11/Enums/ExternalSemaphoreHandleTypeFlagBits.hs
@@ -95,7 +95,8 @@
 pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = ExternalSemaphoreHandleTypeFlagBits 0x00000004
 -- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT' specifies an NT handle
 -- returned by @ID3D12Device@::@CreateSharedHandle@ referring to a Direct3D
--- 12 fence. It owns a reference to the underlying synchronization
+-- 12 fence, or @ID3D11Device5@::'Vulkan.Core10.Fence.createFence' by a
+-- Direct3D 11 fence. It owns a reference to the underlying synchronization
 -- primitive associated with the Direct3D fence.
 pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = ExternalSemaphoreHandleTypeFlagBits 0x00000008
 -- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT' specifies a POSIX file
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
@@ -126,6 +126,7 @@
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceIDProperties)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (PhysicalDeviceImageDrmFormatModifierInfoEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_filter_cubic (PhysicalDeviceImageViewImageFormatInfoEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (PhysicalDeviceImagelessFramebufferFeatures)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_index_type_uint8 (PhysicalDeviceIndexTypeUint8FeaturesEXT)
@@ -164,6 +165,7 @@
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (PhysicalDeviceSamplerYcbcrConversionFeatures)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout (PhysicalDeviceScalarBlockLayoutFeatures)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts (PhysicalDeviceSeparateDepthStencilLayoutsFeatures)
+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_shader_atomic_float (PhysicalDeviceShaderAtomicFloatFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64 (PhysicalDeviceShaderAtomicInt64Features)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_clock (PhysicalDeviceShaderClockFeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_shader_core_properties2 (PhysicalDeviceShaderCoreProperties2AMD)
@@ -638,6 +640,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 @PhysicalDeviceImageRobustnessFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceRobustness2FeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDiagnosticsConfigFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceExtendedDynamicStateFeaturesEXT = Just f
@@ -684,6 +687,7 @@
     | 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 @PhysicalDeviceShaderAtomicFloatFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicInt64Features = Just f
     | Just Refl <- eqT @e @PhysicalDeviceVulkanMemoryModelFeatures = Just f
     | Just Refl <- eqT @e @PhysicalDeviceConditionalRenderingFeaturesEXT = Just f
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs
@@ -133,7 +133,7 @@
 -- == Valid Usage
 --
 -- -   The
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sampler-YCbCr-conversion sampler Y′CBCR conversion feature>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-samplerYcbcrConversion sampler Y′CBCR conversion feature>
 --     /must/ be enabled
 --
 -- == Valid Usage (Implicit)
diff --git a/src/Vulkan/Core12.hs b/src/Vulkan/Core12.hs
--- a/src/Vulkan/Core12.hs
+++ b/src/Vulkan/Core12.hs
@@ -526,10 +526,10 @@
 --     used in such objects. This also indicates whether shader modules
 --     /can/ declare the @StoragePushConstant8@ capability.
 --
--- -   @shaderBufferInt64Atomics@ indicates whether shaders /can/ support
+-- -   @shaderBufferInt64Atomics@ indicates whether shaders /can/ perform
 --     64-bit unsigned and signed integer atomic operations on buffers.
 --
--- -   @shaderSharedInt64Atomics@ indicates whether shaders /can/ support
+-- -   @shaderSharedInt64Atomics@ indicates whether shaders /can/ perform
 --     64-bit unsigned and signed integer atomic operations on shared
 --     memory.
 --
diff --git a/src/Vulkan/Core12/Enums/DriverId.hs b/src/Vulkan/Core12/Enums/DriverId.hs
--- a/src/Vulkan/Core12/Enums/DriverId.hs
+++ b/src/Vulkan/Core12/Enums/DriverId.hs
@@ -12,6 +12,7 @@
                                               , DRIVER_ID_GGP_PROPRIETARY
                                               , DRIVER_ID_BROADCOM_PROPRIETARY
                                               , DRIVER_ID_MESA_LLVMPIPE
+                                              , DRIVER_ID_MOLTENVK
                                               , ..
                                               )) where
 
@@ -80,6 +81,8 @@
 pattern DRIVER_ID_BROADCOM_PROPRIETARY = DriverId 12
 -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_MESA_LLVMPIPE"
 pattern DRIVER_ID_MESA_LLVMPIPE = DriverId 13
+-- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_MOLTENVK"
+pattern DRIVER_ID_MOLTENVK = DriverId 14
 {-# complete DRIVER_ID_AMD_PROPRIETARY,
              DRIVER_ID_AMD_OPEN_SOURCE,
              DRIVER_ID_MESA_RADV,
@@ -92,7 +95,8 @@
              DRIVER_ID_GOOGLE_SWIFTSHADER,
              DRIVER_ID_GGP_PROPRIETARY,
              DRIVER_ID_BROADCOM_PROPRIETARY,
-             DRIVER_ID_MESA_LLVMPIPE :: DriverId #-}
+             DRIVER_ID_MESA_LLVMPIPE,
+             DRIVER_ID_MOLTENVK :: DriverId #-}
 
 instance Show DriverId where
   showsPrec p = \case
@@ -109,6 +113,7 @@
     DRIVER_ID_GGP_PROPRIETARY -> showString "DRIVER_ID_GGP_PROPRIETARY"
     DRIVER_ID_BROADCOM_PROPRIETARY -> showString "DRIVER_ID_BROADCOM_PROPRIETARY"
     DRIVER_ID_MESA_LLVMPIPE -> showString "DRIVER_ID_MESA_LLVMPIPE"
+    DRIVER_ID_MOLTENVK -> showString "DRIVER_ID_MOLTENVK"
     DriverId x -> showParen (p >= 11) (showString "DriverId " . showsPrec 11 x)
 
 instance Read DriverId where
@@ -124,7 +129,8 @@
                             , ("DRIVER_ID_GOOGLE_SWIFTSHADER", pure DRIVER_ID_GOOGLE_SWIFTSHADER)
                             , ("DRIVER_ID_GGP_PROPRIETARY", pure DRIVER_ID_GGP_PROPRIETARY)
                             , ("DRIVER_ID_BROADCOM_PROPRIETARY", pure DRIVER_ID_BROADCOM_PROPRIETARY)
-                            , ("DRIVER_ID_MESA_LLVMPIPE", pure DRIVER_ID_MESA_LLVMPIPE)]
+                            , ("DRIVER_ID_MESA_LLVMPIPE", pure DRIVER_ID_MESA_LLVMPIPE)
+                            , ("DRIVER_ID_MOLTENVK", pure DRIVER_ID_MOLTENVK)]
                      +++
                      prec 10 (do
                        expectP (Ident "DriverId")
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
@@ -310,6 +310,9 @@
 -- -   The count stored in @countBuffer@ /must/ be less than or equal to
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@
 --
+-- -   (@countBufferOffset@ + @sizeof@(uint32_t)) /must/ be less than or
+--     equal to the size of @countBuffer@
+--
 -- -   @stride@ /must/ be a multiple of @4@ and /must/ be greater than or
 --     equal to sizeof('Vulkan.Core10.OtherTypes.DrawIndirectCommand')
 --
@@ -692,6 +695,9 @@
 --
 -- -   The count stored in @countBuffer@ /must/ be less than or equal to
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@
+--
+-- -   (@countBufferOffset@ + @sizeof@(uint32_t)) /must/ be less than or
+--     equal to the size of @countBuffer@
 --
 -- -   @stride@ /must/ be a multiple of @4@ and /must/ be greater than or
 --     equal to
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_atomic_int64.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_atomic_int64.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_atomic_int64.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_shader_atomic_int64.hs
@@ -35,10 +35,10 @@
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PhysicalDeviceShaderAtomicInt64Features = PhysicalDeviceShaderAtomicInt64Features
-  { -- | @shaderBufferInt64Atomics@ indicates whether shaders /can/ support
+  { -- | @shaderBufferInt64Atomics@ indicates whether shaders /can/ perform
     -- 64-bit unsigned and signed integer atomic operations on buffers.
     shaderBufferInt64Atomics :: Bool
-  , -- | @shaderSharedInt64Atomics@ indicates whether shaders /can/ support
+  , -- | @shaderSharedInt64Atomics@ indicates whether shaders /can/ perform
     -- 64-bit unsigned and signed integer atomic operations on shared memory.
     shaderSharedInt64Atomics :: Bool
   }
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs
@@ -198,8 +198,8 @@
 -- If the condition is satisfied when 'waitSemaphores' is called, then
 -- 'waitSemaphores' returns immediately. If the condition is not satisfied
 -- at the time 'waitSemaphores' is called, then 'waitSemaphores' will block
--- and wait up to @timeout@ nanoseconds for the condition to become
--- satisfied.
+-- and wait until the condition is satisfied or the @timeout@ has expired,
+-- whichever is sooner.
 --
 -- If @timeout@ is zero, then 'waitSemaphores' does not wait, but simply
 -- returns information about the current state of the semaphore.
@@ -207,11 +207,10 @@
 -- the condition is not satisfied, even though no actual wait was
 -- performed.
 --
--- If the specified timeout period expires before the condition is
--- satisfied, 'waitSemaphores' returns
--- 'Vulkan.Core10.Enums.Result.TIMEOUT'. If the condition is satisfied
--- before @timeout@ nanoseconds has expired, 'waitSemaphores' returns
--- 'Vulkan.Core10.Enums.Result.SUCCESS'.
+-- If the condition is satisfied before the @timeout@ has expired,
+-- 'waitSemaphores' returns 'Vulkan.Core10.Enums.Result.SUCCESS'.
+-- Otherwise, 'waitSemaphores' returns 'Vulkan.Core10.Enums.Result.TIMEOUT'
+-- after the @timeout@ has expired.
 --
 -- If device loss occurs (see
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>)
diff --git a/src/Vulkan/Extensions.hs b/src/Vulkan/Extensions.hs
--- a/src/Vulkan/Extensions.hs
+++ b/src/Vulkan/Extensions.hs
@@ -54,6 +54,7 @@
                           , module Vulkan.Extensions.VK_EXT_headless_surface
                           , module Vulkan.Extensions.VK_EXT_host_query_reset
                           , module Vulkan.Extensions.VK_EXT_image_drm_format_modifier
+                          , module Vulkan.Extensions.VK_EXT_image_robustness
                           , module Vulkan.Extensions.VK_EXT_index_type_uint8
                           , module Vulkan.Extensions.VK_EXT_inline_uniform_block
                           , module Vulkan.Extensions.VK_EXT_line_rasterization
@@ -71,6 +72,7 @@
                           , module Vulkan.Extensions.VK_EXT_sampler_filter_minmax
                           , module Vulkan.Extensions.VK_EXT_scalar_block_layout
                           , module Vulkan.Extensions.VK_EXT_separate_stencil_usage
+                          , module Vulkan.Extensions.VK_EXT_shader_atomic_float
                           , module Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation
                           , module Vulkan.Extensions.VK_EXT_shader_stencil_export
                           , module Vulkan.Extensions.VK_EXT_shader_subgroup_ballot
@@ -264,6 +266,7 @@
 import Vulkan.Extensions.VK_EXT_headless_surface
 import Vulkan.Extensions.VK_EXT_host_query_reset
 import Vulkan.Extensions.VK_EXT_image_drm_format_modifier
+import Vulkan.Extensions.VK_EXT_image_robustness
 import Vulkan.Extensions.VK_EXT_index_type_uint8
 import Vulkan.Extensions.VK_EXT_inline_uniform_block
 import Vulkan.Extensions.VK_EXT_line_rasterization
@@ -281,6 +284,7 @@
 import Vulkan.Extensions.VK_EXT_sampler_filter_minmax
 import Vulkan.Extensions.VK_EXT_scalar_block_layout
 import Vulkan.Extensions.VK_EXT_separate_stencil_usage
+import Vulkan.Extensions.VK_EXT_shader_atomic_float
 import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation
 import Vulkan.Extensions.VK_EXT_shader_stencil_export
 import Vulkan.Extensions.VK_EXT_shader_subgroup_ballot
diff --git a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs
--- a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs
+++ b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs
@@ -477,10 +477,11 @@
 -- the current state for the vertex input binding @firstBinding@ + i, for i
 -- in [0, @bindingCount@). The vertex input binding is updated to start at
 -- the offset indicated by @pOffsets@[i] from the start of the buffer
--- @pBuffers@[i] If @pSizes@ is not @NULL@ then @pSizes@[i] specifies the
--- bound size of the corresponding vertex buffer. All vertex input
--- attributes that use each of these bindings will use these updated
--- addresses in their address calculations for subsequent draw commands.
+-- @pBuffers@[i]. If @pSizes@ is not @NULL@ then @pSizes@[i] specifies the
+-- bound size of the vertex buffer starting from the corresponding elements
+-- of @pBuffers@[i] plus @pOffsets@[i]. All vertex input attributes that
+-- use each of these bindings will use these updated addresses in their
+-- address calculations for subsequent draw commands.
 --
 -- If the bound pipeline state object was created with the
 -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
@@ -604,8 +605,8 @@
                             ("buffers" ::: Vector Buffer)
                          -> -- | @pOffsets@ is a pointer to an array of buffer offsets.
                             ("offsets" ::: Vector DeviceSize)
-                         -> -- | @pSizes@ is optional, and when not @NULL@ is a pointer to an array of
-                            -- buffer sizes.
+                         -> -- | @pSizes@ is an optional array of the size in bytes of vertex data bound
+                            -- from @pBuffers@.
                             ("sizes" ::: Vector DeviceSize)
                          -> -- | @pStrides@ is optional, and when not @NULL@ is a pointer to an array of
                             -- buffer strides.
diff --git a/src/Vulkan/Extensions/VK_EXT_image_robustness.hs b/src/Vulkan/Extensions/VK_EXT_image_robustness.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_image_robustness.hs
@@ -0,0 +1,112 @@
+{-# language CPP #-}
+module Vulkan.Extensions.VK_EXT_image_robustness  ( PhysicalDeviceImageRobustnessFeaturesEXT(..)
+                                                  , EXT_IMAGE_ROBUSTNESS_SPEC_VERSION
+                                                  , pattern EXT_IMAGE_ROBUSTNESS_SPEC_VERSION
+                                                  , EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME
+                                                  , pattern EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME
+                                                  ) where
+
+import Foreign.Marshal.Alloc (allocaBytesAligned)
+import Foreign.Ptr (nullPtr)
+import Foreign.Ptr (plusPtr)
+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.Kind (Type)
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT))
+-- | VkPhysicalDeviceImageRobustnessFeaturesEXT - Structure describing the
+-- out-of-bounds behavior for an implementation
+--
+-- = Members
+--
+-- The members of the 'PhysicalDeviceImageRobustnessFeaturesEXT' structure
+-- describe the following features:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceImageRobustnessFeaturesEXT' structure is included
+-- in the @pNext@ chain of
+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+-- it is filled with values indicating whether the feature is supported.
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceImageRobustnessFeaturesEXT = PhysicalDeviceImageRobustnessFeaturesEXT
+  { -- | @robustImageAccess@ indicates whether image accesses are tightly
+    -- bounds-checked against the dimensions of the image view.
+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-input-validation Invalid texels>
+    -- resulting from out of bounds image loads will be replaced as described
+    -- in
+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-texel-replacement Texel Replacement>,
+    -- with either (0,0,1) or (0,0,0) values inserted for missing G, B, or A
+    -- components based on the format.
+    robustImageAccess :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceImageRobustnessFeaturesEXT)
+#endif
+deriving instance Show PhysicalDeviceImageRobustnessFeaturesEXT
+
+instance ToCStruct PhysicalDeviceImageRobustnessFeaturesEXT where
+  withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceImageRobustnessFeaturesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (robustImageAccess))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceImageRobustnessFeaturesEXT where
+  peekCStruct p = do
+    robustImageAccess <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceImageRobustnessFeaturesEXT
+             (bool32ToBool robustImageAccess)
+
+instance Storable PhysicalDeviceImageRobustnessFeaturesEXT where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceImageRobustnessFeaturesEXT where
+  zero = PhysicalDeviceImageRobustnessFeaturesEXT
+           zero
+
+
+type EXT_IMAGE_ROBUSTNESS_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION"
+pattern EXT_IMAGE_ROBUSTNESS_SPEC_VERSION :: forall a . Integral a => a
+pattern EXT_IMAGE_ROBUSTNESS_SPEC_VERSION = 1
+
+
+type EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_image_robustness"
+
+-- No documentation found for TopLevel "VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME"
+pattern EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME = "VK_EXT_image_robustness"
+
diff --git a/src/Vulkan/Extensions/VK_EXT_image_robustness.hs-boot b/src/Vulkan/Extensions/VK_EXT_image_robustness.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_image_robustness.hs-boot
@@ -0,0 +1,13 @@
+{-# language CPP #-}
+module Vulkan.Extensions.VK_EXT_image_robustness  (PhysicalDeviceImageRobustnessFeaturesEXT) where
+
+import Data.Kind (Type)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+data PhysicalDeviceImageRobustnessFeaturesEXT
+
+instance ToCStruct PhysicalDeviceImageRobustnessFeaturesEXT
+instance Show PhysicalDeviceImageRobustnessFeaturesEXT
+
+instance FromCStruct PhysicalDeviceImageRobustnessFeaturesEXT
+
diff --git a/src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs b/src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs
--- a/src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs
+++ b/src/Vulkan/Extensions/VK_EXT_pipeline_creation_feedback.hs
@@ -54,8 +54,9 @@
 -- = Description
 --
 -- If the 'PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT' is not set in @flags@,
--- an implementation /must/ not set any other bits in @flags@, and all
--- other 'PipelineCreationFeedbackEXT' data members are undefined.
+-- an implementation /must/ not set any other bits in @flags@, and the
+-- values of all other 'PipelineCreationFeedbackEXT' data members are
+-- undefined.
 --
 -- = See Also
 --
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs
@@ -0,0 +1,177 @@
+{-# language CPP #-}
+module Vulkan.Extensions.VK_EXT_shader_atomic_float  ( PhysicalDeviceShaderAtomicFloatFeaturesEXT(..)
+                                                     , EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION
+                                                     , pattern EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION
+                                                     , EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME
+                                                     , pattern EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME
+                                                     ) where
+
+import Foreign.Marshal.Alloc (allocaBytesAligned)
+import Foreign.Ptr (nullPtr)
+import Foreign.Ptr (plusPtr)
+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.Kind (Type)
+import Vulkan.Core10.FundamentalTypes (bool32ToBool)
+import Vulkan.Core10.FundamentalTypes (boolToBool32)
+import Vulkan.Core10.FundamentalTypes (Bool32)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (FromCStruct(..))
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.CStruct (ToCStruct)
+import Vulkan.CStruct (ToCStruct(..))
+import Vulkan.Zero (Zero(..))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT))
+-- | VkPhysicalDeviceShaderAtomicFloatFeaturesEXT - Structure describing
+-- features supported by VK_EXT_shader_atomic_float
+--
+-- == Valid Usage (Implicit)
+--
+-- = See Also
+--
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceShaderAtomicFloatFeaturesEXT = PhysicalDeviceShaderAtomicFloatFeaturesEXT
+  { -- | @shaderBufferFloat32Atomics@ indicates whether shaders /can/ perform
+    -- 32-bit floating-point load, store and exchange atomic operations on
+    -- storage buffers.
+    shaderBufferFloat32Atomics :: Bool
+  , -- | @shaderBufferFloat32AtomicAdd@ indicates whether shaders /can/ perform
+    -- 32-bit floating-point add atomic operations on storage buffers.
+    shaderBufferFloat32AtomicAdd :: Bool
+  , -- | @shaderBufferFloat64Atomics@ indicates whether shaders /can/ perform
+    -- 64-bit floating-point load, store and exchange atomic operations on
+    -- storage buffers.
+    shaderBufferFloat64Atomics :: Bool
+  , -- | @shaderBufferFloat64AtomicAdd@ indicates whether shaders /can/ perform
+    -- 64-bit floating-point add atomic operations on storage buffers.
+    shaderBufferFloat64AtomicAdd :: Bool
+  , -- | @shaderSharedFloat32Atomics@ indicates whether shaders /can/ perform
+    -- 32-bit floating-point load, store and exchange atomic operations on
+    -- shared memory.
+    shaderSharedFloat32Atomics :: Bool
+  , -- | @shaderSharedFloat32AtomicAdd@ indicates whether shaders /can/ perform
+    -- 32-bit floating-point add atomic operations on shared memory.
+    shaderSharedFloat32AtomicAdd :: Bool
+  , -- | @shaderSharedFloat64Atomics@ indicates whether shaders /can/ perform
+    -- 64-bit floating-point load, store and exchange atomic operations on
+    -- shared memory.
+    shaderSharedFloat64Atomics :: Bool
+  , -- | @shaderSharedFloat64AtomicAdd@ indicates whether shaders /can/ perform
+    -- 64-bit floating-point add atomic operations on shared memory.
+    shaderSharedFloat64AtomicAdd :: Bool
+  , -- | @shaderImageFloat32Atomics@ indicates whether shaders /can/ perform
+    -- 32-bit floating-point load, store and exchange atomic image operations.
+    shaderImageFloat32Atomics :: Bool
+  , -- | @shaderImageFloat32AtomicAdd@ indicates whether shaders /can/ perform
+    -- 32-bit floating-point add atomic image operations.
+    shaderImageFloat32AtomicAdd :: Bool
+  , -- | @sparseImageFloat32Atomics@ indicates whether 32-bit floating-point
+    -- load, store and exchange atomic operations /can/ be used on sparse
+    -- images.
+    sparseImageFloat32Atomics :: Bool
+  , -- | @sparseImageFloat32AtomicAdd@ indicates whether 32-bit floating-point
+    -- add atomic operations /can/ be used on sparse images.
+    sparseImageFloat32AtomicAdd :: Bool
+  }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceShaderAtomicFloatFeaturesEXT)
+#endif
+deriving instance Show PhysicalDeviceShaderAtomicFloatFeaturesEXT
+
+instance ToCStruct PhysicalDeviceShaderAtomicFloatFeaturesEXT where
+  withCStruct x f = allocaBytesAligned 64 8 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceShaderAtomicFloatFeaturesEXT{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderBufferFloat32Atomics))
+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (shaderBufferFloat32AtomicAdd))
+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (shaderBufferFloat64Atomics))
+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (shaderBufferFloat64AtomicAdd))
+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (shaderSharedFloat32Atomics))
+    poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (shaderSharedFloat32AtomicAdd))
+    poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (shaderSharedFloat64Atomics))
+    poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (shaderSharedFloat64AtomicAdd))
+    poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (shaderImageFloat32Atomics))
+    poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (shaderImageFloat32AtomicAdd))
+    poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (sparseImageFloat32Atomics))
+    poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (sparseImageFloat32AtomicAdd))
+    f
+  cStructSize = 64
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_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))
+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (zero))
+    poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceShaderAtomicFloatFeaturesEXT where
+  peekCStruct p = do
+    shaderBufferFloat32Atomics <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    shaderBufferFloat32AtomicAdd <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))
+    shaderBufferFloat64Atomics <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))
+    shaderBufferFloat64AtomicAdd <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))
+    shaderSharedFloat32Atomics <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))
+    shaderSharedFloat32AtomicAdd <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))
+    shaderSharedFloat64Atomics <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))
+    shaderSharedFloat64AtomicAdd <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))
+    shaderImageFloat32Atomics <- peek @Bool32 ((p `plusPtr` 48 :: Ptr Bool32))
+    shaderImageFloat32AtomicAdd <- peek @Bool32 ((p `plusPtr` 52 :: Ptr Bool32))
+    sparseImageFloat32Atomics <- peek @Bool32 ((p `plusPtr` 56 :: Ptr Bool32))
+    sparseImageFloat32AtomicAdd <- peek @Bool32 ((p `plusPtr` 60 :: Ptr Bool32))
+    pure $ PhysicalDeviceShaderAtomicFloatFeaturesEXT
+             (bool32ToBool shaderBufferFloat32Atomics) (bool32ToBool shaderBufferFloat32AtomicAdd) (bool32ToBool shaderBufferFloat64Atomics) (bool32ToBool shaderBufferFloat64AtomicAdd) (bool32ToBool shaderSharedFloat32Atomics) (bool32ToBool shaderSharedFloat32AtomicAdd) (bool32ToBool shaderSharedFloat64Atomics) (bool32ToBool shaderSharedFloat64AtomicAdd) (bool32ToBool shaderImageFloat32Atomics) (bool32ToBool shaderImageFloat32AtomicAdd) (bool32ToBool sparseImageFloat32Atomics) (bool32ToBool sparseImageFloat32AtomicAdd)
+
+instance Storable PhysicalDeviceShaderAtomicFloatFeaturesEXT where
+  sizeOf ~_ = 64
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceShaderAtomicFloatFeaturesEXT where
+  zero = PhysicalDeviceShaderAtomicFloatFeaturesEXT
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+           zero
+
+
+type EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION"
+pattern EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION :: forall a . Integral a => a
+pattern EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION = 1
+
+
+type EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME = "VK_EXT_shader_atomic_float"
+
+-- No documentation found for TopLevel "VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME"
+pattern EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME = "VK_EXT_shader_atomic_float"
+
diff --git a/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs-boot b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs-boot
@@ -0,0 +1,13 @@
+{-# language CPP #-}
+module Vulkan.Extensions.VK_EXT_shader_atomic_float  (PhysicalDeviceShaderAtomicFloatFeaturesEXT) where
+
+import Data.Kind (Type)
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+data PhysicalDeviceShaderAtomicFloatFeaturesEXT
+
+instance ToCStruct PhysicalDeviceShaderAtomicFloatFeaturesEXT
+instance Show PhysicalDeviceShaderAtomicFloatFeaturesEXT
+
+instance FromCStruct PhysicalDeviceShaderAtomicFloatFeaturesEXT
+
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
@@ -286,6 +286,9 @@
 --     with a @usage@ value containing
 --     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT'
 --
+-- -   The last vertex processing stage of the bound graphics pipeline
+--     /must/ have been declared with the @Xfb@ execution mode
+--
 -- -   Transform feedback /must/ not be made active in a render pass
 --     instance with multiview enabled
 --
@@ -636,7 +639,7 @@
 --     been used within @commandBuffer@, its parent primary command buffer
 --     or secondary command buffer recorded within the same parent primary
 --     command buffer as @commandBuffer@, the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-features-performanceCounterMultipleQueryPools performanceCounterMultipleQueryPools>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-performanceCounterMultipleQueryPools performanceCounterMultipleQueryPools>
 --     feature /must/ be enabled
 --
 -- -   If @queryPool@ was created with a @queryType@ of
diff --git a/src/Vulkan/Extensions/VK_KHR_performance_query.hs b/src/Vulkan/Extensions/VK_KHR_performance_query.hs
--- a/src/Vulkan/Extensions/VK_KHR_performance_query.hs
+++ b/src/Vulkan/Extensions/VK_KHR_performance_query.hs
@@ -381,34 +381,19 @@
 -- | VkPhysicalDevicePerformanceQueryFeaturesKHR - Structure describing
 -- performance query support for an implementation
 --
--- = Members
---
--- The members of the 'PhysicalDevicePerformanceQueryFeaturesKHR' structure
--- describe the following implementation-dependent features:
---
 -- == Valid Usage (Implicit)
 --
--- To query supported performance counter query pool features, call
--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2'
--- with a 'PhysicalDevicePerformanceQueryFeaturesKHR' structure included in
--- the @pNext@ chain of its @pFeatures@ parameter. The
--- 'PhysicalDevicePerformanceQueryFeaturesKHR' structure /can/ also be
--- included in the @pNext@ chain of a
--- 'Vulkan.Core10.Device.DeviceCreateInfo' structure, in which case it
--- controls which additional features are enabled in the device.
---
 -- = See Also
 --
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PhysicalDevicePerformanceQueryFeaturesKHR = PhysicalDevicePerformanceQueryFeaturesKHR
-  { -- | @performanceCounterQueryPools@ is 'Vulkan.Core10.FundamentalTypes.TRUE'
-    -- if the physical device supports performance counter query pools.
+  { -- | @performanceCounterQueryPools@ indicates whether the implementation
+    -- supports performance counter query pools.
     performanceCounterQueryPools :: Bool
-  , -- | @performanceCounterMultipleQueryPools@ is
-    -- 'Vulkan.Core10.FundamentalTypes.TRUE'\` if the physical device supports
-    -- using multiple performance query pools in a primary command buffer and
-    -- secondary command buffers executed within it.
+  , -- | @performanceCounterMultipleQueryPools@ indicates whether the
+    -- implementation supports using multiple performance query pools in a
+    -- primary command buffer and secondary command buffers executed within it.
     performanceCounterMultipleQueryPools :: Bool
   }
   deriving (Typeable, Eq)
@@ -676,7 +661,7 @@
 --     device
 --
 -- -   The
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-features-performanceCounterQueryPools performanceCounterQueryPools>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-performanceCounterQueryPools performanceCounterQueryPools>
 --     feature /must/ be enabled
 --
 -- -   Each element of @pCounterIndices@ /must/ be in the range of counters
diff --git a/src/Vulkan/Extensions/VK_KHR_ray_tracing.hs b/src/Vulkan/Extensions/VK_KHR_ray_tracing.hs
--- a/src/Vulkan/Extensions/VK_KHR_ray_tracing.hs
+++ b/src/Vulkan/Extensions/VK_KHR_ray_tracing.hs
@@ -570,7 +570,7 @@
 --     referenced by this command /must/ be bound to host-visible memory
 --
 -- -   the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-raytracing-hostascmds ::rayTracingHostAccelerationStructureCommands>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-raytracing-hostascmds ::rayTracingHostAccelerationStructureCommands>
 --     feature /must/ be enabled
 --
 -- == Valid Usage (Implicit)
@@ -791,7 +791,7 @@
 --     contain valid host pointers
 --
 -- -   the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-raytracing-hostascmds ::rayTracingHostAccelerationStructureCommands>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-raytracing-hostascmds ::rayTracingHostAccelerationStructureCommands>
 --     feature /must/ be enabled
 --
 -- == Valid Usage (Implicit)
@@ -988,7 +988,7 @@
 --     contain valid host pointers
 --
 -- -   the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-raytracing-hostascmds ::rayTracingHostAccelerationStructureCommands>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-raytracing-hostascmds ::rayTracingHostAccelerationStructureCommands>
 --     feature /must/ be enabled
 --
 -- == Valid Usage (Implicit)
@@ -1223,7 +1223,7 @@
 --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR'
 --
 -- -   the
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-raytracing-hostascmds ::rayTracingHostAccelerationStructureCommands>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-raytracing-hostascmds ::rayTracingHostAccelerationStructureCommands>
 --     feature /must/ be enabled
 --
 -- == Valid Usage (Implicit)
@@ -3005,7 +3005,7 @@
 --     referenced by this command /must/ be bound to host-visible memory
 --
 -- -   The
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-raytracing-hostascmds ::rayTracingHostAccelerationStructureCommands>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-raytracing-hostascmds ::rayTracingHostAccelerationStructureCommands>
 --     feature /must/ be enabled
 --
 -- == Valid Usage (Implicit)
@@ -4370,8 +4370,8 @@
   , -- | @indexType@ is the 'Vulkan.Core10.Enums.IndexType.IndexType' of each
     -- index element.
     indexType :: IndexType
-  , -- | @indexData@ is the device or host address to memory containing index
-    -- data for this geometry.
+  , -- | @indexData@ is a device or host address to memory containing index data
+    -- for this geometry.
     indexData :: DeviceOrHostAddressConstKHR
   , -- | @transformData@ is a device or host address to memory containing an
     -- optional reference to a 'TransformMatrixKHR' structure defining a
@@ -5429,8 +5429,8 @@
   { -- | @transform@ is a 'TransformMatrixKHR' structure describing a
     -- transformation to be applied to the acceleration structure.
     transform :: TransformMatrixKHR
-  , -- | @instanceCustomIndex@ a 24-bit user-specified index value accessible to
-    -- ray shaders in the @InstanceCustomIndexKHR@ built-in.
+  , -- | @instanceCustomIndex@ is a 24-bit user-specified index value accessible
+    -- to ray shaders in the @InstanceCustomIndexKHR@ built-in.
     --
     -- @instanceCustomIndex@ and @mask@ occupy the same memory as if a single
     -- @int32_t@ was specified in their place
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_clock.hs b/src/Vulkan/Extensions/VK_KHR_shader_clock.hs
--- a/src/Vulkan/Extensions/VK_KHR_shader_clock.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shader_clock.hs
@@ -48,10 +48,10 @@
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PhysicalDeviceShaderClockFeaturesKHR = PhysicalDeviceShaderClockFeaturesKHR
-  { -- | @shaderSubgroupClock@ indicates whether shaders /can/ support @Subgroup@
+  { -- | @shaderSubgroupClock@ indicates whether shaders /can/ perform @Subgroup@
     -- scoped clock reads.
     shaderSubgroupClock :: Bool
-  , -- | @shaderDeviceClock@ indicates whether shaders /can/ support
+  , -- | @shaderDeviceClock@ indicates whether shaders /can/ perform
     -- 'Vulkan.Core10.Handles.Device' scoped clock reads.
     shaderDeviceClock :: Bool
   }
diff --git a/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs b/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs
--- a/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs
+++ b/src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs
@@ -40,8 +40,8 @@
 -- = Description
 --
 -- See
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#texture-derivatives-compute Compute Shader Derivatives>
--- for more information.
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-quad>
+-- chapter for more information.
 --
 -- If the 'PhysicalDeviceComputeShaderDerivativesFeaturesNV' structure is
 -- included in the @pNext@ chain of
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
@@ -431,7 +431,7 @@
 -- -   Transform feedback /must/ not be active
 --
 -- -   The
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-device-generated-commands ::deviceGeneratedCommands>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
 --     feature /must/ be enabled
 --
 -- == Valid Usage (Implicit)
@@ -516,7 +516,7 @@
 --     'INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV' bit set
 --
 -- -   The
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-device-generated-commands ::deviceGeneratedCommands>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
 --     feature /must/ be enabled
 --
 -- == Valid Usage (Implicit)
@@ -599,7 +599,7 @@
 --     @groupIndex@ information
 --
 -- -   The
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-device-generated-commands ::deviceGeneratedCommands>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
 --     feature /must/ be enabled
 --
 -- == Valid Usage (Implicit)
@@ -679,7 +679,7 @@
 -- == Valid Usage
 --
 -- -   The
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-device-generated-commands ::deviceGeneratedCommands>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
 --     feature /must/ be enabled
 --
 -- == Valid Usage (Implicit)
@@ -732,7 +732,7 @@
 -- == Valid Usage
 --
 -- -   The
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-device-generated-commands ::deviceGeneratedCommands>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
 --     feature /must/ be enabled
 --
 -- == Valid Usage (Implicit)
@@ -831,7 +831,7 @@
 --     /must/ be @NULL@
 --
 -- -   The
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-device-generated-commands ::deviceGeneratedCommands>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
 --     feature /must/ be enabled
 --
 -- == Valid Usage (Implicit)
@@ -1208,7 +1208,7 @@
 --     'GraphicsShaderGroupCreateInfoNV'
 --
 -- -   The
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-device-generated-commands ::deviceGeneratedCommands>
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedCommands ::deviceGeneratedCommands>
 --     feature /must/ be enabled
 --
 -- == Valid Usage (Implicit)
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
@@ -972,6 +972,9 @@
 -- -   The count stored in @countBuffer@ /must/ be less than or equal to
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@
 --
+-- -   (@countBufferOffset@ + @sizeof@(uint32_t)) /must/ be less than or
+--     equal to the size of @countBuffer@
+--
 -- -   @stride@ /must/ be a multiple of @4@ and /must/ be greater than or
 --     equal to @sizeof@('DrawMeshTasksIndirectCommandNV')
 --
diff --git a/src/Vulkan/Version.hs b/src/Vulkan/Version.hs
--- a/src/Vulkan/Version.hs
+++ b/src/Vulkan/Version.hs
@@ -14,11 +14,11 @@
 import Data.Word (Word32)
 
 pattern HEADER_VERSION :: Word32
-pattern HEADER_VERSION = 147
+pattern HEADER_VERSION = 148
 
 
 pattern HEADER_VERSION_COMPLETE :: Word32
-pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 147
+pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 148
 
 
 pattern MAKE_VERSION :: Word32 -> Word32 -> Word32 -> Word32
diff --git a/vulkan.cabal b/vulkan.cabal
--- a/vulkan.cabal
+++ b/vulkan.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: ab4f11203014cb17410935e123ca7ec6a20dfab05bbc237d3c7519e80d55be2a
+-- hash: cd92f638f702d78079f6ef5091bf1c0ff199567d94b0056b3289c7f29bdce940
 
 name:           vulkan
-version:        3.6.1
+version:        3.6.2
 synopsis:       Bindings to the Vulkan graphics API.
 category:       Graphics
 homepage:       https://github.com/expipiplus1/vulkan#readme
@@ -304,6 +304,7 @@
       Vulkan.Extensions.VK_EXT_headless_surface
       Vulkan.Extensions.VK_EXT_host_query_reset
       Vulkan.Extensions.VK_EXT_image_drm_format_modifier
+      Vulkan.Extensions.VK_EXT_image_robustness
       Vulkan.Extensions.VK_EXT_index_type_uint8
       Vulkan.Extensions.VK_EXT_inline_uniform_block
       Vulkan.Extensions.VK_EXT_line_rasterization
@@ -321,6 +322,7 @@
       Vulkan.Extensions.VK_EXT_sampler_filter_minmax
       Vulkan.Extensions.VK_EXT_scalar_block_layout
       Vulkan.Extensions.VK_EXT_separate_stencil_usage
+      Vulkan.Extensions.VK_EXT_shader_atomic_float
       Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation
       Vulkan.Extensions.VK_EXT_shader_stencil_export
       Vulkan.Extensions.VK_EXT_shader_subgroup_ballot
