diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -2,6 +2,9 @@
 
 ## WIP
 
+## [3.15] - 2022-01-14
+- Bump API version to v1.2.203
+
 ## [3.14.2] - 2021-12-07
 - Bump API version to v1.2.202
 
diff --git a/package.yaml b/package.yaml
--- a/package.yaml
+++ b/package.yaml
@@ -1,5 +1,5 @@
 name: vulkan
-version: "3.14.2"
+version: "3.15"
 synopsis: Bindings to the Vulkan graphics API.
 description: Please see [the readme](https://github.com/expipiplus1/vulkan/#readme)
 category: Graphics
@@ -35,6 +35,8 @@
     cpp-options: -DGENERIC_INSTANCES
   - condition: flag(trace-calls)
     cpp-options: -DTRACE_CALLS
+  - condition: false
+    other-modules: Paths_vulkan
   ghc-options:
   - -Wall
   - -Wno-unticked-promoted-constructors
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
@@ -413,6 +413,8 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map2 (PhysicalDeviceFragmentDensityMap2FeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map2 (PhysicalDeviceFragmentDensityMap2PropertiesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map (PhysicalDeviceFragmentDensityMapFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_fragment_density_map_offset (PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_fragment_density_map_offset (PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map (PhysicalDeviceFragmentDensityMapPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_shader_interlock (PhysicalDeviceFragmentShaderInterlockFeaturesEXT)
@@ -439,6 +441,7 @@
 import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceLimits)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationPropertiesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_linear_color_attachment (PhysicalDeviceLinearColorAttachmentFeaturesNV)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance3 (PhysicalDeviceMaintenance3Properties)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (PhysicalDeviceMaintenance4FeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (PhysicalDeviceMaintenance4PropertiesKHR)
@@ -681,6 +684,7 @@
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (SubpassDescription2)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve (SubpassDescriptionDepthStencilResolve)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (SubpassEndInfo)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_fragment_density_map_offset (SubpassFragmentDensityMapOffsetEndInfoQCOM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SubpassSampleLocationsEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_subpass_shading (SubpassShadingPipelineCreateInfoHUAWEI)
 import {-# SOURCE #-} Vulkan.Core10.Image (SubresourceLayout)
@@ -919,6 +923,7 @@
   Extends DeviceCreateInfo DeviceMemoryOverallocationCreateInfoAMD = ()
   Extends DeviceCreateInfo PhysicalDeviceFragmentDensityMapFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceFragmentDensityMap2FeaturesEXT = ()
+  Extends DeviceCreateInfo PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM = ()
   Extends DeviceCreateInfo PhysicalDeviceScalarBlockLayoutFeatures = ()
   Extends DeviceCreateInfo PhysicalDeviceUniformBufferStandardLayoutFeatures = ()
   Extends DeviceCreateInfo PhysicalDeviceDepthClipEnableFeaturesEXT = ()
@@ -981,6 +986,7 @@
   Extends DeviceCreateInfo PhysicalDeviceDynamicRenderingFeaturesKHR = ()
   Extends DeviceCreateInfo PhysicalDeviceImageViewMinLodFeaturesEXT = ()
   Extends DeviceCreateInfo PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = ()
+  Extends DeviceCreateInfo PhysicalDeviceLinearColorAttachmentFeaturesNV = ()
   Extends DeviceQueueCreateInfo DeviceQueueGlobalPriorityCreateInfoEXT = ()
   Extends FenceCreateInfo ExportFenceCreateInfo = ()
   Extends FenceCreateInfo ExportFenceWin32HandleInfoKHR = ()
@@ -1088,6 +1094,7 @@
   Extends PhysicalDeviceFeatures2 PhysicalDeviceRayQueryFeaturesKHR = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentDensityMapFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentDensityMap2FeaturesEXT = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceScalarBlockLayoutFeatures = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceUniformBufferStandardLayoutFeatures = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceDepthClipEnableFeaturesEXT = ()
@@ -1149,6 +1156,7 @@
   Extends PhysicalDeviceFeatures2 PhysicalDeviceDynamicRenderingFeaturesKHR = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceImageViewMinLodFeaturesEXT = ()
   Extends PhysicalDeviceFeatures2 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = ()
+  Extends PhysicalDeviceFeatures2 PhysicalDeviceLinearColorAttachmentFeaturesNV = ()
   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceExternalImageFormatInfo = ()
   Extends PhysicalDeviceImageFormatInfo2 ImageFormatListCreateInfo = ()
   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceImageDrmFormatModifierInfoEXT = ()
@@ -1190,6 +1198,7 @@
   Extends PhysicalDeviceProperties2 PhysicalDeviceRayTracingPropertiesNV = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentDensityMapPropertiesEXT = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentDensityMap2PropertiesEXT = ()
+  Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceCooperativeMatrixPropertiesNV = ()
   Extends PhysicalDeviceProperties2 PhysicalDevicePerformanceQueryPropertiesKHR = ()
   Extends PhysicalDeviceProperties2 PhysicalDeviceShaderSMBuiltinsPropertiesNV = ()
@@ -1277,6 +1286,7 @@
   Extends SubpassDependency2 MemoryBarrier2KHR = ()
   Extends SubpassDescription2 SubpassDescriptionDepthStencilResolve = ()
   Extends SubpassDescription2 FragmentShadingRateAttachmentInfoKHR = ()
+  Extends SubpassEndInfo SubpassFragmentDensityMapOffsetEndInfoQCOM = ()
   Extends SurfaceCapabilities2KHR DisplayNativeHdrSurfaceCapabilitiesAMD = ()
   Extends SurfaceCapabilities2KHR SharedPresentSurfaceCapabilitiesKHR = ()
   Extends SurfaceCapabilities2KHR SurfaceProtectedCapabilitiesKHR = ()
@@ -1579,9 +1589,12 @@
   STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD -> go @DeviceMemoryOverallocationCreateInfoAMD
   STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT -> go @PhysicalDeviceFragmentDensityMapFeaturesEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT -> go @PhysicalDeviceFragmentDensityMap2FeaturesEXT
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM -> go @PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM
   STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT -> go @PhysicalDeviceFragmentDensityMapPropertiesEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT -> go @PhysicalDeviceFragmentDensityMap2PropertiesEXT
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM -> go @PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM
   STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT -> go @RenderPassFragmentDensityMapCreateInfoEXT
+  STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM -> go @SubpassFragmentDensityMapOffsetEndInfoQCOM
   STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES -> go @PhysicalDeviceScalarBlockLayoutFeatures
   STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR -> go @SurfaceProtectedCapabilitiesKHR
   STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES -> go @PhysicalDeviceUniformBufferStandardLayoutFeatures
@@ -1717,6 +1730,7 @@
   STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT -> go @PhysicalDeviceImageViewMinLodFeaturesEXT
   STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT -> go @ImageViewMinLodCreateInfoEXT
   STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM -> go @PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM
+  STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV -> go @PhysicalDeviceLinearColorAttachmentFeaturesNV
   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
@@ -1957,9 +1971,12 @@
 {-# complete (::&) :: DeviceMemoryOverallocationCreateInfoAMD #-}
 {-# complete (::&) :: PhysicalDeviceFragmentDensityMapFeaturesEXT #-}
 {-# complete (::&) :: PhysicalDeviceFragmentDensityMap2FeaturesEXT #-}
+{-# complete (::&) :: PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM #-}
 {-# complete (::&) :: PhysicalDeviceFragmentDensityMapPropertiesEXT #-}
 {-# complete (::&) :: PhysicalDeviceFragmentDensityMap2PropertiesEXT #-}
+{-# complete (::&) :: PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM #-}
 {-# complete (::&) :: RenderPassFragmentDensityMapCreateInfoEXT #-}
+{-# complete (::&) :: SubpassFragmentDensityMapOffsetEndInfoQCOM #-}
 {-# complete (::&) :: PhysicalDeviceScalarBlockLayoutFeatures #-}
 {-# complete (::&) :: SurfaceProtectedCapabilitiesKHR #-}
 {-# complete (::&) :: PhysicalDeviceUniformBufferStandardLayoutFeatures #-}
@@ -2095,6 +2112,7 @@
 {-# complete (::&) :: PhysicalDeviceImageViewMinLodFeaturesEXT #-}
 {-# complete (::&) :: ImageViewMinLodCreateInfoEXT #-}
 {-# complete (::&) :: PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM #-}
+{-# complete (::&) :: PhysicalDeviceLinearColorAttachmentFeaturesNV #-}
 
 -- | 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
@@ -8952,6 +8952,14 @@
 --     of @dstImage@ /must/ contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'
 --
+-- -   #VUID-vkCmdResolveImage-linearColorAttachment-06519# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>
+--     feature is enabled and the image is created with
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
+--     of @dstImage@ /must/ contain
+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'
+--
 -- -   #VUID-vkCmdResolveImage-srcImage-01386# @srcImage@ and @dstImage@
 --     /must/ have been created with the same image format
 --
@@ -10470,7 +10478,8 @@
 --
 -- -   #VUID-vkCmdBeginQuery-commandBuffer-cmdpool# The
 --     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics, or compute operations
+--     allocated from /must/ support graphics, compute, decode, or encode
+--     operations
 --
 -- -   #VUID-vkCmdBeginQuery-commonparent# Both of @commandBuffer@, and
 --     @queryPool@ /must/ have been created, allocated, or retrieved from
@@ -10492,6 +10501,8 @@
 -- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+
 -- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |
 -- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |
+-- |                                                                                                                            |                                                                                                                        | Decode                                                                                                                |
+-- |                                                                                                                            |                                                                                                                        | Encode                                                                                                                |
 -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+
 --
 -- = See Also
@@ -10605,7 +10616,8 @@
 --
 -- -   #VUID-vkCmdEndQuery-commandBuffer-cmdpool# The
 --     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics, or compute operations
+--     allocated from /must/ support graphics, compute, decode, or encode
+--     operations
 --
 -- -   #VUID-vkCmdEndQuery-commonparent# Both of @commandBuffer@, and
 --     @queryPool@ /must/ have been created, allocated, or retrieved from
@@ -10627,6 +10639,8 @@
 -- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+
 -- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |
 -- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |
+-- |                                                                                                                            |                                                                                                                        | Decode                                                                                                                |
+-- |                                                                                                                            |                                                                                                                        | Encode                                                                                                                |
 -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+
 --
 -- = See Also
@@ -10720,7 +10734,8 @@
 --
 -- -   #VUID-vkCmdResetQueryPool-commandBuffer-cmdpool# The
 --     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support graphics, or compute operations
+--     allocated from /must/ support graphics, compute, decode, or encode
+--     operations
 --
 -- -   #VUID-vkCmdResetQueryPool-renderpass# This command /must/ only be
 --     called outside of a render pass instance
@@ -10745,6 +10760,8 @@
 -- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+
 -- | Primary                                                                                                                    | Outside                                                                                                                | Graphics                                                                                                              |
 -- | Secondary                                                                                                                  |                                                                                                                        | Compute                                                                                                               |
+-- |                                                                                                                            |                                                                                                                        | Decode                                                                                                                |
+-- |                                                                                                                            |                                                                                                                        | Encode                                                                                                                |
 -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+
 --
 -- = See Also
@@ -10918,8 +10935,8 @@
 --
 -- -   #VUID-vkCmdWriteTimestamp-commandBuffer-cmdpool# The
 --     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support transfer, graphics, or compute
---     operations
+--     allocated from /must/ support transfer, graphics, compute, decode,
+--     or encode operations
 --
 -- -   #VUID-vkCmdWriteTimestamp-commonparent# Both of @commandBuffer@, and
 --     @queryPool@ /must/ have been created, allocated, or retrieved from
@@ -10942,6 +10959,8 @@
 -- | Primary                                                                                                                    | Both                                                                                                                   | Transfer                                                                                                              |
 -- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |
 -- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |
+-- |                                                                                                                            |                                                                                                                        | Decode                                                                                                                |
+-- |                                                                                                                            |                                                                                                                        | Encode                                                                                                                |
 -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+
 --
 -- = See Also
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
@@ -872,6 +872,18 @@
 --     structure in the @pNext@ chain of @pDescriptorWrites@[i] /must/ have
 --     been created on @device@
 --
+-- -   #VUID-vkUpdateDescriptorSets-pDescriptorWrites-06493# For each
+--     element i where @pDescriptorWrites@[i].@descriptorType@ is
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLER',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT',
+--     @pDescriptorWrites@[i].@pImageInfo@ /must/ be a valid pointer to an
+--     array of @pDescriptorWrites@[i].@descriptorCount@ valid
+--     'DescriptorImageInfo' structures
+--
 -- -   #VUID-vkUpdateDescriptorSets-None-03047# Descriptor bindings updated
 --     by this command which were created without the
 --     'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT'
@@ -1274,16 +1286,6 @@
 --     is
 --     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT',
 --     @descriptorCount@ /must/ be an integer multiple of @4@
---
--- -   #VUID-VkWriteDescriptorSet-descriptorType-00322# If @descriptorType@
---     is 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLER',
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER',
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
---     or
---     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT',
---     @pImageInfo@ /must/ be a valid pointer to an array of
---     @descriptorCount@ valid 'DescriptorImageInfo' structures
 --
 -- -   #VUID-VkWriteDescriptorSet-descriptorType-02994# If @descriptorType@
 --     is
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
@@ -121,6 +121,7 @@
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceFeatures2)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map2 (PhysicalDeviceFragmentDensityMap2FeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map (PhysicalDeviceFragmentDensityMapFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_fragment_density_map_offset (PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_shader_interlock (PhysicalDeviceFragmentShaderInterlockFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (PhysicalDeviceFragmentShadingRateEnumsFeaturesNV)
@@ -135,6 +136,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_inline_uniform_block (PhysicalDeviceInlineUniformBlockFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_invocation_mask (PhysicalDeviceInvocationMaskFeaturesHUAWEI)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_linear_color_attachment (PhysicalDeviceLinearColorAttachmentFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (PhysicalDeviceMaintenance4FeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_memory_priority (PhysicalDeviceMemoryPriorityFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_mesh_shader (PhysicalDeviceMeshShaderFeaturesNV)
@@ -621,44 +623,44 @@
 --     'Vulkan.Core12.Promoted_From_VK_KHR_vulkan_memory_model.PhysicalDeviceVulkanMemoryModelFeatures'
 --     structure
 --
--- -   #VUID-VkDeviceCreateInfo-ppEnabledExtensions-04476# If
---     @ppEnabledExtensions@ contains @\"VK_KHR_shader_draw_parameters\"@
---     and the @pNext@ chain includes a
+-- -   #VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-04476# If
+--     @ppEnabledExtensionNames@ contains
+--     @\"VK_KHR_shader_draw_parameters\"@ and the @pNext@ chain includes a
 --     'Vulkan.Core12.PhysicalDeviceVulkan11Features' structure, then
 --     'Vulkan.Core12.PhysicalDeviceVulkan11Features'::@shaderDrawParameters@
 --     /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'
 --
--- -   #VUID-VkDeviceCreateInfo-ppEnabledExtensions-02831# If
---     @ppEnabledExtensions@ contains @\"VK_KHR_draw_indirect_count\"@ and
---     the @pNext@ chain includes a
+-- -   #VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02831# If
+--     @ppEnabledExtensionNames@ contains @\"VK_KHR_draw_indirect_count\"@
+--     and the @pNext@ chain includes a
 --     'Vulkan.Core12.PhysicalDeviceVulkan12Features' structure, then
 --     'Vulkan.Core12.PhysicalDeviceVulkan12Features'::@drawIndirectCount@
 --     /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'
 --
--- -   #VUID-VkDeviceCreateInfo-ppEnabledExtensions-02832# If
---     @ppEnabledExtensions@ contains
+-- -   #VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02832# If
+--     @ppEnabledExtensionNames@ contains
 --     @\"VK_KHR_sampler_mirror_clamp_to_edge\"@ and the @pNext@ chain
 --     includes a 'Vulkan.Core12.PhysicalDeviceVulkan12Features' structure,
 --     then
 --     'Vulkan.Core12.PhysicalDeviceVulkan12Features'::@samplerMirrorClampToEdge@
 --     /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'
 --
--- -   #VUID-VkDeviceCreateInfo-ppEnabledExtensions-02833# If
---     @ppEnabledExtensions@ contains @\"VK_EXT_descriptor_indexing\"@ and
---     the @pNext@ chain includes a
+-- -   #VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02833# If
+--     @ppEnabledExtensionNames@ contains @\"VK_EXT_descriptor_indexing\"@
+--     and the @pNext@ chain includes a
 --     'Vulkan.Core12.PhysicalDeviceVulkan12Features' structure, then
 --     'Vulkan.Core12.PhysicalDeviceVulkan12Features'::@descriptorIndexing@
 --     /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'
 --
--- -   #VUID-VkDeviceCreateInfo-ppEnabledExtensions-02834# If
---     @ppEnabledExtensions@ contains @\"VK_EXT_sampler_filter_minmax\"@
---     and the @pNext@ chain includes a
+-- -   #VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02834# If
+--     @ppEnabledExtensionNames@ contains
+--     @\"VK_EXT_sampler_filter_minmax\"@ and the @pNext@ chain includes a
 --     'Vulkan.Core12.PhysicalDeviceVulkan12Features' structure, then
 --     'Vulkan.Core12.PhysicalDeviceVulkan12Features'::@samplerFilterMinmax@
 --     /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'
 --
--- -   #VUID-VkDeviceCreateInfo-ppEnabledExtensions-02835# If
---     @ppEnabledExtensions@ contains
+-- -   #VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-02835# If
+--     @ppEnabledExtensionNames@ contains
 --     @\"VK_EXT_shader_viewport_index_layer\"@ and the @pNext@ chain
 --     includes a 'Vulkan.Core12.PhysicalDeviceVulkan12Features' structure,
 --     then
@@ -671,7 +673,8 @@
 --     @VK_KHR_portability_subset@ extension is included in @pProperties@
 --     of
 --     'Vulkan.Core10.ExtensionDiscovery.enumerateDeviceExtensionProperties',
---     @ppEnabledExtensions@ /must/ include \"VK_KHR_portability_subset\"
+--     @ppEnabledExtensionNames@ /must/ include
+--     @\"VK_KHR_portability_subset\"@
 --
 -- -   #VUID-VkDeviceCreateInfo-shadingRateImage-04478# If
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>
@@ -778,6 +781,7 @@
 --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
 --     'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2FeaturesEXT',
 --     'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapFeaturesEXT',
+--     'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM',
 --     'Vulkan.Extensions.VK_NV_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricFeaturesNV',
 --     'Vulkan.Extensions.VK_EXT_fragment_shader_interlock.PhysicalDeviceFragmentShaderInterlockFeaturesEXT',
 --     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsFeaturesNV',
@@ -792,6 +796,7 @@
 --     'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockFeaturesEXT',
 --     'Vulkan.Extensions.VK_HUAWEI_invocation_mask.PhysicalDeviceInvocationMaskFeaturesHUAWEI',
 --     'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT',
+--     'Vulkan.Extensions.VK_NV_linear_color_attachment.PhysicalDeviceLinearColorAttachmentFeaturesNV',
 --     'Vulkan.Extensions.VK_KHR_maintenance4.PhysicalDeviceMaintenance4FeaturesKHR',
 --     'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT',
 --     'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderFeaturesNV',
@@ -934,6 +939,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 @PhysicalDeviceLinearColorAttachmentFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = Just f
     | Just Refl <- eqT @e @PhysicalDeviceImageViewMinLodFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDynamicRenderingFeaturesKHR = Just f
@@ -996,6 +1002,7 @@
     | Just Refl <- eqT @e @PhysicalDeviceDepthClipEnableFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceUniformBufferStandardLayoutFeatures = Just f
     | Just Refl <- eqT @e @PhysicalDeviceScalarBlockLayoutFeatures = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM = Just f
     | Just Refl <- eqT @e @PhysicalDeviceFragmentDensityMap2FeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceFragmentDensityMapFeaturesEXT = Just f
     | Just Refl <- eqT @e @DeviceMemoryOverallocationCreateInfoAMD = 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
@@ -6,6 +6,7 @@
                                                                      , IMAGE_CREATE_SPARSE_ALIASED_BIT
                                                                      , IMAGE_CREATE_MUTABLE_FORMAT_BIT
                                                                      , IMAGE_CREATE_CUBE_COMPATIBLE_BIT
+                                                                     , IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM
                                                                      , IMAGE_CREATE_SUBSAMPLED_BIT_EXT
                                                                      , IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT
                                                                      , IMAGE_CREATE_CORNER_SAMPLED_BIT_NV
@@ -53,18 +54,18 @@
 
 -- | 'IMAGE_CREATE_SPARSE_BINDING_BIT' specifies that the image will be
 -- backed using sparse memory binding.
-pattern IMAGE_CREATE_SPARSE_BINDING_BIT              = ImageCreateFlagBits 0x00000001
+pattern IMAGE_CREATE_SPARSE_BINDING_BIT                   = ImageCreateFlagBits 0x00000001
 -- | 'IMAGE_CREATE_SPARSE_RESIDENCY_BIT' specifies that the image /can/ be
 -- partially backed using sparse memory binding. Images created with this
 -- flag /must/ also be created with the 'IMAGE_CREATE_SPARSE_BINDING_BIT'
 -- flag.
-pattern IMAGE_CREATE_SPARSE_RESIDENCY_BIT            = ImageCreateFlagBits 0x00000002
+pattern IMAGE_CREATE_SPARSE_RESIDENCY_BIT                 = ImageCreateFlagBits 0x00000002
 -- | 'IMAGE_CREATE_SPARSE_ALIASED_BIT' specifies that the image will be
 -- backed using sparse memory binding with memory ranges that might also
 -- simultaneously be backing another image (or another portion of the same
 -- image). Images created with this flag /must/ also be created with the
 -- 'IMAGE_CREATE_SPARSE_BINDING_BIT' flag.
-pattern IMAGE_CREATE_SPARSE_ALIASED_BIT              = ImageCreateFlagBits 0x00000004
+pattern IMAGE_CREATE_SPARSE_ALIASED_BIT                   = ImageCreateFlagBits 0x00000004
 -- | 'IMAGE_CREATE_MUTABLE_FORMAT_BIT' specifies that the image /can/ be used
 -- to create a 'Vulkan.Core10.Handles.ImageView' with a different format
 -- from the image. For
@@ -72,12 +73,20 @@
 -- formats, 'IMAGE_CREATE_MUTABLE_FORMAT_BIT' specifies that a
 -- 'Vulkan.Core10.Handles.ImageView' can be created of a /plane/ of the
 -- image.
-pattern IMAGE_CREATE_MUTABLE_FORMAT_BIT              = ImageCreateFlagBits 0x00000008
+pattern IMAGE_CREATE_MUTABLE_FORMAT_BIT                   = ImageCreateFlagBits 0x00000008
 -- | 'IMAGE_CREATE_CUBE_COMPATIBLE_BIT' specifies that the image /can/ be
 -- used to create a 'Vulkan.Core10.Handles.ImageView' of type
 -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE' or
 -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'.
-pattern IMAGE_CREATE_CUBE_COMPATIBLE_BIT             = ImageCreateFlagBits 0x00000010
+pattern IMAGE_CREATE_CUBE_COMPATIBLE_BIT                  = ImageCreateFlagBits 0x00000010
+-- | 'IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM' specifies that an
+-- image /can/ be used in a render pass with non-zero
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsets fragment density map offsets>.
+-- In a renderpass with non-zero offsets, fragment density map attachments,
+-- input attachments, color attachments, depth\/stencil attachment, resolve
+-- attachments, and preserve attachments /must/ be created with
+-- VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM.
+pattern IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = ImageCreateFlagBits 0x00008000
 -- | 'IMAGE_CREATE_SUBSAMPLED_BIT_EXT' specifies that an image /can/ be in a
 -- subsampled format which /may/ be more optimal when written as an
 -- attachment by a render pass that has a fragment density map attachment.
@@ -111,39 +120,39 @@
 --
 -- -   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
+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
 -- sample locations when used as a depth\/stencil attachment.
 pattern IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = ImageCreateFlagBits 0x00001000
 -- | 'IMAGE_CREATE_CORNER_SAMPLED_BIT_NV' specifies that the image is a
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-images-corner-sampled corner-sampled image>.
-pattern IMAGE_CREATE_CORNER_SAMPLED_BIT_NV           = ImageCreateFlagBits 0x00002000
+pattern IMAGE_CREATE_CORNER_SAMPLED_BIT_NV                = ImageCreateFlagBits 0x00002000
 -- | 'IMAGE_CREATE_DISJOINT_BIT' specifies that an image with a
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>
 -- /must/ have each plane separately bound to memory, rather than having a
 -- single memory binding for the whole image; the presence of this bit
 -- distinguishes a /disjoint image/ from an image without this bit set.
-pattern IMAGE_CREATE_DISJOINT_BIT                    = ImageCreateFlagBits 0x00000200
+pattern IMAGE_CREATE_DISJOINT_BIT                         = ImageCreateFlagBits 0x00000200
 -- | 'IMAGE_CREATE_PROTECTED_BIT' specifies that the image is a protected
 -- image.
-pattern IMAGE_CREATE_PROTECTED_BIT                   = ImageCreateFlagBits 0x00000800
+pattern IMAGE_CREATE_PROTECTED_BIT                        = ImageCreateFlagBits 0x00000800
 -- | 'IMAGE_CREATE_EXTENDED_USAGE_BIT' specifies that the image /can/ be
 -- created with usage flags that are not supported for the format the image
 -- is created with but are supported for at least one format a
 -- 'Vulkan.Core10.Handles.ImageView' created from the image /can/ have.
-pattern IMAGE_CREATE_EXTENDED_USAGE_BIT              = ImageCreateFlagBits 0x00000100
+pattern IMAGE_CREATE_EXTENDED_USAGE_BIT                   = ImageCreateFlagBits 0x00000100
 -- | 'IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT' specifies that the image
 -- having a compressed format /can/ be used to create a
 -- 'Vulkan.Core10.Handles.ImageView' with an uncompressed format where each
 -- texel in the image view corresponds to a compressed texel block of the
 -- image.
-pattern IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = ImageCreateFlagBits 0x00000080
+pattern IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT      = ImageCreateFlagBits 0x00000080
 -- | 'IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT' specifies that the image /can/ be
 -- used to create a 'Vulkan.Core10.Handles.ImageView' of type
 -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or
 -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY'.
-pattern IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT         = ImageCreateFlagBits 0x00000020
+pattern IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT              = ImageCreateFlagBits 0x00000020
 -- | 'IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT' specifies that the image
 -- /can/ be used with a non-zero value of the
 -- @splitInstanceBindRegionCount@ member of a
@@ -152,7 +161,7 @@
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.bindImageMemory2'. This
 -- flag also has the effect of making the image use the standard sparse
 -- image block dimensions.
-pattern IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = ImageCreateFlagBits 0x00000040
+pattern IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT      = ImageCreateFlagBits 0x00000040
 -- | 'IMAGE_CREATE_ALIAS_BIT' specifies that two images created with the same
 -- creation parameters and aliased to the same memory /can/ interpret the
 -- contents of the memory consistently with each other, subject to the
@@ -170,7 +179,7 @@
 -- 'Vulkan.Extensions.VK_NV_external_memory.ExternalMemoryImageCreateInfoNV'
 -- structure whose @handleTypes@ member is not @0@, it is as if
 -- 'IMAGE_CREATE_ALIAS_BIT' is set.
-pattern IMAGE_CREATE_ALIAS_BIT                       = ImageCreateFlagBits 0x00000400
+pattern IMAGE_CREATE_ALIAS_BIT                            = ImageCreateFlagBits 0x00000400
 
 conNameImageCreateFlagBits :: String
 conNameImageCreateFlagBits = "ImageCreateFlagBits"
@@ -180,21 +189,22 @@
 
 showTableImageCreateFlagBits :: [(ImageCreateFlagBits, String)]
 showTableImageCreateFlagBits =
-  [ (IMAGE_CREATE_SPARSE_BINDING_BIT             , "SPARSE_BINDING_BIT")
-  , (IMAGE_CREATE_SPARSE_RESIDENCY_BIT           , "SPARSE_RESIDENCY_BIT")
-  , (IMAGE_CREATE_SPARSE_ALIASED_BIT             , "SPARSE_ALIASED_BIT")
-  , (IMAGE_CREATE_MUTABLE_FORMAT_BIT             , "MUTABLE_FORMAT_BIT")
-  , (IMAGE_CREATE_CUBE_COMPATIBLE_BIT            , "CUBE_COMPATIBLE_BIT")
-  , (IMAGE_CREATE_SUBSAMPLED_BIT_EXT             , "SUBSAMPLED_BIT_EXT")
+  [ (IMAGE_CREATE_SPARSE_BINDING_BIT                  , "SPARSE_BINDING_BIT")
+  , (IMAGE_CREATE_SPARSE_RESIDENCY_BIT                , "SPARSE_RESIDENCY_BIT")
+  , (IMAGE_CREATE_SPARSE_ALIASED_BIT                  , "SPARSE_ALIASED_BIT")
+  , (IMAGE_CREATE_MUTABLE_FORMAT_BIT                  , "MUTABLE_FORMAT_BIT")
+  , (IMAGE_CREATE_CUBE_COMPATIBLE_BIT                 , "CUBE_COMPATIBLE_BIT")
+  , (IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM, "FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM")
+  , (IMAGE_CREATE_SUBSAMPLED_BIT_EXT                  , "SUBSAMPLED_BIT_EXT")
   , (IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT, "SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT")
-  , (IMAGE_CREATE_CORNER_SAMPLED_BIT_NV          , "CORNER_SAMPLED_BIT_NV")
-  , (IMAGE_CREATE_DISJOINT_BIT                   , "DISJOINT_BIT")
-  , (IMAGE_CREATE_PROTECTED_BIT                  , "PROTECTED_BIT")
-  , (IMAGE_CREATE_EXTENDED_USAGE_BIT             , "EXTENDED_USAGE_BIT")
-  , (IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, "BLOCK_TEXEL_VIEW_COMPATIBLE_BIT")
-  , (IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT        , "2D_ARRAY_COMPATIBLE_BIT")
-  , (IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, "SPLIT_INSTANCE_BIND_REGIONS_BIT")
-  , (IMAGE_CREATE_ALIAS_BIT                      , "ALIAS_BIT")
+  , (IMAGE_CREATE_CORNER_SAMPLED_BIT_NV               , "CORNER_SAMPLED_BIT_NV")
+  , (IMAGE_CREATE_DISJOINT_BIT                        , "DISJOINT_BIT")
+  , (IMAGE_CREATE_PROTECTED_BIT                       , "PROTECTED_BIT")
+  , (IMAGE_CREATE_EXTENDED_USAGE_BIT                  , "EXTENDED_USAGE_BIT")
+  , (IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT     , "BLOCK_TEXEL_VIEW_COMPATIBLE_BIT")
+  , (IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT             , "2D_ARRAY_COMPATIBLE_BIT")
+  , (IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT     , "SPLIT_INSTANCE_BIND_REGIONS_BIT")
+  , (IMAGE_CREATE_ALIAS_BIT                           , "ALIAS_BIT")
   ]
 
 instance Show ImageCreateFlagBits where
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,10 @@
                                                         , STRUCTURE_TYPE_MEMORY_BARRIER
                                                         , STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO
                                                         , STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO
+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV
+                                                        , 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_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR
                                                         , STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR
                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR
@@ -880,6 +884,8 @@
 -- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2FeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2PropertiesEXT',
 -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapFeaturesEXT',
+-- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM',
+-- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM',
 -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapPropertiesEXT',
 -- 'Vulkan.Extensions.VK_NV_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricFeaturesNV',
 -- 'Vulkan.Extensions.VK_EXT_fragment_shader_interlock.PhysicalDeviceFragmentShaderInterlockFeaturesEXT',
@@ -905,6 +911,7 @@
 -- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.PhysicalDeviceInvocationMaskFeaturesHUAWEI',
 -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationPropertiesEXT',
+-- 'Vulkan.Extensions.VK_NV_linear_color_attachment.PhysicalDeviceLinearColorAttachmentFeaturesNV',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties',
 -- 'Vulkan.Extensions.VK_KHR_maintenance4.PhysicalDeviceMaintenance4FeaturesKHR',
 -- 'Vulkan.Extensions.VK_KHR_maintenance4.PhysicalDeviceMaintenance4PropertiesKHR',
@@ -1065,6 +1072,7 @@
 -- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.QueueFamilyCheckpointPropertiesNV',
 -- 'Vulkan.Extensions.VK_EXT_global_priority_query.QueueFamilyGlobalPriorityPropertiesEXT',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.QueueFamilyProperties2',
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusProperties2KHR VkQueueFamilyQueryResultStatusProperties2KHR>,
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',
 -- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',
 -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineInterfaceCreateInfoKHR',
@@ -1114,6 +1122,7 @@
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve',
 -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassEndInfo',
+-- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.SubpassFragmentDensityMapOffsetEndInfoQCOM',
 -- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.SubpassShadingPipelineCreateInfoHUAWEI',
 -- 'Vulkan.Extensions.VK_EXT_display_surface_counter.SurfaceCapabilities2EXT',
 -- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceCapabilities2KHR',
@@ -1302,6 +1311,14 @@
 pattern STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO               = StructureType 47
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO"
 pattern STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO                 = StructureType 48
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = StructureType 1000430000
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM"
+pattern STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = StructureType 1000425002
+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM"
+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = StructureType 1000425001
+-- 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_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR"
 pattern STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR      = StructureType 1000413003
 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR"
@@ -2379,6 +2396,10 @@
              STRUCTURE_TYPE_MEMORY_BARRIER,
              STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO,
              STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
+             STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV,
+             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_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR,
              STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR,
              STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR,
@@ -2951,10 +2972,22 @@
   , (STRUCTURE_TYPE_MEMORY_BARRIER                           , "MEMORY_BARRIER")
   , (STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO              , "LOADER_INSTANCE_CREATE_INFO")
   , (STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO                , "LOADER_DEVICE_CREATE_INFO")
-  , (STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR     , "DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR")
-  , (STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR    , "DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR")
+  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV
+    , "PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV"
+    )
+  , ( STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM
+    , "SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM"
+    )
+  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM
+    , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM"
+    )
+  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM
+    , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM"
+    )
+  , (STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR        , "DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR")
+  , (STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR       , "DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR")
   , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR, "PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR")
-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR, "PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR")
+  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR  , "PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR")
   , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT
     , "PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT"
     )
diff --git a/src/Vulkan/Core10/FuncPointers.hs b/src/Vulkan/Core10/FuncPointers.hs
--- a/src/Vulkan/Core10/FuncPointers.hs
+++ b/src/Vulkan/Core10/FuncPointers.hs
@@ -156,6 +156,15 @@
 -- | PFN_vkVoidFunction - Placeholder function pointer type returned by
 -- queries
 --
+-- = Parameters
+--
+-- This type is returned from command function pointer queries, and /must/
+-- be
+--
+-- = Description
+--
+-- cast to an actual command function pointer before use.
+--
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
diff --git a/src/Vulkan/Core10/FuncPointers.hs-boot b/src/Vulkan/Core10/FuncPointers.hs-boot
--- a/src/Vulkan/Core10/FuncPointers.hs-boot
+++ b/src/Vulkan/Core10/FuncPointers.hs-boot
@@ -10,6 +10,15 @@
 -- | PFN_vkVoidFunction - Placeholder function pointer type returned by
 -- queries
 --
+-- = Parameters
+--
+-- This type is returned from command function pointer queries, and /must/
+-- be
+--
+-- = Description
+--
+-- cast to an actual command function pointer before use.
+--
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
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
@@ -63,6 +63,7 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,
 -- 'Vulkan.Extensions.VK_KHR_display.DisplayPlaneCapabilitiesKHR',
 -- 'Rect2D', 'Vulkan.Extensions.VK_KHR_incremental_present.RectLayerKHR',
+-- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.SubpassFragmentDensityMapOffsetEndInfoQCOM',
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264CapabilitiesEXT VkVideoDecodeH264CapabilitiesEXT>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceKHR VkVideoPictureResourceKHR>
@@ -185,6 +186,7 @@
 -- 'Vulkan.Extensions.VK_KHR_display.DisplaySurfaceCreateInfoKHR',
 -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR',
 -- 'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT',
+-- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM',
 -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapPropertiesEXT',
 -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateKHR',
 -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR',
@@ -455,6 +457,7 @@
 -- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2FeaturesEXT',
 -- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2PropertiesEXT',
 -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapFeaturesEXT',
+-- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM',
 -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapPropertiesEXT',
 -- 'Vulkan.Extensions.VK_NV_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricFeaturesNV',
 -- 'Vulkan.Extensions.VK_EXT_fragment_shader_interlock.PhysicalDeviceFragmentShaderInterlockFeaturesEXT',
@@ -474,6 +477,7 @@
 -- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.PhysicalDeviceInvocationMaskFeaturesHUAWEI',
 -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits',
 -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationFeaturesEXT',
+-- 'Vulkan.Extensions.VK_NV_linear_color_attachment.PhysicalDeviceLinearColorAttachmentFeaturesNV',
 -- 'Vulkan.Extensions.VK_KHR_maintenance4.PhysicalDeviceMaintenance4FeaturesKHR',
 -- 'Vulkan.Extensions.VK_EXT_memory_priority.PhysicalDeviceMemoryPriorityFeaturesEXT',
 -- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderFeaturesNV',
@@ -568,6 +572,7 @@
 -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV',
 -- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV',
 -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.ProtectedSubmitInfo',
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusProperties2KHR VkQueueFamilyQueryResultStatusProperties2KHR>,
 -- 'Vulkan.Extensions.VK_EXT_border_color_swizzle.SamplerBorderColorComponentMappingCreateInfoEXT',
 -- 'Vulkan.Core10.Sampler.SamplerCreateInfo',
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo',
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
@@ -901,12 +901,16 @@
 --     @extent.height@ /must/ be less than or equal to
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxFramebufferHeight@
 --
--- -   #VUID-VkImageCreateInfo-usage-02559# If @usage@ includes
+-- -   #VUID-VkImageCreateInfo-fragmentDensityMapOffset-06514# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapOffset fragmentDensityMapOffset>
+--     is not enabled and @usage@ includes
 --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT',
 --     @extent.width@ /must/ be less than or equal to
 --     \(\left\lceil{\frac{maxFramebufferWidth}{minFragmentDensityTexelSize_{width}}}\right\rceil\)
 --
--- -   #VUID-VkImageCreateInfo-usage-02560# If @usage@ includes
+-- -   #VUID-VkImageCreateInfo-fragmentDensityMapOffset-06515# If
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapOffset fragmentDensityMapOffset>
+--     is not enabled and @usage@ includes
 --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT',
 --     @extent.height@ /must/ be less than or equal to
 --     \(\left\lceil{\frac{maxFramebufferHeight}{minFragmentDensityTexelSize_{height}}}\right\rceil\)
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
@@ -753,6 +753,28 @@
 --     /must/ contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'
 --
+-- -   #VUID-VkImageViewCreateInfo-usage-06516# If @usage@ contains
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT',
+--     then the image view’s
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>
+--     /must/ contain
+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV',
+--     if the image is created with
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>
+--     feature is enabled
+--
+-- -   #VUID-VkImageViewCreateInfo-usage-06517# If @usage@ contains
+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT',
+--     then the image view’s
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>
+--     must contain
+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV',
+--     if the image is created with
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' and the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>
+--     feature is enabled
+--
 -- -   #VUID-VkImageViewCreateInfo-usage-02652# If @usage@ contains
 --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT',
 --     then the image view’s
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
@@ -1205,6 +1205,39 @@
 --     contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'
 --
+-- -   #VUID-VkSubpassDescription-linearColorAttachment-06496# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>
+--     feature is enabled and the image is created with
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', all
+--     attachments in @pInputAttachments@ that are not
+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image
+--     formats whose
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>
+--     /must/ contain
+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'
+--
+-- -   #VUID-VkSubpassDescription-linearColorAttachment-06497# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>
+--     feature is enabled and the image is created with
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', all
+--     attachments in @pColorAttachments@ that are not
+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image
+--     formats whose
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>
+--     /must/ contain
+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'
+--
+-- -   #VUID-VkSubpassDescription-linearColorAttachment-06498# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>
+--     feature is enabled and the image is created with
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', all
+--     attachments in @pResolveAttachments@ that are not
+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image
+--     formats whose
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>
+--     /must/ contain
+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'
+--
 -- -   #VUID-VkSubpassDescription-pColorAttachments-01506# If the
 --     @VK_AMD_mixed_attachment_samples@ extension is enabled, and all
 --     attachments in @pColorAttachments@ that are not
@@ -2170,6 +2203,13 @@
 --     created with a @flags@ value including
 --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'
 --     unless that element is the fragment density map attachment
+--
+-- -   #VUID-VkFramebufferCreateInfo-renderPass-06502# If @renderPass@ was
+--     created with
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsets fragment density map offsets>
+--     other than (0,0), each element of @pAttachments@ /must/ have been
+--     created with a @flags@ value including
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM'.
 --
 -- -   #VUID-VkFramebufferCreateInfo-pAttachments-00880# If @renderpass@ is
 --     not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and @flags@ does not
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
@@ -2923,23 +2923,6 @@
 -- | VkPipelineColorBlendStateCreateInfo - Structure specifying parameters of
 -- a newly created pipeline color blend state
 --
--- = Description
---
--- Each element of the @pAttachments@ array is a
--- 'PipelineColorBlendAttachmentState' structure specifying per-target
--- blending state for each individual color attachment. If the
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-independentBlend independent blending>
--- feature is not enabled on the device, all
--- 'PipelineColorBlendAttachmentState' elements in the @pAttachments@ array
--- /must/ be identical.
---
--- The value of @attachmentCount@ /must/ be greater than the index of all
--- color attachments that are not
--- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' in
--- 'Vulkan.Core10.Pass.SubpassDescription'::@pColorAttachments@ or
--- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2'::@pColorAttachments@
--- for the subpass in which this pipeline is used.
---
 -- == Valid Usage
 --
 -- -   #VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605# If the
@@ -3009,7 +2992,9 @@
     logicOpEnable :: Bool
   , -- | @logicOp@ selects which logical operation to apply.
     logicOp :: LogicOp
-  , -- | @pAttachments@ is a pointer to an array of per target attachment states.
+  , -- | @pAttachments@ is a pointer to an array of
+    -- 'PipelineColorBlendAttachmentState' structures defining blend state for
+    -- each color attachment.
     attachments :: Vector PipelineColorBlendAttachmentState
   , -- | @blendConstants@ is a pointer to an array of four values used as the R,
     -- G, B, and A components of the blend constant that are used in blending,
@@ -3863,15 +3848,6 @@
 --     and @subpass@ uses color attachments, @pColorBlendState@ /must/ be a
 --     valid pointer to a valid 'PipelineColorBlendStateCreateInfo'
 --     structure
---
--- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06045# If @renderPass@
---     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is
---     being created with
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#pipeline-graphics-subsets-fragment-output fragment output interface state>,
---     @pColorBlendState->attachmentCount@ /must/ be greater than the index
---     of all color attachments that are not
---     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' for the @subpass@
---     index in @renderPass@
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754# If the
 --     pipeline is being created with
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
@@ -139,6 +139,8 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map2 (PhysicalDeviceFragmentDensityMap2FeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map2 (PhysicalDeviceFragmentDensityMap2PropertiesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map (PhysicalDeviceFragmentDensityMapFeaturesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_fragment_density_map_offset (PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_fragment_density_map_offset (PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map (PhysicalDeviceFragmentDensityMapPropertiesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesNV)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_shader_interlock (PhysicalDeviceFragmentShaderInterlockFeaturesEXT)
@@ -161,6 +163,7 @@
 import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_invocation_mask (PhysicalDeviceInvocationMaskFeaturesHUAWEI)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationFeaturesEXT)
 import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (PhysicalDeviceLineRasterizationPropertiesEXT)
+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_linear_color_attachment (PhysicalDeviceLinearColorAttachmentFeaturesNV)
 import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance3 (PhysicalDeviceMaintenance3Properties)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (PhysicalDeviceMaintenance4FeaturesKHR)
 import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance4 (PhysicalDeviceMaintenance4PropertiesKHR)
@@ -716,6 +719,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 @PhysicalDeviceLinearColorAttachmentFeaturesNV = Just f
     | Just Refl <- eqT @e @PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM = Just f
     | Just Refl <- eqT @e @PhysicalDeviceImageViewMinLodFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceDynamicRenderingFeaturesKHR = Just f
@@ -777,6 +781,7 @@
     | Just Refl <- eqT @e @PhysicalDeviceDepthClipEnableFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceUniformBufferStandardLayoutFeatures = Just f
     | Just Refl <- eqT @e @PhysicalDeviceScalarBlockLayoutFeatures = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM = Just f
     | Just Refl <- eqT @e @PhysicalDeviceFragmentDensityMap2FeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceFragmentDensityMapFeaturesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceRayQueryFeaturesKHR = Just f
@@ -885,6 +890,7 @@
 --     'Vulkan.Extensions.VK_EXT_external_memory_host.PhysicalDeviceExternalMemoryHostPropertiesEXT',
 --     'Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls.PhysicalDeviceFloatControlsProperties',
 --     'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2PropertiesEXT',
+--     'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM',
 --     'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapPropertiesEXT',
 --     'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsPropertiesNV',
 --     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR',
@@ -973,6 +979,7 @@
     | Just Refl <- eqT @e @PhysicalDeviceShaderSMBuiltinsPropertiesNV = Just f
     | Just Refl <- eqT @e @PhysicalDevicePerformanceQueryPropertiesKHR = Just f
     | Just Refl <- eqT @e @PhysicalDeviceCooperativeMatrixPropertiesNV = Just f
+    | Just Refl <- eqT @e @PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM = Just f
     | Just Refl <- eqT @e @PhysicalDeviceFragmentDensityMap2PropertiesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceFragmentDensityMapPropertiesEXT = Just f
     | Just Refl <- eqT @e @PhysicalDeviceRayTracingPropertiesNV = Just f
@@ -1418,6 +1425,7 @@
 --     'Vulkan.Extensions.VK_KHR_synchronization2.QueueFamilyCheckpointProperties2NV',
 --     'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.QueueFamilyCheckpointPropertiesNV',
 --     'Vulkan.Extensions.VK_EXT_global_priority_query.QueueFamilyGlobalPriorityPropertiesEXT',
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyQueryResultStatusProperties2KHR VkQueueFamilyQueryResultStatusProperties2KHR>,
 --     or
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoQueueFamilyProperties2KHR VkVideoQueueFamilyProperties2KHR>
 --
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
@@ -112,6 +112,7 @@
 import Vulkan.Core10.Enums.SubpassContents (SubpassContents)
 import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve (SubpassDescriptionDepthStencilResolve)
 import Vulkan.Core10.Enums.SubpassDescriptionFlagBits (SubpassDescriptionFlags)
+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_fragment_density_map_offset (SubpassFragmentDensityMapOffsetEndInfoQCOM)
 import Vulkan.Exception (VulkanException(..))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2))
 import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2))
@@ -434,7 +435,7 @@
 --
 -- Note that 'cmdEndRenderPass2' is *not* called if an exception is thrown
 -- by the inner action.
-cmdUseRenderPass2 :: forall a io r . (Extendss RenderPassBeginInfo a, PokeChain a, MonadIO io) => CommandBuffer -> RenderPassBeginInfo a -> SubpassBeginInfo -> SubpassEndInfo -> io r -> io r
+cmdUseRenderPass2 :: forall a io r . (Extendss RenderPassBeginInfo a, Extendss SubpassEndInfo a, PokeChain a, PokeChain a, MonadIO io) => CommandBuffer -> RenderPassBeginInfo a -> SubpassBeginInfo -> SubpassEndInfo a -> io r -> io r
 cmdUseRenderPass2 commandBuffer pRenderPassBegin pSubpassBeginInfo pSubpassEndInfo a =
   (cmdBeginRenderPass2 commandBuffer pRenderPassBegin pSubpassBeginInfo) *> a <* (cmdEndRenderPass2 commandBuffer pSubpassEndInfo)
 
@@ -444,7 +445,7 @@
   unsafe
 #endif
   "dynamic" mkVkCmdNextSubpass2
-  :: FunPtr (Ptr CommandBuffer_T -> Ptr SubpassBeginInfo -> Ptr SubpassEndInfo -> IO ()) -> Ptr CommandBuffer_T -> Ptr SubpassBeginInfo -> Ptr SubpassEndInfo -> IO ()
+  :: FunPtr (Ptr CommandBuffer_T -> Ptr SubpassBeginInfo -> Ptr (SomeStruct SubpassEndInfo) -> IO ()) -> Ptr CommandBuffer_T -> Ptr SubpassBeginInfo -> Ptr (SomeStruct SubpassEndInfo) -> IO ()
 
 -- | vkCmdNextSubpass2 - Transition to the next subpass of a render pass
 --
@@ -512,8 +513,8 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2 VK_VERSION_1_2>,
 -- 'Vulkan.Core10.Handles.CommandBuffer', 'SubpassBeginInfo',
 -- 'SubpassEndInfo'
-cmdNextSubpass2 :: forall io
-                 . (MonadIO io)
+cmdNextSubpass2 :: forall a io
+                 . (Extendss SubpassEndInfo a, PokeChain a, MonadIO io)
                 => -- | @commandBuffer@ is the command buffer in which to record the command.
                    CommandBuffer
                 -> -- | @pSubpassBeginInfo@ is a pointer to a 'SubpassBeginInfo' structure
@@ -522,7 +523,7 @@
                    SubpassBeginInfo
                 -> -- | @pSubpassEndInfo@ is a pointer to a 'SubpassEndInfo' structure
                    -- containing information about how the previous subpass will be ended.
-                   SubpassEndInfo
+                   (SubpassEndInfo a)
                 -> io ()
 cmdNextSubpass2 commandBuffer subpassBeginInfo subpassEndInfo = liftIO . evalContT $ do
   let vkCmdNextSubpass2Ptr = pVkCmdNextSubpass2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
@@ -531,7 +532,7 @@
   let vkCmdNextSubpass2' = mkVkCmdNextSubpass2 vkCmdNextSubpass2Ptr
   pSubpassBeginInfo <- ContT $ withCStruct (subpassBeginInfo)
   pSubpassEndInfo <- ContT $ withCStruct (subpassEndInfo)
-  lift $ traceAroundEvent "vkCmdNextSubpass2" (vkCmdNextSubpass2' (commandBufferHandle (commandBuffer)) pSubpassBeginInfo pSubpassEndInfo)
+  lift $ traceAroundEvent "vkCmdNextSubpass2" (vkCmdNextSubpass2' (commandBufferHandle (commandBuffer)) pSubpassBeginInfo (forgetExtensions pSubpassEndInfo))
   pure $ ()
 
 
@@ -540,7 +541,7 @@
   unsafe
 #endif
   "dynamic" mkVkCmdEndRenderPass2
-  :: FunPtr (Ptr CommandBuffer_T -> Ptr SubpassEndInfo -> IO ()) -> Ptr CommandBuffer_T -> Ptr SubpassEndInfo -> IO ()
+  :: FunPtr (Ptr CommandBuffer_T -> Ptr (SomeStruct SubpassEndInfo) -> IO ()) -> Ptr CommandBuffer_T -> Ptr (SomeStruct SubpassEndInfo) -> IO ()
 
 -- | vkCmdEndRenderPass2 - End the current render pass
 --
@@ -608,14 +609,14 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2 VK_KHR_create_renderpass2>,
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_2 VK_VERSION_1_2>,
 -- 'Vulkan.Core10.Handles.CommandBuffer', 'SubpassEndInfo'
-cmdEndRenderPass2 :: forall io
-                   . (MonadIO io)
+cmdEndRenderPass2 :: forall a io
+                   . (Extendss SubpassEndInfo a, PokeChain a, MonadIO io)
                   => -- | @commandBuffer@ is the command buffer in which to end the current render
                      -- pass instance.
                      CommandBuffer
                   -> -- | @pSubpassEndInfo@ is a pointer to a 'SubpassEndInfo' structure
                      -- containing information about how the previous subpass will be ended.
-                     SubpassEndInfo
+                     (SubpassEndInfo a)
                   -> io ()
 cmdEndRenderPass2 commandBuffer subpassEndInfo = liftIO . evalContT $ do
   let vkCmdEndRenderPass2Ptr = pVkCmdEndRenderPass2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)
@@ -623,7 +624,7 @@
     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndRenderPass2 is null" Nothing Nothing
   let vkCmdEndRenderPass2' = mkVkCmdEndRenderPass2 vkCmdEndRenderPass2Ptr
   pSubpassEndInfo <- ContT $ withCStruct (subpassEndInfo)
-  lift $ traceAroundEvent "vkCmdEndRenderPass2" (vkCmdEndRenderPass2' (commandBufferHandle (commandBuffer)) pSubpassEndInfo)
+  lift $ traceAroundEvent "vkCmdEndRenderPass2" (vkCmdEndRenderPass2' (commandBufferHandle (commandBuffer)) (forgetExtensions pSubpassEndInfo))
   pure $ ()
 
 
@@ -1229,6 +1230,39 @@
 --     contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'
 --
+-- -   #VUID-VkSubpassDescription2-linearColorAttachment-06499# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>
+--     feature is enabled and the image is created with
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', all
+--     attachments in @pInputAttachments@ that are not
+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image
+--     formats whose
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>
+--     /must/ contain
+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'
+--
+-- -   #VUID-VkSubpassDescription2-linearColorAttachment-06500# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>
+--     feature is enabled and the image is created with
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', all
+--     attachments in @pColorAttachments@ that are not
+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image
+--     formats whose
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>
+--     /must/ contain
+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'
+--
+-- -   #VUID-VkSubpassDescription2-linearColorAttachment-06501# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>
+--     feature is enabled and the image is created with
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', all
+--     attachments in @pResolveAttachments@ that are not
+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have image
+--     formats whose
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>
+--     /must/ contain
+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.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
@@ -2207,6 +2241,16 @@
 --
 -- == Valid Usage (Implicit)
 --
+-- -   #VUID-VkSubpassEndInfo-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBPASS_END_INFO'
+--
+-- -   #VUID-VkSubpassEndInfo-pNext-pNext# @pNext@ /must/ be @NULL@ or a
+--     pointer to a valid instance of
+--     'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.SubpassFragmentDensityMapOffsetEndInfoQCOM'
+--
+-- -   #VUID-VkSubpassEndInfo-sType-unique# The @sType@ value of each
+--     struct in the @pNext@ chain /must/ be unique
+--
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_create_renderpass2 VK_KHR_create_renderpass2>,
@@ -2215,38 +2259,47 @@
 -- 'Vulkan.Extensions.VK_KHR_create_renderpass2.cmdEndRenderPass2KHR',
 -- 'cmdNextSubpass2',
 -- 'Vulkan.Extensions.VK_KHR_create_renderpass2.cmdNextSubpass2KHR'
-data SubpassEndInfo = SubpassEndInfo
-  {}
-  deriving (Typeable, Eq)
+data SubpassEndInfo (es :: [Type]) = SubpassEndInfo
+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.
+    next :: Chain es }
+  deriving (Typeable)
 #if defined(GENERIC_INSTANCES)
-deriving instance Generic (SubpassEndInfo)
+deriving instance Generic (SubpassEndInfo (es :: [Type]))
 #endif
-deriving instance Show SubpassEndInfo
+deriving instance Show (Chain es) => Show (SubpassEndInfo es)
 
-instance ToCStruct SubpassEndInfo where
+instance Extensible SubpassEndInfo where
+  extensibleTypeName = "SubpassEndInfo"
+  setNext SubpassEndInfo{..} next' = SubpassEndInfo{next = next', ..}
+  getNext SubpassEndInfo{..} = next
+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends SubpassEndInfo e => b) -> Maybe b
+  extends _ f
+    | Just Refl <- eqT @e @SubpassFragmentDensityMapOffsetEndInfoQCOM = Just f
+    | otherwise = Nothing
+
+instance (Extendss SubpassEndInfo es, PokeChain es) => ToCStruct (SubpassEndInfo es) where
   withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)
-  pokeCStruct p SubpassEndInfo f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBPASS_END_INFO)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    f
+  pokeCStruct p SubpassEndInfo{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBPASS_END_INFO)
+    pNext'' <- fmap castPtr . ContT $ withChain (next)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''
+    lift $ f
   cStructSize = 16
   cStructAlignment = 8
-  pokeZeroCStruct p f = do
-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBPASS_END_INFO)
-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
-    f
-
-instance FromCStruct SubpassEndInfo where
-  peekCStruct _ = pure $ SubpassEndInfo
-                           
+  pokeZeroCStruct p f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBPASS_END_INFO)
+    pNext' <- fmap castPtr . ContT $ withZeroChain @es
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
+    lift $ f
 
-instance Storable SubpassEndInfo where
-  sizeOf ~_ = 16
-  alignment ~_ = 8
-  peek = peekCStruct
-  poke ptr poked = pokeCStruct ptr poked (pure ())
+instance (Extendss SubpassEndInfo es, PeekChain es) => FromCStruct (SubpassEndInfo es) where
+  peekCStruct p = do
+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))
+    next <- peekChain (castPtr pNext)
+    pure $ SubpassEndInfo
+             next
 
-instance Zero SubpassEndInfo where
+instance es ~ '[] => Zero (SubpassEndInfo es) where
   zero = SubpassEndInfo
-           
+           ()
 
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs-boot b/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs-boot
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs-boot
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs-boot
@@ -69,10 +69,11 @@
 instance (Extendss SubpassDescription2 es, PeekChain es) => FromCStruct (SubpassDescription2 es)
 
 
-data SubpassEndInfo
+type role SubpassEndInfo nominal
+data SubpassEndInfo (es :: [Type])
 
-instance ToCStruct SubpassEndInfo
-instance Show SubpassEndInfo
+instance (Extendss SubpassEndInfo es, PokeChain es) => ToCStruct (SubpassEndInfo es)
+instance Show (Chain es) => Show (SubpassEndInfo es)
 
-instance FromCStruct SubpassEndInfo
+instance (Extendss SubpassEndInfo es, PeekChain es) => FromCStruct (SubpassEndInfo es)
 
diff --git a/src/Vulkan/Dynamic.hs b/src/Vulkan/Dynamic.hs
--- a/src/Vulkan/Dynamic.hs
+++ b/src/Vulkan/Dynamic.hs
@@ -898,8 +898,8 @@
   , pVkCmdWriteBufferMarkerAMD :: FunPtr (Ptr CommandBuffer_T -> PipelineStageFlagBits -> ("dstBuffer" ::: Buffer) -> ("dstOffset" ::: DeviceSize) -> ("marker" ::: Word32) -> IO ())
   , pVkCreateRenderPass2 :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct RenderPassCreateInfo2)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pRenderPass" ::: Ptr RenderPass) -> IO Result)
   , pVkCmdBeginRenderPass2 :: FunPtr (Ptr CommandBuffer_T -> ("pRenderPassBegin" ::: Ptr (SomeStruct RenderPassBeginInfo)) -> ("pSubpassBeginInfo" ::: Ptr SubpassBeginInfo) -> IO ())
-  , pVkCmdNextSubpass2 :: FunPtr (Ptr CommandBuffer_T -> ("pSubpassBeginInfo" ::: Ptr SubpassBeginInfo) -> ("pSubpassEndInfo" ::: Ptr SubpassEndInfo) -> IO ())
-  , pVkCmdEndRenderPass2 :: FunPtr (Ptr CommandBuffer_T -> ("pSubpassEndInfo" ::: Ptr SubpassEndInfo) -> IO ())
+  , pVkCmdNextSubpass2 :: FunPtr (Ptr CommandBuffer_T -> ("pSubpassBeginInfo" ::: Ptr SubpassBeginInfo) -> ("pSubpassEndInfo" ::: Ptr (SomeStruct SubpassEndInfo)) -> IO ())
+  , pVkCmdEndRenderPass2 :: FunPtr (Ptr CommandBuffer_T -> ("pSubpassEndInfo" ::: Ptr (SomeStruct SubpassEndInfo)) -> IO ())
   , pVkGetSemaphoreCounterValue :: FunPtr (Ptr Device_T -> Semaphore -> ("pValue" ::: Ptr Word64) -> IO Result)
   , pVkWaitSemaphores :: FunPtr (Ptr Device_T -> ("pWaitInfo" ::: Ptr SemaphoreWaitInfo) -> ("timeout" ::: Word64) -> IO Result)
   , pVkSignalSemaphore :: FunPtr (Ptr Device_T -> ("pSignalInfo" ::: Ptr SemaphoreSignalInfo) -> IO Result)
@@ -1686,8 +1686,8 @@
     (castFunPtr @_ @(Ptr CommandBuffer_T -> PipelineStageFlagBits -> ("dstBuffer" ::: Buffer) -> ("dstOffset" ::: DeviceSize) -> ("marker" ::: Word32) -> IO ()) vkCmdWriteBufferMarkerAMD)
     (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct RenderPassCreateInfo2)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pRenderPass" ::: Ptr RenderPass) -> IO Result) vkCreateRenderPass2)
     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pRenderPassBegin" ::: Ptr (SomeStruct RenderPassBeginInfo)) -> ("pSubpassBeginInfo" ::: Ptr SubpassBeginInfo) -> IO ()) vkCmdBeginRenderPass2)
-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pSubpassBeginInfo" ::: Ptr SubpassBeginInfo) -> ("pSubpassEndInfo" ::: Ptr SubpassEndInfo) -> IO ()) vkCmdNextSubpass2)
-    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pSubpassEndInfo" ::: Ptr SubpassEndInfo) -> IO ()) vkCmdEndRenderPass2)
+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pSubpassBeginInfo" ::: Ptr SubpassBeginInfo) -> ("pSubpassEndInfo" ::: Ptr (SomeStruct SubpassEndInfo)) -> IO ()) vkCmdNextSubpass2)
+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pSubpassEndInfo" ::: Ptr (SomeStruct SubpassEndInfo)) -> IO ()) vkCmdEndRenderPass2)
     (castFunPtr @_ @(Ptr Device_T -> Semaphore -> ("pValue" ::: Ptr Word64) -> IO Result) vkGetSemaphoreCounterValue)
     (castFunPtr @_ @(Ptr Device_T -> ("pWaitInfo" ::: Ptr SemaphoreWaitInfo) -> ("timeout" ::: Word64) -> IO Result) vkWaitSemaphores)
     (castFunPtr @_ @(Ptr Device_T -> ("pSignalInfo" ::: Ptr SemaphoreSignalInfo) -> IO Result) vkSignalSemaphore)
diff --git a/src/Vulkan/Extensions.hs b/src/Vulkan/Extensions.hs
--- a/src/Vulkan/Extensions.hs
+++ b/src/Vulkan/Extensions.hs
@@ -121,6 +121,7 @@
                           , module Vulkan.Extensions.VK_GOOGLE_decorate_string
                           , module Vulkan.Extensions.VK_GOOGLE_display_timing
                           , module Vulkan.Extensions.VK_GOOGLE_hlsl_functionality1
+                          , module Vulkan.Extensions.VK_GOOGLE_surfaceless_query
                           , module Vulkan.Extensions.VK_GOOGLE_user_type
                           , module Vulkan.Extensions.VK_HUAWEI_invocation_mask
                           , module Vulkan.Extensions.VK_HUAWEI_subpass_shading
@@ -244,6 +245,7 @@
                           , module Vulkan.Extensions.VK_NV_geometry_shader_passthrough
                           , module Vulkan.Extensions.VK_NV_glsl_shader
                           , module Vulkan.Extensions.VK_NV_inherited_viewport_scissor
+                          , module Vulkan.Extensions.VK_NV_linear_color_attachment
                           , module Vulkan.Extensions.VK_NV_mesh_shader
                           , module Vulkan.Extensions.VK_NV_ray_tracing
                           , module Vulkan.Extensions.VK_NV_ray_tracing_motion_blur
@@ -257,6 +259,7 @@
                           , module Vulkan.Extensions.VK_NV_viewport_array2
                           , module Vulkan.Extensions.VK_NV_viewport_swizzle
                           , module Vulkan.Extensions.VK_NV_win32_keyed_mutex
+                          , module Vulkan.Extensions.VK_QCOM_fragment_density_map_offset
                           , module Vulkan.Extensions.VK_QCOM_render_pass_shader_resolve
                           , module Vulkan.Extensions.VK_QCOM_render_pass_store_ops
                           , module Vulkan.Extensions.VK_QCOM_render_pass_transform
@@ -385,6 +388,7 @@
 import Vulkan.Extensions.VK_GOOGLE_decorate_string
 import Vulkan.Extensions.VK_GOOGLE_display_timing
 import Vulkan.Extensions.VK_GOOGLE_hlsl_functionality1
+import Vulkan.Extensions.VK_GOOGLE_surfaceless_query
 import Vulkan.Extensions.VK_GOOGLE_user_type
 import Vulkan.Extensions.VK_HUAWEI_invocation_mask
 import Vulkan.Extensions.VK_HUAWEI_subpass_shading
@@ -508,6 +512,7 @@
 import Vulkan.Extensions.VK_NV_geometry_shader_passthrough
 import Vulkan.Extensions.VK_NV_glsl_shader
 import Vulkan.Extensions.VK_NV_inherited_viewport_scissor
+import Vulkan.Extensions.VK_NV_linear_color_attachment
 import Vulkan.Extensions.VK_NV_mesh_shader
 import Vulkan.Extensions.VK_NV_ray_tracing
 import Vulkan.Extensions.VK_NV_ray_tracing_motion_blur
@@ -521,6 +526,7 @@
 import Vulkan.Extensions.VK_NV_viewport_array2
 import Vulkan.Extensions.VK_NV_viewport_swizzle
 import Vulkan.Extensions.VK_NV_win32_keyed_mutex
+import Vulkan.Extensions.VK_QCOM_fragment_density_map_offset
 import Vulkan.Extensions.VK_QCOM_render_pass_shader_resolve
 import Vulkan.Extensions.VK_QCOM_render_pass_store_ops
 import Vulkan.Extensions.VK_QCOM_render_pass_transform
diff --git a/src/Vulkan/Extensions/Dependencies.hs b/src/Vulkan/Extensions/Dependencies.hs
--- a/src/Vulkan/Extensions/Dependencies.hs
+++ b/src/Vulkan/Extensions/Dependencies.hs
@@ -84,6 +84,7 @@
 import Vulkan.Extensions.VK_GGP_frame_token (pattern GGP_FRAME_TOKEN_EXTENSION_NAME)
 import Vulkan.Extensions.VK_GGP_stream_descriptor_surface (pattern GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME)
 import Vulkan.Extensions.VK_GOOGLE_display_timing (pattern GOOGLE_DISPLAY_TIMING_EXTENSION_NAME)
+import Vulkan.Extensions.VK_GOOGLE_surfaceless_query (pattern GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME)
 import Vulkan.Extensions.VK_HUAWEI_invocation_mask (pattern HUAWEI_INVOCATION_MASK_EXTENSION_NAME)
 import Vulkan.Extensions.VK_HUAWEI_subpass_shading (pattern HUAWEI_SUBPASS_SHADING_EXTENSION_NAME)
 import Vulkan.Extensions.VK_INTEL_shader_integer_functions2 (pattern INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME)
@@ -196,6 +197,7 @@
 import Vulkan.Extensions.VK_NV_shader_subgroup_partitioned (pattern NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME)
 import Vulkan.Extensions.VK_NV_shading_rate_image (pattern NV_SHADING_RATE_IMAGE_EXTENSION_NAME)
 import Vulkan.Extensions.VK_NV_win32_keyed_mutex (pattern NV_WIN32_KEYED_MUTEX_EXTENSION_NAME)
+import Vulkan.Extensions.VK_QCOM_fragment_density_map_offset (pattern QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME)
 import Vulkan.Extensions.VK_QCOM_render_pass_transform (pattern QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME)
 import Vulkan.Extensions.VK_QCOM_rotated_copy_commands (pattern QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME)
 import Vulkan.Extensions.VK_QNX_screen_surface (pattern QNX_SCREEN_SURFACE_EXTENSION_NAME)
@@ -608,6 +610,9 @@
   EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME -> [EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME]
   EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME ->
     [EXT_MEMORY_PRIORITY_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]
+  QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME ->
+    [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME]
+  GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]
   _ -> []
 
 -- | The minimum required API version to use this extension
diff --git a/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs b/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs
--- a/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs
+++ b/src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs
@@ -201,6 +201,9 @@
 --
 -- == Valid Usage
 --
+-- -   [[VUID-{refpage}-surface-06523]] @surface@ /must/ be a valid
+--     'Vulkan.Extensions.Handles.SurfaceKHR' handle
+--
 -- -   [[VUID-{refpage}-surface-06211]] @surface@ /must/ be supported by
 --     @physicalDevice@, as reported by
 --     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR'
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
@@ -385,9 +385,15 @@
 --
 -- == Valid Usage
 --
--- -   #VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-06210#
---     @pSurfaceInfo->surface@ /must/ be supported by @physicalDevice@, as
---     reported by
+-- -   #VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-06521#
+--     If the @VK_GOOGLE_surfaceless_query@ extension is not enabled,
+--     @pSurfaceInfo->surface@ /must/ be a valid
+--     'Vulkan.Extensions.Handles.SurfaceKHR' handle
+--
+-- -   #VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-06522#
+--     If @pSurfaceInfo->surface@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /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_hdr_metadata.hs b/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs
--- a/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs
+++ b/src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs
@@ -184,6 +184,14 @@
 
 -- | vkSetHdrMetadataEXT - Set Hdr metadata
 --
+-- = Description
+--
+-- The metadata will be applied to the specified
+-- 'Vulkan.Extensions.Handles.SwapchainKHR' objects at the next
+-- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR' call using that
+-- 'Vulkan.Extensions.Handles.SwapchainKHR' object. The metadata will
+-- persist until a subsequent 'setHdrMetadataEXT' changes it.
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkSetHdrMetadataEXT-device-parameter# @device@ /must/ be a
@@ -238,14 +246,20 @@
 
 -- | VkXYColorEXT - Specify X,Y chromaticity coordinates
 --
+-- = Description
+--
+-- Chromaticity coordinates are as specified in CIE 15:2004 “Calculation of
+-- chromaticity coordinates” (Section 7.3) and are limited to between 0 and
+-- 1 for real colors for the reference monitor.
+--
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_hdr_metadata VK_EXT_hdr_metadata>,
 -- 'HdrMetadataEXT'
 data XYColorEXT = XYColorEXT
-  { -- No documentation found for Nested "VkXYColorEXT" "x"
+  { -- | @x@ is the x chromaticity coordinate.
     x :: Float
-  , -- No documentation found for Nested "VkXYColorEXT" "y"
+  , -- | @y@ is the y chromaticity coordinate.
     y :: Float
   }
   deriving (Typeable, Eq)
@@ -300,17 +314,17 @@
 -- 'Vulkan.Core10.Enums.StructureType.StructureType', 'XYColorEXT',
 -- 'setHdrMetadataEXT'
 data HdrMetadataEXT = HdrMetadataEXT
-  { -- | @displayPrimaryRed@ is the reference monitor’s red primary in
-    -- chromaticity coordinates
+  { -- | @displayPrimaryRed@ is a 'XYColorEXT' structure specifying the reference
+    -- monitor’s red primary in chromaticity coordinates
     displayPrimaryRed :: XYColorEXT
-  , -- | @displayPrimaryGreen@ is the reference monitor’s green primary in
-    -- chromaticity coordinates
+  , -- | @displayPrimaryGreen@ is a 'XYColorEXT' structure specifying the
+    -- reference monitor’s green primary in chromaticity coordinates
     displayPrimaryGreen :: XYColorEXT
-  , -- | @displayPrimaryBlue@ is the reference monitor’s blue primary in
-    -- chromaticity coordinates
+  , -- | @displayPrimaryBlue@ is a 'XYColorEXT' structure specifying the
+    -- reference monitor’s blue primary in chromaticity coordinates
     displayPrimaryBlue :: XYColorEXT
-  , -- | @whitePoint@ is the reference monitor’s white-point in chromaticity
-    -- coordinates
+  , -- | @whitePoint@ is a 'XYColorEXT' structure specifying the reference
+    -- monitor’s white-point in chromaticity coordinates
     whitePoint :: XYColorEXT
   , -- | @maxLuminance@ is the maximum luminance of the reference monitor in nits
     maxLuminance :: Float
diff --git a/src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs b/src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs
--- a/src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs
+++ b/src/Vulkan/Extensions/VK_EXT_subgroup_size_control.hs
@@ -404,8 +404,6 @@
 -- specifying the required subgroup size of a newly created pipeline shader
 -- stage
 --
--- == Valid Usage
---
 -- = Description
 --
 -- If a 'PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT' structure is
@@ -421,7 +419,11 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_subgroup_size_control VK_EXT_subgroup_size_control>,
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT
-  { -- | #VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-requiredSubgroupSize-02760#
+  { -- | #pipelines-required-subgroup-size# @requiredSubgroupSize@ is an unsigned
+    -- integer value specifying the required subgroup size for the newly
+    -- created pipeline shader stage.
+    --
+    -- #VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-requiredSubgroupSize-02760#
     -- @requiredSubgroupSize@ /must/ be a power-of-two integer
     --
     -- #VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-requiredSubgroupSize-02761#
diff --git a/src/Vulkan/Extensions/VK_GOOGLE_surfaceless_query.hs b/src/Vulkan/Extensions/VK_GOOGLE_surfaceless_query.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_GOOGLE_surfaceless_query.hs
@@ -0,0 +1,115 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_GOOGLE_surfaceless_query - instance extension
+--
+-- == VK_GOOGLE_surfaceless_query
+--
+-- [__Name String__]
+--     @VK_GOOGLE_surfaceless_query@
+--
+-- [__Extension Type__]
+--     Instance extension
+--
+-- [__Registered Extension Number__]
+--     434
+--
+-- [__Revision__]
+--     1
+--
+-- [__Extension and Version Dependencies__]
+--
+--     -   Requires Vulkan 1.0
+--
+--     -   Requires @VK_KHR_surface@
+--
+-- [__Special Use__]
+--
+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse OpenGL \/ ES support>
+--
+-- [__Contact__]
+--
+--     -   Shahbaz Youssefi
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_GOOGLE_surfaceless_query] @syoussefi%0A<<Here describe the issue or question you have about the VK_GOOGLE_surfaceless_query extension>> >
+--
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_GOOGLE_surfaceless_query.asciidoc VK_GOOGLE_surfaceless_query>
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2021-12-14
+--
+-- [__IP Status__]
+--     No known IP claims.
+--
+-- [__Contributors__]
+--
+--     -   Ian Elliott, Google
+--
+--     -   Shahbaz Youssefi, Google
+--
+--     -   James Jones, NVIDIA
+--
+-- == Description
+--
+-- This extension allows the
+-- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceFormatsKHR'
+-- and
+-- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfacePresentModesKHR'
+-- functions to accept 'Vulkan.Core10.APIConstants.NULL_HANDLE' as their
+-- @surface@ parameter, allowing potential surface formats, colorspaces and
+-- present modes to be queried without providing a surface. Identically,
+-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceFormats2KHR'
+-- and
+-- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.getPhysicalDeviceSurfacePresentModes2EXT'
+-- would accept 'Vulkan.Core10.APIConstants.NULL_HANDLE' in
+-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.PhysicalDeviceSurfaceInfo2KHR'::@surface@.
+-- __This can only be supported on platforms where the results of these
+-- queries are surface-agnostic and a single presentation engine is the
+-- implicit target of all present operations__.
+--
+-- == New Enum Constants
+--
+-- -   'GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME'
+--
+-- -   'GOOGLE_SURFACELESS_QUERY_SPEC_VERSION'
+--
+-- == Version History
+--
+-- -   Revision 1, 2021-12-14 (Shahbaz Youssefi)
+--
+--     -   Internal revisions
+--
+-- == See Also
+--
+-- No cross-references are available
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_GOOGLE_surfaceless_query Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_GOOGLE_surfaceless_query  ( GOOGLE_SURFACELESS_QUERY_SPEC_VERSION
+                                                      , pattern GOOGLE_SURFACELESS_QUERY_SPEC_VERSION
+                                                      , GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME
+                                                      , pattern GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME
+                                                      ) where
+
+import Data.String (IsString)
+
+type GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION"
+pattern GOOGLE_SURFACELESS_QUERY_SPEC_VERSION :: forall a . Integral a => a
+pattern GOOGLE_SURFACELESS_QUERY_SPEC_VERSION = 1
+
+
+type GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME = "VK_GOOGLE_surfaceless_query"
+
+-- No documentation found for TopLevel "VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME"
+pattern GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME = "VK_GOOGLE_surfaceless_query"
+
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
@@ -938,6 +938,10 @@
 --
 -- = Members
 --
+-- This structure describes the following feature:
+--
+-- = Description
+--
 -- If the 'PhysicalDeviceSubpassShadingFeaturesHUAWEI' structure is
 -- included in the @pNext@ chain of the
 -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'
@@ -956,7 +960,8 @@
 -- 'Vulkan.Core10.FundamentalTypes.Bool32',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PhysicalDeviceSubpassShadingFeaturesHUAWEI = PhysicalDeviceSubpassShadingFeaturesHUAWEI
-  { -- No documentation found for Nested "VkPhysicalDeviceSubpassShadingFeaturesHUAWEI" "subpassShading"
+  { -- | #features-subpassShading# @subpassShading@ specifies whether subpass
+    -- shading is supported.
     subpassShading :: Bool }
   deriving (Typeable, Eq)
 #if defined(GENERIC_INSTANCES)
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
@@ -1273,6 +1273,7 @@
                                                                                    , FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR
                                                                                    , FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR
                                                                                    , FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR
+                                                                                   , FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV
                                                                                    , FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR
                                                                                    , FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT
                                                                                    , FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR
@@ -4571,7 +4572,7 @@
 -- -   For 'AccelerationStructureBuildGeometryInfoKHR':
 --
 --     -   Its @type@, and @flags@ members are equal to @pBuildInfo->type@
---         andm @pBuildInfo->flags@, respectively.
+--         and @pBuildInfo->flags@, respectively.
 --
 --     -   @geometryCount@ is less than or equal to
 --         @pBuildInfo->geometryCount@.
@@ -7579,6 +7580,13 @@
 --     that image views created with this format /can/ be used for depth
 --     comparison performed by @OpImage*Dref@ instructions.
 --
+-- -   'FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' specifies that the
+--     format is supported as a renderable
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary Linear Color Attachment>.
+--     This bit will be set for renderable color formats in the
+--     @linearTilingFeatures@. This /must/ not be set in the
+--     @optimalTilingFeatures@ or @bufferFeatures@ members.
+--
 -- The following bits /may/ be set in @bufferFeatures@, specifying that the
 -- features are supported by <VkBuffer.html buffers> or
 -- <VkBufferView.html buffer views> created with the queried
@@ -7805,6 +7813,13 @@
 -- image views created with this format /can/ be used for depth comparison
 -- performed by @OpImage*Dref@ instructions.
 pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR       = FormatFeatureFlagBits2KHR 0x0000000200000000
+-- | 'FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' specifies that the
+-- format is supported as a renderable
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary Linear Color Attachment>.
+-- This bit will be set for renderable color formats in the
+-- @linearTilingFeatures@. This /must/ not be set in the
+-- @optimalTilingFeatures@ or @bufferFeatures@ members.
+pattern FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV               = FormatFeatureFlagBits2KHR 0x0000004000000000
 -- | 'FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' specifies
 -- that an image view /can/ be used as a
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>.
@@ -7868,6 +7883,7 @@
   , (FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR         , "STORAGE_READ_WITHOUT_FORMAT_BIT_KHR")
   , (FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR        , "STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR")
   , (FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR      , "SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR")
+  , (FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV              , "LINEAR_COLOR_ATTACHMENT_BIT_NV")
   , (FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR    , "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR")
   , (FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT                , "FRAGMENT_DENSITY_MAP_BIT_EXT")
   , (FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR, "ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR")
diff --git a/src/Vulkan/Extensions/VK_KHR_copy_commands2.hs b/src/Vulkan/Extensions/VK_KHR_copy_commands2.hs
--- a/src/Vulkan/Extensions/VK_KHR_copy_commands2.hs
+++ b/src/Vulkan/Extensions/VK_KHR_copy_commands2.hs
@@ -3050,6 +3050,14 @@
 --     of @dstImage@ /must/ contain
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'
 --
+-- -   #VUID-VkResolveImageInfo2KHR-linearColorAttachment-06519# If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-linearColorAttachment linearColorAttachment>
+--     feature is enabled and the image is created with
+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR', the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
+--     of @dstImage@ /must/ contain
+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'
+--
 -- -   #VUID-VkResolveImageInfo2KHR-srcImage-01386# @srcImage@ and
 --     @dstImage@ /must/ have been created with the same image format
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs b/src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs
--- a/src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs
+++ b/src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs
@@ -588,13 +588,15 @@
 --
 -- == Valid Usage
 --
--- -   #VUID-VkPipelineRenderingCreateInfoKHR-pColorAttachmentFormats-06064#
+-- -   #VUID-VkPipelineRenderingCreateInfoKHR-pColorAttachmentFormats-06495#
 --     If any element of @pColorAttachmentFormats@ is not
 --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format
 --     with
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>
---     that include
+--     that includes either
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'
+--     or
+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'
 --
 -- -   #VUID-VkPipelineRenderingCreateInfoKHR-depthAttachmentFormat-06065#
 --     If @depthAttachmentFormat@ is not
@@ -1907,6 +1909,16 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>
 --     that include
 --     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT'
+--
+-- -   #VUID-VkCommandBufferInheritanceRenderingInfoKHR-pColorAttachmentFormats-06492#
+--     When rendering to a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary Linear Color attachment>,
+--     if any element of @pColorAttachmentFormats@ is not
+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED', it /must/ be a format
+--     with
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#potential-format-features potential format features>
+--     that include
+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'
 --
 -- -   #VUID-VkCommandBufferInheritanceRenderingInfoKHR-stencilAttachmentFormat-06199#
 --     If @stencilAttachmentFormat@ is not
diff --git a/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs b/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs
--- a/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs
+++ b/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs
@@ -30,6 +30,9 @@
 --     -   Tobias Hector
 --         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_fragment_shading_rate] @tobski%0A<<Here describe the issue or question you have about the VK_KHR_fragment_shading_rate extension>> >
 --
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_fragment_shading_rate.asciidoc VK_KHR_fragment_shading_rate>
+--
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
@@ -60,6 +63,8 @@
 --     -   Jan-Harald Fredriksen, Arm
 --
 --     -   Jeff Bolz, Nvidia
+--
+--     -   Arseny Kapoulkine, Roblox
 --
 --     -   Contributors to the VK_NV_shading_rate_image specification
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot b/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot
--- a/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot
+++ b/src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot
@@ -30,6 +30,9 @@
 --     -   Tobias Hector
 --         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_fragment_shading_rate] @tobski%0A<<Here describe the issue or question you have about the VK_KHR_fragment_shading_rate extension>> >
 --
+-- [__Extension Proposal__]
+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_fragment_shading_rate.asciidoc VK_KHR_fragment_shading_rate>
+--
 -- == Other Extension Metadata
 --
 -- [__Last Modified Date__]
@@ -60,6 +63,8 @@
 --     -   Jan-Harald Fredriksen, Arm
 --
 --     -   Jeff Bolz, Nvidia
+--
+--     -   Arseny Kapoulkine, Roblox
 --
 --     -   Contributors to the VK_NV_shading_rate_image specification
 --
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
@@ -262,6 +262,10 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06520#
+--     @pSurfaceInfo->surface@ /must/ be a valid
+--     'Vulkan.Extensions.Handles.SurfaceKHR' handle
+--
 -- -   #VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06210#
 --     @pSurfaceInfo->surface@ /must/ be supported by @physicalDevice@, as
 --     reported by
@@ -362,9 +366,15 @@
 --
 -- == Valid Usage
 --
--- -   #VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-06210#
---     @pSurfaceInfo->surface@ /must/ be supported by @physicalDevice@, as
---     reported by
+-- -   #VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-06521# If
+--     the @VK_GOOGLE_surfaceless_query@ extension is not enabled,
+--     @pSurfaceInfo->surface@ /must/ be a valid
+--     'Vulkan.Extensions.Handles.SurfaceKHR' handle
+--
+-- -   #VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-06522# If
+--     @pSurfaceInfo->surface@ is not
+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ be supported by
+--     @physicalDevice@, as reported by
 --     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR'
 --     or an equivalent platform-specific mechanism
 --
@@ -477,6 +487,32 @@
 --     'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveWin32InfoEXT'
 --     structure /must/ be included in the @pNext@ chain
 --
+-- -   #VUID-VkPhysicalDeviceSurfaceInfo2KHR-pSurfaceInfo-06526# When
+--     passed as the @pSurfaceInfo@ parameter of
+--     'getPhysicalDeviceSurfaceCapabilities2KHR', if the
+--     @VK_GOOGLE_surfaceless_query@ extension is enabled and the @pNext@
+--     chain of the @pSurfaceCapabilities@ parameter includes
+--     'Vulkan.Extensions.VK_KHR_surface_protected_capabilities.SurfaceProtectedCapabilitiesKHR',
+--     then @surface@ /can/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE'.
+--     Otherwise, @surface@ /must/ be a valid
+--     'Vulkan.Extensions.Handles.SurfaceKHR' handle
+--
+-- -   #VUID-VkPhysicalDeviceSurfaceInfo2KHR-pSurfaceInfo-06527# When
+--     passed as the @pSurfaceInfo@ parameter of
+--     'getPhysicalDeviceSurfaceFormats2KHR', if the
+--     @VK_GOOGLE_surfaceless_query@ extension is enabled, then @surface@
+--     /can/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE'. Otherwise,
+--     @surface@ /must/ be a valid 'Vulkan.Extensions.Handles.SurfaceKHR'
+--     handle
+--
+-- -   #VUID-VkPhysicalDeviceSurfaceInfo2KHR-pSurfaceInfo-06528# When
+--     passed as the @pSurfaceInfo@ parameter of
+--     'Vulkan.Extensions.VK_EXT_full_screen_exclusive.getPhysicalDeviceSurfacePresentModes2EXT',
+--     if the @VK_GOOGLE_surfaceless_query@ extension is enabled, then
+--     @surface@ /can/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE'.
+--     Otherwise, @surface@ /must/ be a valid
+--     'Vulkan.Extensions.Handles.SurfaceKHR' handle
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkPhysicalDeviceSurfaceInfo2KHR-sType-sType# @sType@ /must/ be
@@ -492,7 +528,8 @@
 -- -   #VUID-VkPhysicalDeviceSurfaceInfo2KHR-sType-unique# The @sType@
 --     value of each struct in the @pNext@ chain /must/ be unique
 --
--- -   #VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-parameter# @surface@
+-- -   #VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-parameter# If
+--     @surface@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @surface@
 --     /must/ be a valid 'Vulkan.Extensions.Handles.SurfaceKHR' handle
 --
 -- = See Also
@@ -540,7 +577,6 @@
     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR)
     pNext' <- fmap castPtr . ContT $ withZeroChain @es
     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'
-    lift $ poke ((p `plusPtr` 16 :: Ptr SurfaceKHR)) (zero)
     lift $ f
 
 instance (Extendss PhysicalDeviceSurfaceInfo2KHR es, PeekChain es) => FromCStruct (PhysicalDeviceSurfaceInfo2KHR es) where
diff --git a/src/Vulkan/Extensions/VK_KHR_multiview.hs b/src/Vulkan/Extensions/VK_KHR_multiview.hs
--- a/src/Vulkan/Extensions/VK_KHR_multiview.hs
+++ b/src/Vulkan/Extensions/VK_KHR_multiview.hs
@@ -49,7 +49,7 @@
 --         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_multiview.html SPV_KHR_multiview>
 --
 --     -   This extension provides API support for
---         <https://raw.githubusercontent.com/KhronosGroup/GLSL/master/extensions/ext/GL_EXT_multiview.txt GL_EXT_multiview>
+--         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_multiview.txt GL_EXT_multiview>
 --
 -- [__Contributors__]
 --
@@ -76,7 +76,7 @@
 -- shader extension, which adds a new @ViewIndex@ built-in type that allows
 -- shaders to control what to do for each view. If using GLSL there is also
 -- the
--- <https://raw.githubusercontent.com/KhronosGroup/GLSL/master/extensions/ext/GL_EXT_multiview.txt GL_EXT_multiview>
+-- <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_multiview.txt GL_EXT_multiview>
 -- extension that introduces a @highp int gl_ViewIndex;@ built-in variable
 -- for vertex, tessellation, geometry, and fragment shaders.
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs b/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs
--- a/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs
+++ b/src/Vulkan/Extensions/VK_KHR_push_descriptor.hs
@@ -261,6 +261,16 @@
 --     layout that was created with
 --     'Vulkan.Core10.Enums.DescriptorSetLayoutCreateFlagBits.DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR'
 --
+-- -   #VUID-vkCmdPushDescriptorSetKHR-pDescriptorWrites-06494# For each
+--     element i where @pDescriptorWrites@[i].@descriptorType@ is
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE',
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE',
+--     or
+--     'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT',
+--     @pDescriptorWrites@[i].@pImageInfo@ /must/ be a valid pointer to an
+--     array of @pDescriptorWrites@[i].@descriptorCount@ valid
+--     'Vulkan.Core10.DescriptorSet.DescriptorImageInfo' structures
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkCmdPushDescriptorSetKHR-commandBuffer-parameter#
diff --git a/src/Vulkan/Extensions/VK_KHR_shader_atomic_int64.hs b/src/Vulkan/Extensions/VK_KHR_shader_atomic_int64.hs
--- a/src/Vulkan/Extensions/VK_KHR_shader_atomic_int64.hs
+++ b/src/Vulkan/Extensions/VK_KHR_shader_atomic_int64.hs
@@ -42,11 +42,10 @@
 --
 --     -   Promoted to Vulkan 1.2 Core
 --
---     -   This extension enables
+--     -   This extension provides API support for
 --         <https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_gpu_shader_int64.txt GL_ARB_gpu_shader_int64>
 --         and
---         <https://raw.githubusercontent.com/KhronosGroup/GLSL/master/extensions/ext/GL_EXT_shader_atomic_int64.txt GL_EXT_shader_atomic_int64>
---         for GLSL source languages.
+--         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/ext/GL_EXT_shader_atomic_int64.txt GL_EXT_shader_atomic_int64>
 --
 -- [__Contributors__]
 --
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
@@ -675,6 +675,10 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-06523#
+--     @surface@ /must/ be a valid 'Vulkan.Extensions.Handles.SurfaceKHR'
+--     handle
+--
 -- -   #VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-06211#
 --     @surface@ /must/ be supported by @physicalDevice@, as reported by
 --     'getPhysicalDeviceSurfaceSupportKHR' or an equivalent
@@ -776,10 +780,20 @@
 -- @colorSpace@ and @format@ equal to the corresponding SRGB (or UNORM)
 -- format.
 --
+-- If the @VK_GOOGLE_surfaceless_query@ extension is enabled, the values
+-- returned in @pSurfaceFormats@ will be identical for every valid surface
+-- created on this physical device, and so @surface@ /can/ be
+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'.
+--
 -- == Valid Usage
 --
--- -   #VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-06211# @surface@
---     /must/ be supported by @physicalDevice@, as reported by
+-- -   #VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-06524# If the
+--     @VK_GOOGLE_surfaceless_query@ extension is not enabled, @surface@
+--     /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
 --     'getPhysicalDeviceSurfaceSupportKHR' or an equivalent
 --     platform-specific mechanism
 --
@@ -789,9 +803,9 @@
 --     @physicalDevice@ /must/ be a valid
 --     'Vulkan.Core10.Handles.PhysicalDevice' handle
 --
--- -   #VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-parameter#
---     @surface@ /must/ be a valid 'Vulkan.Extensions.Handles.SurfaceKHR'
---     handle
+-- -   #VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-parameter# If
+--     @surface@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @surface@
+--     /must/ be a valid 'Vulkan.Extensions.Handles.SurfaceKHR' handle
 --
 -- -   #VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-pSurfaceFormatCount-parameter#
 --     @pSurfaceFormatCount@ /must/ be a valid pointer to a @uint32_t@
@@ -804,8 +818,9 @@
 --     structures
 --
 -- -   #VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-commonparent# Both of
---     @physicalDevice@, and @surface@ /must/ have been created, allocated,
---     or retrieved from the same 'Vulkan.Core10.Handles.Instance'
+--     @physicalDevice@, and @surface@ that are valid handles of
+--     non-ignored parameters /must/ have been created, allocated, or
+--     retrieved from the same 'Vulkan.Core10.Handles.Instance'
 --
 -- == Return Codes
 --
@@ -880,10 +895,21 @@
 -- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the
 -- available modes were returned.
 --
+-- If the @VK_GOOGLE_surfaceless_query@ extension is enabled, the values
+-- returned in @pPresentModes@ will be identical for every valid surface
+-- created on this physical device, and so @surface@ /can/ be
+-- 'Vulkan.Core10.APIConstants.NULL_HANDLE'.
+--
 -- == Valid Usage
 --
--- -   #VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06211#
---     @surface@ /must/ be supported by @physicalDevice@, as reported by
+-- -   #VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06524# If
+--     the @VK_GOOGLE_surfaceless_query@ extension is not enabled,
+--     @surface@ /must/ be a valid 'Vulkan.Extensions.Handles.SurfaceKHR'
+--     handle
+--
+-- -   #VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06525# If
+--     @surface@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/
+--     be supported by @physicalDevice@, as reported by
 --     'getPhysicalDeviceSurfaceSupportKHR' or an equivalent
 --     platform-specific mechanism
 --
@@ -894,6 +920,7 @@
 --     'Vulkan.Core10.Handles.PhysicalDevice' handle
 --
 -- -   #VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-parameter#
+--     If @surface@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',
 --     @surface@ /must/ be a valid 'Vulkan.Extensions.Handles.SurfaceKHR'
 --     handle
 --
@@ -906,9 +933,9 @@
 --     pointer to an array of @pPresentModeCount@ 'PresentModeKHR' values
 --
 -- -   #VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-commonparent# Both
---     of @physicalDevice@, and @surface@ /must/ have been created,
---     allocated, or retrieved from the same
---     'Vulkan.Core10.Handles.Instance'
+--     of @physicalDevice@, and @surface@ that are valid handles of
+--     non-ignored parameters /must/ have been created, allocated, or
+--     retrieved from the same 'Vulkan.Core10.Handles.Instance'
 --
 -- == Return Codes
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs b/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs
--- a/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs
+++ b/src/Vulkan/Extensions/VK_KHR_surface_protected_capabilities.hs
@@ -139,6 +139,19 @@
 -- | VkSurfaceProtectedCapabilitiesKHR - Structure describing capability of a
 -- surface to be protected
 --
+-- = Description
+--
+-- If the @VK_GOOGLE_surfaceless_query@ extension is enabled, the value
+-- returned in @supportsProtected@ will be identical for every valid
+-- surface created on this physical device, and so in the
+-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.getPhysicalDeviceSurfaceCapabilities2KHR'
+-- call,
+-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.PhysicalDeviceSurfaceInfo2KHR'::@surface@
+-- /can/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE'. In that case, the
+-- contents of
+-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceCapabilities2KHR'::@surfaceCapabilities@
+-- as well as any other struct chained to it will be undefined.
+--
 -- == Valid Usage (Implicit)
 --
 -- = See Also
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
@@ -2242,6 +2242,10 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-06523#
+--     @surface@ /must/ be a valid 'Vulkan.Extensions.Handles.SurfaceKHR'
+--     handle
+--
 -- -   #VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-06211#
 --     @surface@ /must/ be supported by @physicalDevice@, as reported by
 --     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR'
diff --git a/src/Vulkan/Extensions/VK_KHR_synchronization2.hs b/src/Vulkan/Extensions/VK_KHR_synchronization2.hs
--- a/src/Vulkan/Extensions/VK_KHR_synchronization2.hs
+++ b/src/Vulkan/Extensions/VK_KHR_synchronization2.hs
@@ -1041,7 +1041,7 @@
 -- dependencies according to the elements of @pDependencyInfos@ and each
 -- corresponding element of @pEvents@. 'cmdWaitEvents2KHR' /must/ not be
 -- used to wait on event signal operations occurring on other queues, or
--- signal operations execyted by
+-- signal operations executed by
 -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent'.
 --
 -- The first
@@ -1814,8 +1814,8 @@
 --
 -- -   #VUID-vkCmdWriteTimestamp2KHR-commandBuffer-cmdpool# The
 --     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was
---     allocated from /must/ support transfer, graphics, or compute
---     operations
+--     allocated from /must/ support transfer, graphics, compute, decode,
+--     or encode operations
 --
 -- -   #VUID-vkCmdWriteTimestamp2KHR-commonparent# Both of @commandBuffer@,
 --     and @queryPool@ /must/ have been created, allocated, or retrieved
@@ -1838,6 +1838,8 @@
 -- | Primary                                                                                                                    | Both                                                                                                                   | Transfer                                                                                                              |
 -- | Secondary                                                                                                                  |                                                                                                                        | Graphics                                                                                                              |
 -- |                                                                                                                            |                                                                                                                        | Compute                                                                                                               |
+-- |                                                                                                                            |                                                                                                                        | Decode                                                                                                                |
+-- |                                                                                                                            |                                                                                                                        | Encode                                                                                                                |
 -- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+
 --
 -- = See Also
diff --git a/src/Vulkan/Extensions/VK_NVX_binary_import.hs b/src/Vulkan/Extensions/VK_NVX_binary_import.hs
--- a/src/Vulkan/Extensions/VK_NVX_binary_import.hs
+++ b/src/Vulkan/Extensions/VK_NVX_binary_import.hs
@@ -375,17 +375,13 @@
 -- -   #VUID-VkCuLaunchInfoNVX-function-parameter# @function@ /must/ be a
 --     valid 'Vulkan.Extensions.Handles.CuFunctionNVX' handle
 --
--- -   #VUID-VkCuLaunchInfoNVX-pParams-parameter# @pParams@ /must/ be a
---     valid pointer to an array of @paramCount@ bytes
---
--- -   #VUID-VkCuLaunchInfoNVX-pExtras-parameter# @pExtras@ /must/ be a
---     valid pointer to an array of @extraCount@ bytes
---
--- -   #VUID-VkCuLaunchInfoNVX-paramCount-arraylength# @paramCount@ /must/
---     be greater than @0@
+-- -   #VUID-VkCuLaunchInfoNVX-pParams-parameter# If @paramCount@ is not
+--     @0@, @pParams@ /must/ be a valid pointer to an array of @paramCount@
+--     bytes
 --
--- -   #VUID-VkCuLaunchInfoNVX-extraCount-arraylength# @extraCount@ /must/
---     be greater than @0@
+-- -   #VUID-VkCuLaunchInfoNVX-pExtras-parameter# If @extraCount@ is not
+--     @0@, @pExtras@ /must/ be a valid pointer to an array of @extraCount@
+--     bytes
 --
 -- == Version History
 --
@@ -950,6 +946,22 @@
 --
 -- == Valid Usage (Implicit)
 --
+-- -   #VUID-VkCuLaunchInfoNVX-sType-sType# @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX'
+--
+-- -   #VUID-VkCuLaunchInfoNVX-pNext-pNext# @pNext@ /must/ be @NULL@
+--
+-- -   #VUID-VkCuLaunchInfoNVX-function-parameter# @function@ /must/ be a
+--     valid 'Vulkan.Extensions.Handles.CuFunctionNVX' handle
+--
+-- -   #VUID-VkCuLaunchInfoNVX-pParams-parameter# If @paramCount@ is not
+--     @0@, @pParams@ /must/ be a valid pointer to an array of @paramCount@
+--     bytes
+--
+-- -   #VUID-VkCuLaunchInfoNVX-pExtras-parameter# If @extraCount@ is not
+--     @0@, @pExtras@ /must/ be a valid pointer to an array of @extraCount@
+--     bytes
+--
 -- = See Also
 --
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NVX_binary_import VK_NVX_binary_import>,
@@ -957,8 +969,7 @@
 -- 'Vulkan.Core10.Enums.StructureType.StructureType',
 -- 'cmdCuLaunchKernelNVX'
 data CuLaunchInfoNVX = CuLaunchInfoNVX
-  { -- | #VUID-VkCuLaunchInfoNVX-function-parameter# @function@ /must/ be a valid
-    -- 'Vulkan.Extensions.Handles.CuFunctionNVX' handle
+  { -- No documentation found for Nested "VkCuLaunchInfoNVX" "function"
     function :: CuFunctionNVX
   , -- No documentation found for Nested "VkCuLaunchInfoNVX" "gridDimX"
     gridDimX :: Word32
@@ -974,11 +985,9 @@
     blockDimZ :: Word32
   , -- No documentation found for Nested "VkCuLaunchInfoNVX" "sharedMemBytes"
     sharedMemBytes :: Word32
-  , -- | #VUID-VkCuLaunchInfoNVX-pParams-parameter# @pParams@ /must/ be a valid
-    -- pointer to an array of @paramCount@ bytes
+  , -- No documentation found for Nested "VkCuLaunchInfoNVX" "pParams"
     params :: Vector (Ptr ())
-  , -- | #VUID-VkCuLaunchInfoNVX-pExtras-parameter# @pExtras@ /must/ be a valid
-    -- pointer to an array of @extraCount@ bytes
+  , -- No documentation found for Nested "VkCuLaunchInfoNVX" "pExtras"
     extras :: Vector (Ptr ())
   }
   deriving (Typeable)
diff --git a/src/Vulkan/Extensions/VK_NVX_binary_import.hs-boot b/src/Vulkan/Extensions/VK_NVX_binary_import.hs-boot
--- a/src/Vulkan/Extensions/VK_NVX_binary_import.hs-boot
+++ b/src/Vulkan/Extensions/VK_NVX_binary_import.hs-boot
@@ -375,17 +375,13 @@
 -- -   #VUID-VkCuLaunchInfoNVX-function-parameter# @function@ /must/ be a
 --     valid 'Vulkan.Extensions.Handles.CuFunctionNVX' handle
 --
--- -   #VUID-VkCuLaunchInfoNVX-pParams-parameter# @pParams@ /must/ be a
---     valid pointer to an array of @paramCount@ bytes
---
--- -   #VUID-VkCuLaunchInfoNVX-pExtras-parameter# @pExtras@ /must/ be a
---     valid pointer to an array of @extraCount@ bytes
---
--- -   #VUID-VkCuLaunchInfoNVX-paramCount-arraylength# @paramCount@ /must/
---     be greater than @0@
+-- -   #VUID-VkCuLaunchInfoNVX-pParams-parameter# If @paramCount@ is not
+--     @0@, @pParams@ /must/ be a valid pointer to an array of @paramCount@
+--     bytes
 --
--- -   #VUID-VkCuLaunchInfoNVX-extraCount-arraylength# @extraCount@ /must/
---     be greater than @0@
+-- -   #VUID-VkCuLaunchInfoNVX-pExtras-parameter# If @extraCount@ is not
+--     @0@, @pExtras@ /must/ be a valid pointer to an array of @extraCount@
+--     bytes
 --
 -- == Version History
 --
diff --git a/src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs b/src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs
@@ -0,0 +1,233 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_NV_linear_color_attachment - device extension
+--
+-- == VK_NV_linear_color_attachment
+--
+-- [__Name String__]
+--     @VK_NV_linear_color_attachment@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     431
+--
+-- [__Revision__]
+--     1
+--
+-- [__Extension and Version Dependencies__]
+--
+--     -   Requires Vulkan 1.0
+--
+-- [__Contact__]
+--
+--     -   sourav parmar
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_linear_color_attachment] @souravpNV%0A<<Here describe the issue or question you have about the VK_NV_linear_color_attachment extension>> >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2021-12-02
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   This extension requires
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+--
+-- [__Contributors__]
+--
+--     -   Pat Brown, NVIDIA
+--
+--     -   Piers Daniell, NVIDIA
+--
+--     -   Sourav Parmar, NVIDIA
+--
+-- == Description
+--
+-- This extension expands support for using
+-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' images as color
+-- attachments when all the color attachments in the render pass instance
+-- have 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' tiling. This
+-- extension adds a new flag bit
+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'
+-- that extends the existing
+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'
+-- bits. This flag /can/ be set for renderable color formats in the
+-- 'Vulkan.Extensions.VK_KHR_format_feature_flags2.FormatProperties3KHR'::@linearTilingFeatures@
+-- format properties structure member. Formats with the
+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'
+-- flag /may/ be used as color attachments as long as all the color
+-- attachments in the render pass instance have
+-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' tiling, and the
+-- formats their images views are created with have
+-- 'Vulkan.Extensions.VK_KHR_format_feature_flags2.FormatProperties3KHR'::@linearTilingFeatures@
+-- which include
+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'.
+-- This extension supports both dynamic rendering and traditional render
+-- passes.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceLinearColorAttachmentFeaturesNV'
+--
+-- == New Enum Constants
+--
+-- -   'NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME'
+--
+-- -   'NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'
+--
+-- == Version History
+--
+-- -   Revision 1, 2021-11-29 (sourav parmar)
+--
+--     -   Initial draft
+--
+-- == See Also
+--
+-- 'PhysicalDeviceLinearColorAttachmentFeaturesNV'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_linear_color_attachment Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_NV_linear_color_attachment  ( PhysicalDeviceLinearColorAttachmentFeaturesNV(..)
+                                                        , NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION
+                                                        , pattern NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION
+                                                        , NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME
+                                                        , pattern NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME
+                                                        , FormatFeatureFlagBits2KHR(..)
+                                                        , FormatFeatureFlags2KHR
+                                                        , Flags64
+                                                        ) where
+
+import Foreign.Marshal.Alloc (allocaBytes)
+import Foreign.Ptr (nullPtr)
+import Foreign.Ptr (plusPtr)
+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.Kind (Type)
+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_LINEAR_COLOR_ATTACHMENT_FEATURES_NV))
+import Vulkan.Core10.FundamentalTypes (Flags64)
+import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlagBits2KHR(..))
+import Vulkan.Extensions.VK_KHR_acceleration_structure (FormatFeatureFlags2KHR)
+-- | VkPhysicalDeviceLinearColorAttachmentFeaturesNV - Structure describing
+-- whether
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary Linear Color Attachment>
+-- rendering is supported by the implementation
+--
+-- = Members
+--
+-- This structure describes the following features:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceLinearColorAttachmentFeaturesNV' 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. 'PhysicalDeviceLinearColorAttachmentFeaturesNV' /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_NV_linear_color_attachment VK_NV_linear_color_attachment>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceLinearColorAttachmentFeaturesNV = PhysicalDeviceLinearColorAttachmentFeaturesNV
+  { -- | #features-linearColorAttachment# @linearColorAttachment@ indicates
+    -- whether the implementation supports renderable
+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#glossary Linear Color Attachment>
+    linearColorAttachment :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceLinearColorAttachmentFeaturesNV)
+#endif
+deriving instance Show PhysicalDeviceLinearColorAttachmentFeaturesNV
+
+instance ToCStruct PhysicalDeviceLinearColorAttachmentFeaturesNV where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceLinearColorAttachmentFeaturesNV{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (linearColorAttachment))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceLinearColorAttachmentFeaturesNV where
+  peekCStruct p = do
+    linearColorAttachment <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceLinearColorAttachmentFeaturesNV
+             (bool32ToBool linearColorAttachment)
+
+instance Storable PhysicalDeviceLinearColorAttachmentFeaturesNV where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceLinearColorAttachmentFeaturesNV where
+  zero = PhysicalDeviceLinearColorAttachmentFeaturesNV
+           zero
+
+
+type NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION"
+pattern NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION :: forall a . Integral a => a
+pattern NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION = 1
+
+
+type NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME = "VK_NV_linear_color_attachment"
+
+-- No documentation found for TopLevel "VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME"
+pattern NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME = "VK_NV_linear_color_attachment"
+
diff --git a/src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs-boot b/src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_NV_linear_color_attachment.hs-boot
@@ -0,0 +1,127 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_NV_linear_color_attachment - device extension
+--
+-- == VK_NV_linear_color_attachment
+--
+-- [__Name String__]
+--     @VK_NV_linear_color_attachment@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     431
+--
+-- [__Revision__]
+--     1
+--
+-- [__Extension and Version Dependencies__]
+--
+--     -   Requires Vulkan 1.0
+--
+-- [__Contact__]
+--
+--     -   sourav parmar
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_linear_color_attachment] @souravpNV%0A<<Here describe the issue or question you have about the VK_NV_linear_color_attachment extension>> >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2021-12-02
+--
+-- [__Interactions and External Dependencies__]
+--
+--     -   This extension requires
+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+--
+-- [__Contributors__]
+--
+--     -   Pat Brown, NVIDIA
+--
+--     -   Piers Daniell, NVIDIA
+--
+--     -   Sourav Parmar, NVIDIA
+--
+-- == Description
+--
+-- This extension expands support for using
+-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' images as color
+-- attachments when all the color attachments in the render pass instance
+-- have 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' tiling. This
+-- extension adds a new flag bit
+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'
+-- that extends the existing
+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR'
+-- bits. This flag /can/ be set for renderable color formats in the
+-- 'Vulkan.Extensions.VK_KHR_format_feature_flags2.FormatProperties3KHR'::@linearTilingFeatures@
+-- format properties structure member. Formats with the
+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'
+-- flag /may/ be used as color attachments as long as all the color
+-- attachments in the render pass instance have
+-- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' tiling, and the
+-- formats their images views are created with have
+-- 'Vulkan.Extensions.VK_KHR_format_feature_flags2.FormatProperties3KHR'::@linearTilingFeatures@
+-- which include
+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'.
+-- This extension supports both dynamic rendering and traditional render
+-- passes.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceLinearColorAttachmentFeaturesNV'
+--
+-- == New Enum Constants
+--
+-- -   'NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME'
+--
+-- -   'NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV'
+--
+-- If
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_format_feature_flags2 VK_KHR_format_feature_flags2>
+-- is supported:
+--
+-- -   Extending
+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.FormatFeatureFlagBits2KHR':
+--
+--     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV'
+--
+-- == Version History
+--
+-- -   Revision 1, 2021-11-29 (sourav parmar)
+--
+--     -   Initial draft
+--
+-- == See Also
+--
+-- 'PhysicalDeviceLinearColorAttachmentFeaturesNV'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_linear_color_attachment Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_NV_linear_color_attachment  (PhysicalDeviceLinearColorAttachmentFeaturesNV) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDeviceLinearColorAttachmentFeaturesNV
+
+instance ToCStruct PhysicalDeviceLinearColorAttachmentFeaturesNV
+instance Show PhysicalDeviceLinearColorAttachmentFeaturesNV
+
+instance FromCStruct PhysicalDeviceLinearColorAttachmentFeaturesNV
+
diff --git a/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs b/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs
--- a/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs
+++ b/src/Vulkan/Extensions/VK_NV_shading_rate_image.hs
@@ -1115,6 +1115,11 @@
 --
 -- = Description
 --
+-- The 'CoarseSampleOrderCustomNV' structure is used with a coverage sample
+-- ordering type of 'COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV' to specify the
+-- order of coverage samples for one combination of fragment width,
+-- fragment height, and coverage sample count.
+--
 -- When using a custom sample ordering, element /j/ in @pSampleLocations@
 -- specifies a specific pixel location and
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index>
diff --git a/src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs b/src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs
@@ -0,0 +1,452 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_QCOM_fragment_density_map_offset - device extension
+--
+-- == VK_QCOM_fragment_density_map_offset
+--
+-- [__Name String__]
+--     @VK_QCOM_fragment_density_map_offset@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     426
+--
+-- [__Revision__]
+--     1
+--
+-- [__Extension and Version Dependencies__]
+--
+--     -   Requires Vulkan 1.0
+--
+--     -   Requires @VK_KHR_get_physical_device_properties2@
+--
+--     -   Requires @VK_EXT_fragment_density_map@
+--
+-- [__Contact__]
+--
+--     -   Matthew Netsch
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_QCOM_fragment_density_map_offset] @mnetsch%0A<<Here describe the issue or question you have about the VK_QCOM_fragment_density_map_offset extension>> >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2021-09-03
+--
+-- [__Contributors__]
+--
+--     -   Matthew Netsch, Qualcomm Technologies, Inc.
+--
+--     -   Jonathan Wicks, Qualcomm Technologies, Inc.
+--
+--     -   Jonathan Tinkham, Qualcomm Technologies, Inc.
+--
+--     -   Jeff Leger, Qualcomm Technologies, Inc.
+--
+-- == Description
+--
+-- This extension allows an application to specify offsets to a fragment
+-- density map attachment, changing the framebuffer location where density
+-- values are applied to without having to regenerate the fragment density
+-- map.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM'
+--
+-- -   Extending
+--     'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassEndInfo':
+--
+--     -   'SubpassFragmentDensityMapOffsetEndInfoQCOM'
+--
+-- == New Enum Constants
+--
+-- -   'QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME'
+--
+-- -   'QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION'
+--
+-- -   Extending
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM'
+--
+-- == Version History
+--
+-- -   Revision 1, 2021-09-03 (Matthew Netsch)
+--
+--     -   Initial version
+--
+-- == See Also
+--
+-- 'PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM',
+-- 'PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM',
+-- 'SubpassFragmentDensityMapOffsetEndInfoQCOM'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_fragment_density_map_offset Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_QCOM_fragment_density_map_offset  ( PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM(..)
+                                                              , PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM(..)
+                                                              , SubpassFragmentDensityMapOffsetEndInfoQCOM(..)
+                                                              , QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION
+                                                              , pattern QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION
+                                                              , QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME
+                                                              , pattern QCOM_FRAGMENT_DENSITY_MAP_OFFSET_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 (Offset2D)
+import Vulkan.Core10.Enums.StructureType (StructureType)
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM))
+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM))
+-- | VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM - Structure
+-- describing fragment density map offet features that can be supported by
+-- an implementation
+--
+-- = Members
+--
+-- This structure describes the following features:
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM' 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. 'PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM' /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_QCOM_fragment_density_map_offset VK_QCOM_fragment_density_map_offset>,
+-- 'Vulkan.Core10.FundamentalTypes.Bool32',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM = PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM
+  { -- No documentation found for Nested "VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM" "fragmentDensityMapOffset"
+    fragmentDensityMapOffset :: Bool }
+  deriving (Typeable, Eq)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM)
+#endif
+deriving instance Show PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM
+
+instance ToCStruct PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (fragmentDensityMapOffset))
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))
+    f
+
+instance FromCStruct PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM where
+  peekCStruct p = do
+    fragmentDensityMapOffset <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))
+    pure $ PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM
+             (bool32ToBool fragmentDensityMapOffset)
+
+instance Storable PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM where
+  zero = PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM
+           zero
+
+
+-- | VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM - Structure
+-- describing fragment density map offset properties that can be supported
+-- by an implementation
+--
+-- = Description
+--
+-- If the 'PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM' 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_QCOM_fragment_density_map_offset VK_QCOM_fragment_density_map_offset>,
+-- 'Vulkan.Core10.FundamentalTypes.Extent2D',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM = PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM
+  { -- | #limits-fragmentdensityoffsetgranularity#
+    -- @fragmentDensityOffsetGranularity@ is the granularity for
+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsets fragment density offsets>.
+    fragmentDensityOffsetGranularity :: Extent2D }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM)
+#endif
+deriving instance Show PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM
+
+instance ToCStruct PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM where
+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM{..} f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Extent2D)) (fragmentDensityOffsetGranularity)
+    f
+  cStructSize = 24
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    poke ((p `plusPtr` 16 :: Ptr Extent2D)) (zero)
+    f
+
+instance FromCStruct PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM where
+  peekCStruct p = do
+    fragmentDensityOffsetGranularity <- peekCStruct @Extent2D ((p `plusPtr` 16 :: Ptr Extent2D))
+    pure $ PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM
+             fragmentDensityOffsetGranularity
+
+instance Storable PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM where
+  sizeOf ~_ = 24
+  alignment ~_ = 8
+  peek = peekCStruct
+  poke ptr poked = pokeCStruct ptr poked (pure ())
+
+instance Zero PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM where
+  zero = PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM
+           zero
+
+
+-- | VkSubpassFragmentDensityMapOffsetEndInfoQCOM - Structure specifying
+-- fragment density map offset subpass end information
+--
+-- = Description
+--
+-- The array elements are given per @layer@ as defined by
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymap-fetch-density-value Fetch Density Value>,
+-- where index = layer. Each (x,y) offset is in framebuffer pixels and
+-- shifts the fetch of the fragment density map by that amount. Offsets can
+-- be positive or negative.
+--
+-- Offset values specified for any subpass that is not the last subpass in
+-- the render pass are ignored. If the
+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassEndInfo'::@pNext@
+-- chain for the last subpass of a renderpass does not include
+-- 'SubpassFragmentDensityMapOffsetEndInfoQCOM', or if
+-- @fragmentDensityOffsetCount@ is zero, then the offset (0,0) is used for
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymap-fetch-density-value Fetch Density Value>.
+--
+-- == Valid Usage
+--
+-- -   #VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityMapOffsets-06503#
+--     If the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapOffsets fragmentDensityMapOffsets>
+--     feature is not enabled or fragment density map is not enabled in the
+--     render pass, @fragmentDensityOffsetCount@ /must/ equal @0@.
+--
+-- -   #VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityMapAttachment-06504#
+--     If
+--     'Vulkan.Core10.Pass.SubpassDescription'::@fragmentDensityMapAttachment@
+--     is not is not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' and was
+--     not created with
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM',
+--     @fragmentDensityOffsetCount@ /must/ equal @0@.
+--
+-- -   #VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pDepthStencilAttachment-06505#
+--     If
+--     'Vulkan.Core10.Pass.SubpassDescription'::@pDepthStencilAttachment@
+--     is not is not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' and was
+--     not created with
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM',
+--     @fragmentDensityOffsetCount@ /must/ equal @0@.
+--
+-- -   #VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pInputAttachments-06506#
+--     If any element of
+--     'Vulkan.Core10.Pass.SubpassDescription'::@pInputAttachments@ is not
+--     is not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' and was not
+--     created with
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM',
+--     @fragmentDensityOffsetCount@ /must/ equal @0@.
+--
+-- -   #VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pColorAttachments-06507#
+--     If any element of
+--     'Vulkan.Core10.Pass.SubpassDescription'::@pColorAttachments@ is not
+--     is not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' and was not
+--     created with
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM',
+--     @fragmentDensityOffsetCount@ /must/ equal @0@.
+--
+-- -   #VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pResolveAttachments-06508#
+--     If any element of
+--     'Vulkan.Core10.Pass.SubpassDescription'::@pResolveAttachments@ is
+--     not is not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' and was
+--     not created with
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM',
+--     @fragmentDensityOffsetCount@ /must/ equal @0@.
+--
+-- -   #VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pPreserveAttachments-06509#
+--     If any element of
+--     'Vulkan.Core10.Pass.SubpassDescription'::@pPreserveAttachments@ is
+--     not is not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' and was
+--     not created with
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM',
+--     @fragmentDensityOffsetCount@ /must/ equal @0@.
+--
+-- -   #VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityOffsetCount-06510#
+--     If @fragmentDensityOffsetCount@ is not @0@ and multiview is enabled
+--     for the render pass, @fragmentDensityOffsetCount@ /must/ equal the
+--     @layerCount@ that was specified in creating the fragment density map
+--     attachment view.
+--
+-- -   #VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-fragmentDensityOffsetCount-06511#
+--     If @fragmentDensityOffsetCount@ is not @0@ and multiview is not
+--     enabled for the render pass, @fragmentDensityOffsetCount@ /must/
+--     equal @1@.
+--
+-- -   #VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-x-06512# The @x@
+--     component of each element of @pFragmentDensityOffsets@ /must/ be an
+--     integer multiple of @fragmentDensityOffsetGranularity.width@.
+--
+-- -   #VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-y-06513# The @y@
+--     component of each element of @pFragmentDensityOffsets@ /must/ be an
+--     integer multiple of @fragmentDensityOffsetGranularity.height@.
+--
+-- == Valid Usage (Implicit)
+--
+-- -   #VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-sType-sType#
+--     @sType@ /must/ be
+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM'
+--
+-- -   #VUID-VkSubpassFragmentDensityMapOffsetEndInfoQCOM-pFragmentDensityOffsets-parameter#
+--     If @fragmentDensityOffsetCount@ is not @0@,
+--     @pFragmentDensityOffsets@ /must/ be a valid pointer to an array of
+--     @fragmentDensityOffsetCount@
+--     'Vulkan.Core10.FundamentalTypes.Offset2D' structures
+--
+-- = See Also
+--
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_fragment_density_map_offset VK_QCOM_fragment_density_map_offset>,
+-- 'Vulkan.Core10.FundamentalTypes.Offset2D',
+-- 'Vulkan.Core10.Enums.StructureType.StructureType'
+data SubpassFragmentDensityMapOffsetEndInfoQCOM = SubpassFragmentDensityMapOffsetEndInfoQCOM
+  { -- | @pFragmentDensityOffsets@ is a pointer to an array of
+    -- 'Vulkan.Core10.FundamentalTypes.Offset2D' structs, each of which
+    -- describes the offset per layer.
+    fragmentDensityOffsets :: Vector Offset2D }
+  deriving (Typeable)
+#if defined(GENERIC_INSTANCES)
+deriving instance Generic (SubpassFragmentDensityMapOffsetEndInfoQCOM)
+#endif
+deriving instance Show SubpassFragmentDensityMapOffsetEndInfoQCOM
+
+instance ToCStruct SubpassFragmentDensityMapOffsetEndInfoQCOM where
+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)
+  pokeCStruct p SubpassFragmentDensityMapOffsetEndInfoQCOM{..} f = evalContT $ do
+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM)
+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (fragmentDensityOffsets)) :: Word32))
+    pPFragmentDensityOffsets' <- ContT $ allocaBytes @Offset2D ((Data.Vector.length (fragmentDensityOffsets)) * 8)
+    lift $ Data.Vector.imapM_ (\i e -> poke (pPFragmentDensityOffsets' `plusPtr` (8 * (i)) :: Ptr Offset2D) (e)) (fragmentDensityOffsets)
+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr Offset2D))) (pPFragmentDensityOffsets')
+    lift $ f
+  cStructSize = 32
+  cStructAlignment = 8
+  pokeZeroCStruct p f = do
+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM)
+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)
+    f
+
+instance FromCStruct SubpassFragmentDensityMapOffsetEndInfoQCOM where
+  peekCStruct p = do
+    fragmentDensityOffsetCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))
+    pFragmentDensityOffsets <- peek @(Ptr Offset2D) ((p `plusPtr` 24 :: Ptr (Ptr Offset2D)))
+    pFragmentDensityOffsets' <- generateM (fromIntegral fragmentDensityOffsetCount) (\i -> peekCStruct @Offset2D ((pFragmentDensityOffsets `advancePtrBytes` (8 * (i)) :: Ptr Offset2D)))
+    pure $ SubpassFragmentDensityMapOffsetEndInfoQCOM
+             pFragmentDensityOffsets'
+
+instance Zero SubpassFragmentDensityMapOffsetEndInfoQCOM where
+  zero = SubpassFragmentDensityMapOffsetEndInfoQCOM
+           mempty
+
+
+type QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 1
+
+-- No documentation found for TopLevel "VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION"
+pattern QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION :: forall a . Integral a => a
+pattern QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION = 1
+
+
+type QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME = "VK_QCOM_fragment_density_map_offset"
+
+-- No documentation found for TopLevel "VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME"
+pattern QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
+pattern QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME = "VK_QCOM_fragment_density_map_offset"
+
diff --git a/src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs-boot b/src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Vulkan/Extensions/VK_QCOM_fragment_density_map_offset.hs-boot
@@ -0,0 +1,142 @@
+{-# language CPP #-}
+-- | = Name
+--
+-- VK_QCOM_fragment_density_map_offset - device extension
+--
+-- == VK_QCOM_fragment_density_map_offset
+--
+-- [__Name String__]
+--     @VK_QCOM_fragment_density_map_offset@
+--
+-- [__Extension Type__]
+--     Device extension
+--
+-- [__Registered Extension Number__]
+--     426
+--
+-- [__Revision__]
+--     1
+--
+-- [__Extension and Version Dependencies__]
+--
+--     -   Requires Vulkan 1.0
+--
+--     -   Requires @VK_KHR_get_physical_device_properties2@
+--
+--     -   Requires @VK_EXT_fragment_density_map@
+--
+-- [__Contact__]
+--
+--     -   Matthew Netsch
+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_QCOM_fragment_density_map_offset] @mnetsch%0A<<Here describe the issue or question you have about the VK_QCOM_fragment_density_map_offset extension>> >
+--
+-- == Other Extension Metadata
+--
+-- [__Last Modified Date__]
+--     2021-09-03
+--
+-- [__Contributors__]
+--
+--     -   Matthew Netsch, Qualcomm Technologies, Inc.
+--
+--     -   Jonathan Wicks, Qualcomm Technologies, Inc.
+--
+--     -   Jonathan Tinkham, Qualcomm Technologies, Inc.
+--
+--     -   Jeff Leger, Qualcomm Technologies, Inc.
+--
+-- == Description
+--
+-- This extension allows an application to specify offsets to a fragment
+-- density map attachment, changing the framebuffer location where density
+-- values are applied to without having to regenerate the fragment density
+-- map.
+--
+-- == New Structures
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
+--     'Vulkan.Core10.Device.DeviceCreateInfo':
+--
+--     -   'PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM'
+--
+-- -   Extending
+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
+--
+--     -   'PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM'
+--
+-- -   Extending
+--     'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassEndInfo':
+--
+--     -   'SubpassFragmentDensityMapOffsetEndInfoQCOM'
+--
+-- == New Enum Constants
+--
+-- -   'QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME'
+--
+-- -   'QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION'
+--
+-- -   Extending
+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlagBits':
+--
+--     -   'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM'
+--
+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM'
+--
+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM'
+--
+-- == Version History
+--
+-- -   Revision 1, 2021-09-03 (Matthew Netsch)
+--
+--     -   Initial version
+--
+-- == See Also
+--
+-- 'PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM',
+-- 'PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM',
+-- 'SubpassFragmentDensityMapOffsetEndInfoQCOM'
+--
+-- == Document Notes
+--
+-- For more information, see the
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_QCOM_fragment_density_map_offset Vulkan Specification>
+--
+-- This page is a generated document. Fixes and changes should be made to
+-- the generator scripts, not directly.
+module Vulkan.Extensions.VK_QCOM_fragment_density_map_offset  ( PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM
+                                                              , PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM
+                                                              , SubpassFragmentDensityMapOffsetEndInfoQCOM
+                                                              ) where
+
+import Vulkan.CStruct (FromCStruct)
+import Vulkan.CStruct (ToCStruct)
+import Data.Kind (Type)
+
+data PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM
+
+instance ToCStruct PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM
+instance Show PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM
+
+instance FromCStruct PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM
+
+
+data PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM
+
+instance ToCStruct PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM
+instance Show PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM
+
+instance FromCStruct PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM
+
+
+data SubpassFragmentDensityMapOffsetEndInfoQCOM
+
+instance ToCStruct SubpassFragmentDensityMapOffsetEndInfoQCOM
+instance Show SubpassFragmentDensityMapOffsetEndInfoQCOM
+
+instance FromCStruct SubpassFragmentDensityMapOffsetEndInfoQCOM
+
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 = 202
+pattern HEADER_VERSION = 203
 
 
 pattern HEADER_VERSION_COMPLETE :: Word32
-pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 2 202
+pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 2 203
 
 
 pattern MAKE_API_VERSION :: Word32 -> Word32 -> Word32 -> Word32
diff --git a/vulkan.cabal b/vulkan.cabal
--- a/vulkan.cabal
+++ b/vulkan.cabal
@@ -1,11 +1,11 @@
 cabal-version: 2.2
 
--- This file has been generated from package.yaml by hpack version 0.34.5.
+-- This file has been generated from package.yaml by hpack version 0.34.6.
 --
 -- see: https://github.com/sol/hpack
 
 name:           vulkan
-version:        3.14.2
+version:        3.15
 synopsis:       Bindings to the Vulkan graphics API.
 description:    Please see [the readme](https://github.com/expipiplus1/vulkan/#readme)
 category:       Graphics
@@ -373,6 +373,7 @@
       Vulkan.Extensions.VK_GOOGLE_decorate_string
       Vulkan.Extensions.VK_GOOGLE_display_timing
       Vulkan.Extensions.VK_GOOGLE_hlsl_functionality1
+      Vulkan.Extensions.VK_GOOGLE_surfaceless_query
       Vulkan.Extensions.VK_GOOGLE_user_type
       Vulkan.Extensions.VK_HUAWEI_invocation_mask
       Vulkan.Extensions.VK_HUAWEI_subpass_shading
@@ -493,6 +494,7 @@
       Vulkan.Extensions.VK_NV_geometry_shader_passthrough
       Vulkan.Extensions.VK_NV_glsl_shader
       Vulkan.Extensions.VK_NV_inherited_viewport_scissor
+      Vulkan.Extensions.VK_NV_linear_color_attachment
       Vulkan.Extensions.VK_NV_mesh_shader
       Vulkan.Extensions.VK_NV_ray_tracing
       Vulkan.Extensions.VK_NV_ray_tracing_motion_blur
@@ -509,6 +511,7 @@
       Vulkan.Extensions.VK_NVX_binary_import
       Vulkan.Extensions.VK_NVX_image_view_handle
       Vulkan.Extensions.VK_NVX_multiview_per_view_attributes
+      Vulkan.Extensions.VK_QCOM_fragment_density_map_offset
       Vulkan.Extensions.VK_QCOM_render_pass_shader_resolve
       Vulkan.Extensions.VK_QCOM_render_pass_store_ops
       Vulkan.Extensions.VK_QCOM_render_pass_transform
