diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -2,6 +2,9 @@
 
 ## WIP
 
+## [3.23.4] - 2022-12-27
+- Bump API version to v1.3.234
+
 ## [3.23.3] - 2022-12-27
 - Bump API version to v1.3.233
 
diff --git a/package.yaml b/package.yaml
--- a/package.yaml
+++ b/package.yaml
@@ -1,5 +1,5 @@
 name: vulkan
-version: "3.23.3"
+version: "3.23.4"
 synopsis: Bindings to the Vulkan graphics API.
 description: Please see [the readme](https://github.com/expipiplus1/vulkan/#readme)
 category: Graphics
diff --git a/src/Vulkan/Core10/CommandBufferBuilding.hs b/src/Vulkan/Core10/CommandBufferBuilding.hs
--- a/src/Vulkan/Core10/CommandBufferBuilding.hs
+++ b/src/Vulkan/Core10/CommandBufferBuilding.hs
@@ -12186,9 +12186,9 @@
 --     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of
 --     @pRanges@, if the @levelCount@ member is not
 --     'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS', then
---     @baseMipLevel@ + @levelCount@ /must/ be less than the @mipLevels@
---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was
---     created
+--     @baseMipLevel@ + @levelCount@ /must/ be less than or equal to the
+--     @mipLevels@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' when
+--     @image@ was created
 --
 -- -   #VUID-vkCmdClearColorImage-baseArrayLayer-01472# The
 --     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseArrayLayer@
@@ -12200,7 +12200,7 @@
 --     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of
 --     @pRanges@, if the @layerCount@ member is not
 --     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', then
---     @baseArrayLayer@ + @layerCount@ /must/ be less than the
+--     @baseArrayLayer@ + @layerCount@ /must/ be less than or equal to the
 --     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
 --     when @image@ was created
 --
@@ -12418,9 +12418,9 @@
 --     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of
 --     @pRanges@, if the @levelCount@ member is not
 --     'Vulkan.Core10.APIConstants.REMAINING_MIP_LEVELS', then
---     @baseMipLevel@ + @levelCount@ /must/ be less than the @mipLevels@
---     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was
---     created
+--     @baseMipLevel@ + @levelCount@ /must/ be less than or equal to the
+--     @mipLevels@ specified in 'Vulkan.Core10.Image.ImageCreateInfo' when
+--     @image@ was created
 --
 -- -   #VUID-vkCmdClearDepthStencilImage-baseArrayLayer-01476# The
 --     'Vulkan.Core10.ImageView.ImageSubresourceRange'::@baseArrayLayer@
@@ -12432,7 +12432,7 @@
 --     'Vulkan.Core10.ImageView.ImageSubresourceRange' element of
 --     @pRanges@, if the @layerCount@ member is not
 --     'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', then
---     @baseArrayLayer@ + @layerCount@ /must/ be less than the
+--     @baseArrayLayer@ + @layerCount@ /must/ be less than or equal to the
 --     @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'
 --     when @image@ was created
 --
diff --git a/src/Vulkan/Core10/Event.hs b/src/Vulkan/Core10/Event.hs
--- a/src/Vulkan/Core10/Event.hs
+++ b/src/Vulkan/Core10/Event.hs
@@ -362,6 +362,14 @@
 -- If @event@ is already in the signaled state when 'setEvent' is executed,
 -- then 'setEvent' has no effect, and no event signal operation occurs.
 --
+-- Note
+--
+-- If a command buffer is waiting for an event to be signaled from the
+-- host, the application must signal the event before submitting the
+-- command buffer, as described in the
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-submission-progress queue forward progress>
+-- section.
+--
 -- == Valid Usage
 --
 -- -   #VUID-vkSetEvent-event-03941# @event@ /must/ not have been created
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
@@ -4370,43 +4370,51 @@
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06046# If @renderPass@
---     is a valid renderPass, @subpass@ /must/ be a valid subpass within
---     @renderPass@
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @subpass@ /must/ be
+--     a valid subpass within @renderPass@
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06047# If @renderPass@
---     is a valid renderPass, the pipeline is being created with
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is
+--     being created with
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and the @renderPass@ has multiview enabled and @subpass@ has more
---     than one bit set in the view mask and @multiviewTessellationShader@
---     is not enabled, then @pStages@ /must/ not include tessellation
---     shaders
+--     @subpass@ viewMask is not @0@, and @multiviewTessellationShader@ is
+--     not enabled, then @pStages@ /must/ not include tessellation shaders
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06048# If @renderPass@
---     is a valid renderPass, the pipeline is being created with
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is
+--     being created with
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and the @renderPass@ has multiview enabled and @subpass@ has more
---     than one bit set in the view mask and @multiviewGeometryShader@ is
---     not enabled, then @pStages@ /must/ not include a geometry shader
+--     @subpass@ viewMask is not @0@, and @multiviewGeometryShader@ is not
+--     enabled, then @pStages@ /must/ not include a geometry shader
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06049# If @renderPass@
---     is a valid renderPass, the pipeline is being created with
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is
+--     being created with
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and the @renderPass@ has multiview enabled and @subpass@ has more
---     than one bit set in the view mask, shaders in the pipeline /must/
---     not write to the @Layer@ built-in output
+--     and @subpass@ viewMask is not @0@, all of the shaders in the
+--     pipeline /must/ not write to the @Layer@ built-in output
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06050# If @renderPass@
---     is a valid renderPass and the pipeline is being created with
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is
+--     being created with
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and the @renderPass@ has multiview enabled, then all shaders /must/
---     not include variables decorated with the @Layer@ built-in decoration
---     in their interfaces
+--     and @subpass@ viewMask is not @0@, then all of the shaders in the
+--     pipeline /must/ not include variables decorated with the @Layer@
+--     built-in decoration in their interfaces
 --
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-07717# If @renderPass@
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE' and the pipeline is
+--     being created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and @subpass@ viewMask is not @0@, then all of the shaders in the
+--     pipeline /must/ not include variables decorated with the @ViewMask@
+--     built-in decoration in their interfaces
+--
 -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-07064# If @renderPass@
---     is a valid renderPass, the pipeline is being created with
+--     is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is
+--     being created with
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and the @renderPass@ has multiview enabled and @subpass@ has more
---     than one bit set in the view mask and @multiviewMeshShader@ is not
+--     @subpass@ viewMask is not @0@, and @multiviewMeshShader@ is not
 --     enabled, then @pStages@ /must/ not include a mesh shader
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-flags-00764# @flags@ /must/ not
@@ -5253,9 +5261,8 @@
 --     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
 --     created with
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     the @viewMask@ member of a
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'
---     structure included in the @pNext@ chain is not @0@, and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
+--     is not @0@, and the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-tess multiviewTessellationShader>
 --     feature is not enabled, then @pStages@ /must/ not include
 --     tessellation shaders
@@ -5264,22 +5271,49 @@
 --     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
 --     created with
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     the @viewMask@ member of a
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'
---     structure included in the @pNext@ chain is not @0@, and the
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
+--     is not @0@, and the
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview-gs multiviewGeometryShader>
 --     feature is not enabled, then @pStages@ /must/ not include a geometry
 --     shader
 --
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-07718# If @renderPass@
+--     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
+--     created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
+--     is not @0@, all of the shaders in the pipeline /must/ not write to
+--     the @Layer@ built-in output
+--
 -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06059# If @renderPass@
 --     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
 --     created with
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
---     and the @viewMask@ member of a
---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'
---     structure included in the @pNext@ chain is not @0@, shaders in
---     @pStages@ /must/ not include variables decorated with the @Layer@
---     built-in decoration in their interfaces
+--     and
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
+--     is not @0@, all of the shaders in the pipeline /must/ not include
+--     variables decorated with the @Layer@ built-in decoration in their
+--     interfaces
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-07719# If @renderPass@
+--     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
+--     created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
+--     is not @0@, all of the shaders in the pipeline /must/ not include
+--     variables decorated with the @ViewIndex@ built-in decoration in
+--     their interfaces
+--
+-- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-07720# If @renderPass@
+--     is 'Vulkan.Core10.APIConstants.NULL_HANDLE', the pipeline is being
+--     created with
+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,
+--     and
+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@viewMask@
+--     is not @0@, and @multiviewMeshShader@ is not enabled, then @pStages@
+--     /must/ not include a mesh shader
 --
 -- -   #VUID-VkGraphicsPipelineCreateInfo-renderPass-06061# If the pipeline
 --     is being created with
diff --git a/src/Vulkan/Core13/Enums/PipelineStageFlags2.hs b/src/Vulkan/Core13/Enums/PipelineStageFlags2.hs
--- a/src/Vulkan/Core13/Enums/PipelineStageFlags2.hs
+++ b/src/Vulkan/Core13/Enums/PipelineStageFlags2.hs
@@ -404,7 +404,8 @@
 -- are performed.
 pattern PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = PipelineStageFlagBits2 0x0000000020000000
 
--- No documentation found for Nested "VkPipelineStageFlagBits2" "VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT"
+-- | 'PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT' specifies the execution of
+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#micromap micromap commands>.
 pattern PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = PipelineStageFlagBits2 0x0000000040000000
 
 -- | 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR' specifies the
diff --git a/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs b/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs
--- a/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs
+++ b/src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs
@@ -309,6 +309,9 @@
                                                  -> -- | @externalHandleType@ is either one of the bits from
                                                     -- 'ExternalMemoryHandleTypeFlagBitsNV', or 0.
                                                     --
+                                                    -- #VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-externalHandleType-07721#
+                                                    -- @externalHandleType@ /must/ not have more than one bit set
+                                                    --
                                                     -- #VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-externalHandleType-parameter#
                                                     -- @externalHandleType@ /must/ be a valid combination of
                                                     -- 'ExternalMemoryHandleTypeFlagBitsNV' values
diff --git a/src/Vulkan/Extensions/VK_NV_memory_decompression.hs b/src/Vulkan/Extensions/VK_NV_memory_decompression.hs
--- a/src/Vulkan/Extensions/VK_NV_memory_decompression.hs
+++ b/src/Vulkan/Extensions/VK_NV_memory_decompression.hs
@@ -205,9 +205,9 @@
 --
 -- == Valid Usage
 --
--- -   #VUID-vkCmdDecompressMemoryNV-None-07684#
+-- -   #VUID-vkCmdDecompressMemoryNV-None-07684# The
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-memoryDecompression memoryDecompression>
---     /must/ be enabled
+--     feature /must/ be enabled
 --
 -- == Valid Usage (Implicit)
 --
@@ -263,9 +263,9 @@
                       => -- | @commandBuffer@ is the command buffer into which the command will be
                          -- recorded.
                          CommandBuffer
-                      -> -- | @pDecompressMemoryRegions@ is a pointer to an array of size
-                         -- @decompressRegionCount@ of 'DecompressMemoryRegionNV' structures used to
-                         -- specify the decompression parameters.
+                      -> -- | @pDecompressMemoryRegions@ is a pointer to an array of
+                         -- @decompressRegionCount@ 'DecompressMemoryRegionNV' structures specifying
+                         -- decompression parameters.
                          ("decompressMemoryRegions" ::: Vector DecompressMemoryRegionNV)
                       -> io ()
 cmdDecompressMemoryNV commandBuffer
@@ -301,9 +301,9 @@
 --
 -- == Valid Usage
 --
--- -   #VUID-vkCmdDecompressMemoryIndirectCountNV-None-07692#
+-- -   #VUID-vkCmdDecompressMemoryIndirectCountNV-None-07692# The
 --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-memoryDecompression memoryDecompression>
---     /must/ be enabled
+--     feature /must/ be enabled
 --
 -- -   #VUID-vkCmdDecompressMemoryIndirectCountNV-indirectCommandsAddress-07693#
 --     If @indirectCommandsAddress@ comes from a non-sparse buffer then it
@@ -521,9 +521,9 @@
 -- 'MemoryDecompressionMethodFlagsNV',
 -- 'Vulkan.Core10.Enums.StructureType.StructureType'
 data PhysicalDeviceMemoryDecompressionPropertiesNV = PhysicalDeviceMemoryDecompressionPropertiesNV
-  { -- | @decompressionMethods@ specifies the list of all the memory
-    -- decompression methods supported by the implementation as a bitmask of
-    -- 'MemoryDecompressionMethodFlagBitsNV'.
+  { -- | @decompressionMethods@ is a bitmask of
+    -- 'MemoryDecompressionMethodFlagBitsNV' specifying memory decompression
+    -- methods supported by the implementation.
     decompressionMethods :: MemoryDecompressionMethodFlagsNV
   , -- | @maxDecompressionIndirectCount@ specifies the maximum supported count
     -- value in the @countBuffer@ of 'cmdDecompressMemoryIndirectCountNV'
@@ -626,9 +626,9 @@
     compressedSize :: DeviceSize
   , -- | @decompressedSize@ is the size of decompressed data in bytes.
     decompressedSize :: DeviceSize
-  , -- | @decompressionMethod@ is a single bit value from
-    -- 'MemoryDecompressionMethodFlagBitsNV' which specifies the decompression
-    -- method used to decompress data.
+  , -- | @decompressionMethod@ is a bitmask of
+    -- 'MemoryDecompressionMethodFlagBitsNV' with a single bit set specifying
+    -- the method used to decompress data.
     decompressionMethod :: MemoryDecompressionMethodFlagsNV
   }
   deriving (Typeable, Eq)
@@ -696,8 +696,8 @@
 newtype MemoryDecompressionMethodFlagBitsNV = MemoryDecompressionMethodFlagBitsNV Flags64
   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)
 
--- | 'MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV' specifies that
--- GDEFLATE 1.0 algorithm is used to decompress data.
+-- | 'MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV' specifies that the
+-- GDeflate 1.0 algorithm is used to decompress data.
 pattern MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = MemoryDecompressionMethodFlagBitsNV 0x0000000000000001
 
 conNameMemoryDecompressionMethodFlagBitsNV :: String
diff --git a/src/Vulkan/Extensions/VK_NV_ray_tracing_invocation_reorder.hs b/src/Vulkan/Extensions/VK_NV_ray_tracing_invocation_reorder.hs
--- a/src/Vulkan/Extensions/VK_NV_ray_tracing_invocation_reorder.hs
+++ b/src/Vulkan/Extensions/VK_NV_ray_tracing_invocation_reorder.hs
@@ -220,12 +220,6 @@
 -- | VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV - Structure
 -- describing shader module identifier properties of an implementation
 --
--- = Members
---
--- The members of the
--- 'PhysicalDeviceRayTracingInvocationReorderPropertiesNV' structure
--- describe the following:
---
 -- = Description
 --
 -- Note
diff --git a/src/Vulkan/SPIRVRequirements.hs b/src/Vulkan/SPIRVRequirements.hs
--- a/src/Vulkan/SPIRVRequirements.hs
+++ b/src/Vulkan/SPIRVRequirements.hs
@@ -380,6 +380,60 @@
           , deviceExtensionMinVersion = 0
           }
       ]
+  "SPV_NV_shader_invocation_reorder" ->
+    (,)
+      [ RequireInstanceExtension
+          { instanceExtensionLayerName = Nothing
+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME
+          , instanceExtensionMinVersion = 0
+          }
+      ]
+      [ RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      , RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      , RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = KHR_SPIRV_1_4_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      , RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      , RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      , RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      , RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      , RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      , RequireDeviceExtension
+          { deviceExtensionLayerName = Nothing
+          , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME
+          , deviceExtensionMinVersion = 0
+          }
+      ]
   "SPV_EXT_shader_viewport_index_layer" ->
     (,)
       [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]
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 = 233
+pattern HEADER_VERSION = 234
 
 
 pattern HEADER_VERSION_COMPLETE :: Word32
-pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 233
+pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 234
 
 
 pattern MAKE_API_VERSION :: Word32 -> Word32 -> Word32 -> Word32
diff --git a/vulkan.cabal b/vulkan.cabal
--- a/vulkan.cabal
+++ b/vulkan.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           vulkan
-version:        3.23.3
+version:        3.23.4
 synopsis:       Bindings to the Vulkan graphics API.
 description:    Please see [the readme](https://github.com/expipiplus1/vulkan/#readme)
 category:       Graphics
