diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -2,6 +2,9 @@
 
 ## WIP
 
+## [3.11.4] - 2021-07-27
+- Bump API version to v1.2.186
+
 ## [3.11.3] - 2021-07-21
 - Bump API version to v1.2.185
 
diff --git a/package.yaml b/package.yaml
--- a/package.yaml
+++ b/package.yaml
@@ -1,5 +1,5 @@
 name: vulkan
-version: "3.11.3"
+version: "3.11.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
@@ -1851,9 +1851,9 @@
 -- -   #VUID-vkCmdDraw-commandBuffer-02701# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command requires any dynamic state, that state
---     /must/ have been set or inherited for @commandBuffer@, and done so
---     after any previously bound pipeline with the corresponding state not
---     specified as dynamic
+--     /must/ have been set or inherited (if the @@ extension is enabled)
+--     for @commandBuffer@, and done so after any previously bound pipeline
+--     with the corresponding state not specified as dynamic
 --
 -- -   #VUID-vkCmdDraw-None-02859# There /must/ not have been any calls to
 --     dynamic state setting commands for any state not specified as
@@ -2467,9 +2467,9 @@
 -- -   #VUID-vkCmdDrawIndexed-commandBuffer-02701# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command requires any dynamic state, that state
---     /must/ have been set or inherited for @commandBuffer@, and done so
---     after any previously bound pipeline with the corresponding state not
---     specified as dynamic
+--     /must/ have been set or inherited (if the @@ extension is enabled)
+--     for @commandBuffer@, and done so after any previously bound pipeline
+--     with the corresponding state not specified as dynamic
 --
 -- -   #VUID-vkCmdDrawIndexed-None-02859# There /must/ not have been any
 --     calls to dynamic state setting commands for any state not specified
@@ -3082,9 +3082,9 @@
 -- -   #VUID-vkCmdDrawIndirect-commandBuffer-02701# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command requires any dynamic state, that state
---     /must/ have been set or inherited for @commandBuffer@, and done so
---     after any previously bound pipeline with the corresponding state not
---     specified as dynamic
+--     /must/ have been set or inherited (if the @@ extension is enabled)
+--     for @commandBuffer@, and done so after any previously bound pipeline
+--     with the corresponding state not specified as dynamic
 --
 -- -   #VUID-vkCmdDrawIndirect-None-02859# There /must/ not have been any
 --     calls to dynamic state setting commands for any state not specified
@@ -3725,9 +3725,9 @@
 -- -   #VUID-vkCmdDrawIndexedIndirect-commandBuffer-02701# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command requires any dynamic state, that state
---     /must/ have been set or inherited for @commandBuffer@, and done so
---     after any previously bound pipeline with the corresponding state not
---     specified as dynamic
+--     /must/ have been set or inherited (if the @@ extension is enabled)
+--     for @commandBuffer@, and done so after any previously bound pipeline
+--     with the corresponding state not specified as dynamic
 --
 -- -   #VUID-vkCmdDrawIndexedIndirect-None-02859# There /must/ not have
 --     been any calls to dynamic state setting commands for any state not
@@ -4362,9 +4362,9 @@
 -- -   #VUID-vkCmdDispatch-commandBuffer-02701# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command requires any dynamic state, that state
---     /must/ have been set or inherited for @commandBuffer@, and done so
---     after any previously bound pipeline with the corresponding state not
---     specified as dynamic
+--     /must/ have been set or inherited (if the @@ extension is enabled)
+--     for @commandBuffer@, and done so after any previously bound pipeline
+--     with the corresponding state not specified as dynamic
 --
 -- -   #VUID-vkCmdDispatch-None-02859# There /must/ not have been any calls
 --     to dynamic state setting commands for any state not specified as
@@ -4690,9 +4690,9 @@
 -- -   #VUID-vkCmdDispatchIndirect-commandBuffer-02701# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command requires any dynamic state, that state
---     /must/ have been set or inherited for @commandBuffer@, and done so
---     after any previously bound pipeline with the corresponding state not
---     specified as dynamic
+--     /must/ have been set or inherited (if the @@ extension is enabled)
+--     for @commandBuffer@, and done so after any previously bound pipeline
+--     with the corresponding state not specified as dynamic
 --
 -- -   #VUID-vkCmdDispatchIndirect-None-02859# There /must/ not have been
 --     any calls to dynamic state setting commands for any state not
@@ -5061,8 +5061,8 @@
 -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility Compatible Formats>
 -- table. Depth\/stencil formats /must/ match exactly.
 --
--- If the format of @srcImage@ or @dstImage@ is a
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
+-- If either @srcImage@ or @dstImage@ has a
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,
 -- regions of each plane to be copied /must/ be specified separately using
 -- the @srcSubresource@ and @dstSubresource@ members of the 'ImageCopy'
 -- structure. In this case, the @aspectMask@ of the @srcSubresource@ or
@@ -6046,8 +6046,8 @@
 -- Each region in @pRegions@ is copied from the specified region of the
 -- source buffer to the specified region of the destination image.
 --
--- If the format of @dstImage@ is a
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
+-- If @dstImage@ has a
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,
 -- regions of each plane to be a target of a copy /must/ be specified
 -- separately using the @pRegions@ member of the 'BufferImageCopy'
 -- structure. In this case, the @aspectMask@ of @imageSubresource@ /must/
@@ -6078,13 +6078,8 @@
 --     unprotected image
 --
 -- -   #VUID-vkCmdCopyBufferToImage-pRegions-00172# The image region
---     specified by each element of @pRegions@ /must/ be a region that is
---     contained within @dstImage@ if the @dstImage@’s
---     'Vulkan.Core10.Enums.Format.Format' is not a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,
---     and /must/ be a region that is contained within the plane being
---     copied to if the @dstImage@’s 'Vulkan.Core10.Enums.Format.Format' is
---     a multi-planar format
+--     specified by each element of @pRegions@ /must/ be contained within
+--     the specified @imageSubresource@ of @dstImage@
 --
 -- -   #VUID-vkCmdCopyBufferToImage-pRegions-00171# @srcBuffer@ /must/ be
 --     large enough to contain all buffer locations that are accessed
@@ -6168,17 +6163,13 @@
 --     @pRegions@, @imageOffset.x@ and (@imageExtent.width@ +
 --     @imageOffset.x@) /must/ both be greater than or equal to @0@ and
 --     less than or equal to the width of the specified @imageSubresource@
---     of @dstImage@ where this refers to the width of the /plane/ of the
---     image involved in the copy in the case of a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>
+--     of @dstImage@
 --
 -- -   #VUID-vkCmdCopyBufferToImage-imageOffset-00198# For each element of
 --     @pRegions@, @imageOffset.y@ and (@imageExtent.height@ +
 --     @imageOffset.y@) /must/ both be greater than or equal to @0@ and
 --     less than or equal to the height of the specified @imageSubresource@
---     of @dstImage@ where this refers to the height of the /plane/ of the
---     image involved in the copy in the case of a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>
+--     of @dstImage@
 --
 -- -   #VUID-vkCmdCopyBufferToImage-bufferOffset-01558# If @dstImage@ does
 --     not have either a depth\/stencil or a
@@ -6402,8 +6393,8 @@
 -- Each region in @pRegions@ is copied from the specified region of the
 -- source image to the specified region of the destination buffer.
 --
--- If the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@ is a
--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,
+-- If @srcImage@ has a
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,
 -- regions of each plane to be a source of a copy /must/ be specified
 -- separately using the @pRegions@ member of the 'BufferImageCopy'
 -- structure. In this case, the @aspectMask@ of @imageSubresource@ /must/
@@ -6434,13 +6425,8 @@
 --     unprotected buffer
 --
 -- -   #VUID-vkCmdCopyImageToBuffer-pRegions-00182# The image region
---     specified by each element of @pRegions@ /must/ be a region that is
---     contained within @srcImage@ if the @srcImage@’s
---     'Vulkan.Core10.Enums.Format.Format' is not a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,
---     and /must/ be a region that is contained within the plane being
---     copied if the @srcImage@’s 'Vulkan.Core10.Enums.Format.Format' is a
---     multi-planar format
+--     specified by each element of @pRegions@ /must/ be contained within
+--     the specified @imageSubresource@ of @srcImage@
 --
 -- -   #VUID-vkCmdCopyImageToBuffer-pRegions-00183# @dstBuffer@ /must/ be
 --     large enough to contain all buffer locations that are accessed
@@ -6515,17 +6501,13 @@
 --     @pRegions@, @imageOffset.x@ and (@imageExtent.width@ +
 --     @imageOffset.x@) /must/ both be greater than or equal to @0@ and
 --     less than or equal to the width of the specified @imageSubresource@
---     of @srcImage@ where this refers to the width of the /plane/ of the
---     image involved in the copy in the case of a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>
+--     of @srcImage@
 --
 -- -   #VUID-vkCmdCopyImageToBuffer-imageOffset-00198# For each element of
 --     @pRegions@, @imageOffset.y@ and (imageExtent.height +
 --     @imageOffset.y@) /must/ both be greater than or equal to @0@ and
 --     less than or equal to the height of the specified @imageSubresource@
---     of @srcImage@ where this refers to the height of the /plane/ of the
---     image involved in the copy in the case of a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>
+--     of @srcImage@
 --
 -- -   #VUID-vkCmdCopyImageToBuffer-bufferOffset-01558# If @srcImage@ does
 --     not have either a depth\/stencil or a
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
@@ -1506,8 +1506,8 @@
 data VertexInputBindingDescription = VertexInputBindingDescription
   { -- | @binding@ is the binding number that this structure describes.
     binding :: Word32
-  , -- | @stride@ is the distance in bytes between two consecutive elements
-    -- within the buffer.
+  , -- | @stride@ is the byte stride between consecutive elements within the
+    -- buffer.
     stride :: Word32
   , -- | @inputRate@ is a 'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate'
     -- value specifying whether vertex attribute addressing is a function of
diff --git a/src/Vulkan/Core10/Queue.hs b/src/Vulkan/Core10/Queue.hs
--- a/src/Vulkan/Core10/Queue.hs
+++ b/src/Vulkan/Core10/Queue.hs
@@ -445,8 +445,12 @@
 --
 -- = Description
 --
--- 'queueWaitIdle' is equivalent to submitting a fence to a queue and
--- waiting with an infinite timeout for that fence to signal.
+-- 'queueWaitIdle' is equivalent to having submitted a valid fence to every
+-- previously executed
+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-submission queue submission command>
+-- that accepts a fence, then waiting for all of those fences to signal
+-- using 'Vulkan.Core10.Fence.waitForFences' with an infinite timeout and
+-- @waitAll@ set to 'Vulkan.Core10.FundamentalTypes.TRUE'.
 --
 -- == Valid Usage (Implicit)
 --
diff --git a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs
--- a/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs
+++ b/src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs
@@ -355,9 +355,9 @@
 -- -   #VUID-vkCmdDispatchBase-commandBuffer-02701# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command requires any dynamic state, that state
---     /must/ have been set or inherited for @commandBuffer@, and done so
---     after any previously bound pipeline with the corresponding state not
---     specified as dynamic
+--     /must/ have been set or inherited (if the @@ extension is enabled)
+--     for @commandBuffer@, and done so after any previously bound pipeline
+--     with the corresponding state not specified as dynamic
 --
 -- -   #VUID-vkCmdDispatchBase-None-02859# There /must/ not have been any
 --     calls to dynamic state setting commands for any state not specified
diff --git a/src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs b/src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs
--- a/src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs
+++ b/src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs
@@ -143,9 +143,9 @@
 -- -   #VUID-vkCmdDrawIndirectCount-commandBuffer-02701# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command requires any dynamic state, that state
---     /must/ have been set or inherited for @commandBuffer@, and done so
---     after any previously bound pipeline with the corresponding state not
---     specified as dynamic
+--     /must/ have been set or inherited (if the @@ extension is enabled)
+--     for @commandBuffer@, and done so after any previously bound pipeline
+--     with the corresponding state not specified as dynamic
 --
 -- -   #VUID-vkCmdDrawIndirectCount-None-02859# There /must/ not have been
 --     any calls to dynamic state setting commands for any state not
@@ -809,9 +809,9 @@
 -- -   #VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02701# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command requires any dynamic state, that state
---     /must/ have been set or inherited for @commandBuffer@, and done so
---     after any previously bound pipeline with the corresponding state not
---     specified as dynamic
+--     /must/ have been set or inherited (if the @@ extension is enabled)
+--     for @commandBuffer@, and done so after any previously bound pipeline
+--     with the corresponding state not specified as dynamic
 --
 -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-02859# There /must/ not
 --     have been any calls to dynamic state setting commands for any state
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
@@ -196,6 +196,13 @@
 -- with the ability to return extended information by adding extending
 -- structures to the @pNext@ chain of its @pSurfaceCapabilities@ parameter.
 --
+-- == Valid Usage
+--
+-- -   [[VUID-{refpage}-surface-06211]] @surface@ /must/ be supported by
+--     @physicalDevice@, as reported by
+--     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR'
+--     or an equivalent platform-specific mechanism
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-physicalDevice-parameter#
diff --git a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs
--- a/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs
+++ b/src/Vulkan/Extensions/VK_EXT_extended_dynamic_state.hs
@@ -686,9 +686,9 @@
 --
 -- If the bound pipeline state object was created with the
 -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT'
--- dynamic state enabled then @pStrides@[i] specifies the distance in bytes
--- between two consecutive elements within the corresponding buffer. In
--- this case the
+-- dynamic state enabled then @pStrides@[i] specifies the byte stride
+-- between consecutive elements within the corresponding buffer. In this
+-- case the
 -- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription'::@stride@ state
 -- from the pipeline state object is ignored.
 --
@@ -739,11 +739,11 @@
 --     to
 --     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindingStride@
 --
--- -   #VUID-vkCmdBindVertexBuffers2EXT-pStrides-03363# If @pStrides@ is
---     not @NULL@ each element of @pStrides@ /must/ be greater than or
---     equal to the maximum extent of all vertex input attributes fetched
---     from the corresponding binding, where the extent is calculated as
---     the
+-- -   #VUID-vkCmdBindVertexBuffers2EXT-pStrides-06209# If @pStrides@ is
+--     not @NULL@ each element of @pStrides@ /must/ be either 0 or greater
+--     than or equal to the maximum extent of all vertex input attributes
+--     fetched from the corresponding binding, where the extent is
+--     calculated as the
 --     'Vulkan.Core10.Pipeline.VertexInputAttributeDescription'::@offset@
 --     plus
 --     'Vulkan.Core10.Pipeline.VertexInputAttributeDescription'::@format@
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
@@ -381,6 +381,13 @@
 -- with the ability to specify extended inputs via chained input
 -- structures.
 --
+-- == Valid Usage
+--
+-- -   [[VUID-{refpage}-pSurfaceInfo-06210]] @pSurfaceInfo->surface@ /must/
+--     be supported by @physicalDevice@, as reported by
+--     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR'
+--     or an equivalent platform-specific mechanism
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-physicalDevice-parameter#
diff --git a/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs b/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs
--- a/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs
+++ b/src/Vulkan/Extensions/VK_EXT_line_rasterization.hs
@@ -444,6 +444,11 @@
 -- | VkPipelineRasterizationLineStateCreateInfoEXT - Structure specifying
 -- parameters of a newly created pipeline line rasterization state
 --
+-- = Description
+--
+-- If @stippledLineEnable@ is 'Vulkan.Core10.FundamentalTypes.FALSE', the
+-- values of @lineStippleFactor@ and @lineStipplePattern@ are ignored.
+--
 -- == Valid Usage
 --
 -- -   #VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02768#
diff --git a/src/Vulkan/Extensions/VK_EXT_multi_draw.hs b/src/Vulkan/Extensions/VK_EXT_multi_draw.hs
--- a/src/Vulkan/Extensions/VK_EXT_multi_draw.hs
+++ b/src/Vulkan/Extensions/VK_EXT_multi_draw.hs
@@ -298,9 +298,9 @@
 -- -   #VUID-vkCmdDrawMultiEXT-commandBuffer-02701# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command requires any dynamic state, that state
---     /must/ have been set or inherited for @commandBuffer@, and done so
---     after any previously bound pipeline with the corresponding state not
---     specified as dynamic
+--     /must/ have been set or inherited (if the @@ extension is enabled)
+--     for @commandBuffer@, and done so after any previously bound pipeline
+--     with the corresponding state not specified as dynamic
 --
 -- -   #VUID-vkCmdDrawMultiEXT-None-02859# There /must/ not have been any
 --     calls to dynamic state setting commands for any state not specified
@@ -925,9 +925,9 @@
 -- -   #VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02701# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command requires any dynamic state, that state
---     /must/ have been set or inherited for @commandBuffer@, and done so
---     after any previously bound pipeline with the corresponding state not
---     specified as dynamic
+--     /must/ have been set or inherited (if the @@ extension is enabled)
+--     for @commandBuffer@, and done so after any previously bound pipeline
+--     with the corresponding state not specified as dynamic
 --
 -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-02859# There /must/ not have
 --     been any calls to dynamic state setting commands for any state not
diff --git a/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs b/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs
--- a/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs
+++ b/src/Vulkan/Extensions/VK_EXT_transform_feedback.hs
@@ -1289,9 +1289,9 @@
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02701# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command requires any dynamic state, that state
---     /must/ have been set or inherited for @commandBuffer@, and done so
---     after any previously bound pipeline with the corresponding state not
---     specified as dynamic
+--     /must/ have been set or inherited (if the @@ extension is enabled)
+--     for @commandBuffer@, and done so after any previously bound pipeline
+--     with the corresponding state not specified as dynamic
 --
 -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-02859# There /must/ not
 --     have been any calls to dynamic state setting commands for any state
diff --git a/src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs b/src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs
--- a/src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs
+++ b/src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs
@@ -405,8 +405,8 @@
 data VertexInputBindingDescription2EXT = VertexInputBindingDescription2EXT
   { -- | @binding@ is the binding number that this structure describes.
     binding :: Word32
-  , -- | @stride@ is the distance in bytes between two consecutive elements
-    -- within the buffer.
+  , -- | @stride@ is the byte stride between consecutive elements within the
+    -- buffer.
     stride :: Word32
   , -- | @inputRate@ is a 'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate'
     -- value specifying whether vertex attribute addressing is a function of
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
@@ -2134,16 +2134,21 @@
 -- -   #VUID-VkBlitImageInfo2KHR-pRegions-04561# If any element of
 --     @pRegions@ contains
 --     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'
---     in its @pNext@ chain, then @srcImage@ and @dstImage@ /must/ not be a
---     block-compressed image.
+--     in its @pNext@ chain, then @srcImage@ and @dstImage@ /must/ not be
+--     block-compressed images
 --
--- -   #VUID-VkBlitImageInfo2KHR-pRegions-04562# If any element of
+-- -   #VUID-VkBlitImageInfo2KHR-pRegions-06207# If any element of
 --     @pRegions@ contains
 --     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'
---     in its @pNext@ chain, then the @srcImage@ /must/ be of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and /must/ not be a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>.
+--     in its @pNext@ chain, then @srcImage@ /must/ be of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'
 --
+-- -   #VUID-VkBlitImageInfo2KHR-pRegions-06208# If any element of
+--     @pRegions@ contains
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'
+--     in its @pNext@ chain, then @srcImage@ /must/ not have a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-VkBlitImageInfo2KHR-sType-sType# @sType@ /must/ be
@@ -2267,31 +2272,31 @@
 --     region specified by each element of @pRegions@ does not contain
 --     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'
 --     in its @pNext@ chain, it /must/ be a region that is contained within
---     @dstImage@ if the @dstImage@’s 'Vulkan.Core10.Enums.Format.Format'
---     is not a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,
---     and /must/ be a region that is contained within the plane being
---     copied to if the @dstImage@’s 'Vulkan.Core10.Enums.Format.Format' is
---     a multi-planar format
+--     the specified @imageSubresource@ of @dstImage@
 --
 -- -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-04554# If the image
---     region specified by each element of @pRegions@ does contain
+--     region specified by each element of @pRegions@ contains
 --     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'
 --     in its @pNext@ chain, the rotated destination region as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-rotation-addressing>
---     /must/ be contained within @dstImage@.
+--     /must/ be contained within @dstImage@
 --
 -- -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-04555# If any element of
 --     @pRegions@ contains
 --     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'
---     in its @pNext@ chain, then the @dstImage@ /must/ not be a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>.
+--     in its @pNext@ chain, then @dstImage@ /must/ not be a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>
 --
--- -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-04556# If any element of
+-- -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-06203# If any element of
 --     @pRegions@ contains
 --     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'
---     in its @pNext@ chain, then the @dstImage@ /must/ be of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and /must/ not be a
+--     in its @pNext@ chain, then @dstImage@ /must/ be of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'
+--
+-- -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-06204# If any element of
+--     @pRegions@ contains
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'
+--     in its @pNext@ chain, then @dstImage@ /must/ not have a
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>.
 --
 -- -   #VUID-VkCopyBufferToImageInfo2KHR-pRegions-00171# @srcBuffer@ /must/
@@ -2379,9 +2384,7 @@
 --     in its @pNext@ chain, @imageOffset.x@ and (@imageExtent.width@ +
 --     @imageOffset.x@) /must/ both be greater than or equal to @0@ and
 --     less than or equal to the width of the specified @imageSubresource@
---     of @dstImage@ where this refers to the width of the /plane/ of the
---     image involved in the copy in the case of a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>
+--     of @dstImage@
 --
 -- -   #VUID-VkCopyBufferToImageInfo2KHR-imageOffset-00198# For each
 --     element of @pRegions@ not containing
@@ -2389,9 +2392,7 @@
 --     in its @pNext@ chain, @imageOffset.y@ and (@imageExtent.height@ +
 --     @imageOffset.y@) /must/ both be greater than or equal to @0@ and
 --     less than or equal to the height of the specified @imageSubresource@
---     of @dstImage@ where this refers to the height of the /plane/ of the
---     image involved in the copy in the case of a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>
+--     of @dstImage@
 --
 -- -   #VUID-VkCopyBufferToImageInfo2KHR-bufferOffset-01558# If @dstImage@
 --     does not have either a depth\/stencil or a
@@ -2623,34 +2624,34 @@
 -- -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04566# If the image
 --     region specified by each element of @pRegions@ does not contain
 --     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'
---     in its @pNext@ chain, it /must/ be a region that is contained within
---     @srcImage@ if the @srcImage@’s 'Vulkan.Core10.Enums.Format.Format'
---     is not a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,
---     and /must/ be a region that is contained within the plane being
---     copied if the @srcImage@’s 'Vulkan.Core10.Enums.Format.Format' is a
---     multi-planar format
+--     in its @pNext@ chain, it /must/ be contained within the specified
+--     @imageSubresource@ of @srcImage@
 --
 -- -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04557# If the image
---     region specified by each element of @pRegions@ does contain
+--     region specified by each element of @pRegions@ contains
 --     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'
 --     in its @pNext@ chain, the rotated source region as described in
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-rotation-addressing>
---     /must/ be contained within @srcImage@.
+--     /must/ be contained within @srcImage@
 --
 -- -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04558# If any element of
 --     @pRegions@ contains
 --     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'
---     in its @pNext@ chain, then the @srcImage@ /must/ not be a
+--     in its @pNext@ chain, then @srcImage@ /must/ not be a
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>
 --
--- -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-04559# If any element of
+-- -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-06205# If any element of
 --     @pRegions@ contains
 --     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'
---     in its @pNext@ chain, then the @srcImage@ /must/ be of type
---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and /must/ not be a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>.
+--     in its @pNext@ chain, then @srcImage@ /must/ be of type
+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'
 --
+-- -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-06206# If any element of
+--     @pRegions@ contains
+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'
+--     in its @pNext@ chain, then @srcImage@ /must/ not have a
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>
+--
 -- -   #VUID-VkCopyImageToBufferInfo2KHR-pRegions-00183# @dstBuffer@ /must/
 --     be large enough to contain all buffer locations that are accessed
 --     according to
@@ -2724,22 +2725,18 @@
 -- -   #VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00197# For each
 --     element of @pRegions@ not containing
 --     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'
---     in its @pNext@ chain, , @imageOffset.x@ and (@imageExtent.width@ +
+--     in its @pNext@ chain, @imageOffset.x@ and (@imageExtent.width@ +
 --     @imageOffset.x@) /must/ both be greater than or equal to @0@ and
 --     less than or equal to the width of the specified @imageSubresource@
---     of @srcImage@ where this refers to the width of the /plane/ of the
---     image involved in the copy in the case of a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>
+--     of @srcImage@
 --
 -- -   #VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00198# For each
 --     element of @pRegions@ not containing
 --     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'
---     in its @pNext@ chain, , @imageOffset.y@ and (@imageExtent.height@ +
+--     in its @pNext@ chain, @imageOffset.y@ and (@imageExtent.height@ +
 --     @imageOffset.y@) /must/ both be greater than or equal to @0@ and
 --     less than or equal to the height of the specified @imageSubresource@
---     of @srcImage@ where this refers to the height of the /plane/ of the
---     image involved in the copy in the case of a
---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>
+--     of @srcImage@
 --
 -- -   #VUID-VkCopyImageToBufferInfo2KHR-bufferOffset-01558# If
 --     {imageparam} does not have either a depth\/stencil or a
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
@@ -261,6 +261,11 @@
 --
 -- == Valid Usage
 --
+-- -   [[VUID-{refpage}-pSurfaceInfo-06210]] @pSurfaceInfo->surface@ /must/
+--     be supported by @physicalDevice@, as reported by
+--     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR'
+--     or an equivalent platform-specific mechanism
+--
 -- -   #VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-02671# If a
 --     'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceCapabilitiesFullScreenExclusiveEXT'
 --     structure is included in the @pNext@ chain of
@@ -354,9 +359,8 @@
 --
 -- == Valid Usage
 --
--- -   #VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-02740#
---     @pSurfaceInfo->surface@ /must/ be supported by @physicalDevice@, as
---     reported by
+-- -   [[VUID-{refpage}-pSurfaceInfo-06210]] @pSurfaceInfo->surface@ /must/
+--     be supported by @physicalDevice@, as reported by
 --     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR'
 --     or an equivalent platform-specific mechanism
 --
diff --git a/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs b/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs
--- a/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs
+++ b/src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs
@@ -985,9 +985,9 @@
 -- -   #VUID-vkCmdTraceRaysKHR-commandBuffer-02701# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command requires any dynamic state, that state
---     /must/ have been set or inherited for @commandBuffer@, and done so
---     after any previously bound pipeline with the corresponding state not
---     specified as dynamic
+--     /must/ have been set or inherited (if the @@ extension is enabled)
+--     for @commandBuffer@, and done so after any previously bound pipeline
+--     with the corresponding state not specified as dynamic
 --
 -- -   #VUID-vkCmdTraceRaysKHR-None-02859# There /must/ not have been any
 --     calls to dynamic state setting commands for any state not specified
@@ -1858,9 +1858,9 @@
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02701# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command requires any dynamic state, that state
---     /must/ have been set or inherited for @commandBuffer@, and done so
---     after any previously bound pipeline with the corresponding state not
---     specified as dynamic
+--     /must/ have been set or inherited (if the @@ extension is enabled)
+--     for @commandBuffer@, and done so after any previously bound pipeline
+--     with the corresponding state not specified as dynamic
 --
 -- -   #VUID-vkCmdTraceRaysIndirectKHR-None-02859# There /must/ not have
 --     been any calls to dynamic state setting commands for any state not
@@ -3357,37 +3357,37 @@
 --
 -- == Valid Usage
 --
+-- -   #VUID-VkTraceRaysIndirectCommandKHR-width-03638# @width@ /must/ be
+--     less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[0]
+--     ×
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupSize@[0]
+--
+-- -   #VUID-VkTraceRaysIndirectCommandKHR-height-03639# @height@ /must/ be
+--     less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[1]
+--     ×
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupSize@[1]
+--
+-- -   #VUID-VkTraceRaysIndirectCommandKHR-depth-03640# @depth@ /must/ be
+--     less than or equal to
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[2]
+--     ×
+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupSize@[2]
+--
+-- -   #VUID-VkTraceRaysIndirectCommandKHR-width-03641# @width@ × @height@
+--     × @depth@ /must/ be less than or equal to
+--     'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@maxRayDispatchInvocationCount@
+--
 -- = See Also
 --
 -- No cross-references are available
 data TraceRaysIndirectCommandKHR = TraceRaysIndirectCommandKHR
   { -- | @width@ is the width of the ray trace query dimensions.
-    --
-    -- #VUID-VkTraceRaysIndirectCommandKHR-width-03638# @width@ /must/ be less
-    -- than or equal to
-    -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[0]
-    -- ×
-    -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupSize@[0]
-    --
-    -- #VUID-VkTraceRaysIndirectCommandKHR-width-03641# @width@ × @height@ ×
-    -- @depth@ /must/ be less than or equal to
-    -- 'PhysicalDeviceRayTracingPipelinePropertiesKHR'::@maxRayDispatchInvocationCount@
     width :: Word32
   , -- | @height@ is height of the ray trace query dimensions.
-    --
-    -- #VUID-VkTraceRaysIndirectCommandKHR-height-03639# @height@ /must/ be
-    -- less than or equal to
-    -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[1]
-    -- ×
-    -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupSize@[1]
     height :: Word32
   , -- | @depth@ is depth of the ray trace query dimensions.
-    --
-    -- #VUID-VkTraceRaysIndirectCommandKHR-depth-03640# @depth@ /must/ be less
-    -- than or equal to
-    -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupCount@[2]
-    -- ×
-    -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxComputeWorkGroupSize@[2]
     depth :: Word32
   }
   deriving (Typeable, Eq)
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
@@ -669,6 +669,13 @@
 
 -- | vkGetPhysicalDeviceSurfaceCapabilitiesKHR - Query surface capabilities
 --
+-- == Valid Usage
+--
+-- -   [[VUID-{refpage}-surface-06211]] @surface@ /must/ be supported by
+--     @physicalDevice@, as reported by
+--     'getPhysicalDeviceSurfaceSupportKHR' or an equivalent
+--     platform-specific mechanism
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-physicalDevice-parameter#
@@ -766,8 +773,8 @@
 --
 -- == Valid Usage
 --
--- -   #VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-02739# @surface@
---     /must/ be supported by @physicalDevice@, as reported by
+-- -   [[VUID-{refpage}-surface-06211]] @surface@ /must/ be supported by
+--     @physicalDevice@, as reported by
 --     'getPhysicalDeviceSurfaceSupportKHR' or an equivalent
 --     platform-specific mechanism
 --
@@ -866,6 +873,13 @@
 -- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of
 -- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the
 -- available modes were returned.
+--
+-- == Valid Usage
+--
+-- -   [[VUID-{refpage}-surface-06211]] @surface@ /must/ be supported by
+--     @physicalDevice@, as reported by
+--     'getPhysicalDeviceSurfaceSupportKHR' or an equivalent
+--     platform-specific mechanism
 --
 -- == Valid Usage (Implicit)
 --
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
@@ -2016,6 +2016,14 @@
 -- modes /must/ be a subset of the modes returned by
 -- 'getDeviceGroupPresentCapabilitiesKHR'.
 --
+-- == Valid Usage
+--
+-- -   #VUID-vkGetDeviceGroupSurfacePresentModesKHR-surface-06212#
+--     @surface@ /must/ be supported by all physical devices associated
+--     with @device@, as reported by
+--     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR'
+--     or an equivalent platform-specific mechanism
+--
 -- == Valid Usage (Implicit)
 --
 -- -   #VUID-vkGetDeviceGroupSurfacePresentModesKHR-device-parameter#
@@ -2212,6 +2220,13 @@
 -- in response to the surface being moved, resized, or occluded.
 --
 -- The rectangles returned by this command /must/ not overlap.
+--
+-- == Valid Usage
+--
+-- -   [[VUID-{refpage}-surface-06211]] @surface@ /must/ be supported by
+--     @physicalDevice@, as reported by
+--     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR'
+--     or an equivalent platform-specific mechanism
 --
 -- == Valid Usage (Implicit)
 --
diff --git a/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs b/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs
--- a/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs
+++ b/src/Vulkan/Extensions/VK_NV_device_generated_commands.hs
@@ -810,9 +810,9 @@
 -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02701# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command requires any dynamic state, that state
---     /must/ have been set or inherited for @commandBuffer@, and done so
---     after any previously bound pipeline with the corresponding state not
---     specified as dynamic
+--     /must/ have been set or inherited (if the @@ extension is enabled)
+--     for @commandBuffer@, and done so after any previously bound pipeline
+--     with the corresponding state not specified as dynamic
 --
 -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-02859# There /must/ not
 --     have been any calls to dynamic state setting commands for any state
diff --git a/src/Vulkan/Extensions/VK_NV_mesh_shader.hs b/src/Vulkan/Extensions/VK_NV_mesh_shader.hs
--- a/src/Vulkan/Extensions/VK_NV_mesh_shader.hs
+++ b/src/Vulkan/Extensions/VK_NV_mesh_shader.hs
@@ -429,9 +429,9 @@
 -- -   #VUID-vkCmdDrawMeshTasksNV-commandBuffer-02701# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command requires any dynamic state, that state
---     /must/ have been set or inherited for @commandBuffer@, and done so
---     after any previously bound pipeline with the corresponding state not
---     specified as dynamic
+--     /must/ have been set or inherited (if the @@ extension is enabled)
+--     for @commandBuffer@, and done so after any previously bound pipeline
+--     with the corresponding state not specified as dynamic
 --
 -- -   #VUID-vkCmdDrawMeshTasksNV-None-02859# There /must/ not have been
 --     any calls to dynamic state setting commands for any state not
@@ -1005,9 +1005,9 @@
 -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02701# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command requires any dynamic state, that state
---     /must/ have been set or inherited for @commandBuffer@, and done so
---     after any previously bound pipeline with the corresponding state not
---     specified as dynamic
+--     /must/ have been set or inherited (if the @@ extension is enabled)
+--     for @commandBuffer@, and done so after any previously bound pipeline
+--     with the corresponding state not specified as dynamic
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-02859# There /must/ not have
 --     been any calls to dynamic state setting commands for any state not
@@ -1629,9 +1629,9 @@
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02701# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command requires any dynamic state, that state
---     /must/ have been set or inherited for @commandBuffer@, and done so
---     after any previously bound pipeline with the corresponding state not
---     specified as dynamic
+--     /must/ have been set or inherited (if the @@ extension is enabled)
+--     for @commandBuffer@, and done so after any previously bound pipeline
+--     with the corresponding state not specified as dynamic
 --
 -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02859# There /must/ not
 --     have been any calls to dynamic state setting commands for any state
diff --git a/src/Vulkan/Extensions/VK_NV_ray_tracing.hs b/src/Vulkan/Extensions/VK_NV_ray_tracing.hs
--- a/src/Vulkan/Extensions/VK_NV_ray_tracing.hs
+++ b/src/Vulkan/Extensions/VK_NV_ray_tracing.hs
@@ -1715,9 +1715,9 @@
 -- -   #VUID-vkCmdTraceRaysNV-commandBuffer-02701# If the
 --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
 --     point used by this command requires any dynamic state, that state
---     /must/ have been set or inherited for @commandBuffer@, and done so
---     after any previously bound pipeline with the corresponding state not
---     specified as dynamic
+--     /must/ have been set or inherited (if the @@ extension is enabled)
+--     for @commandBuffer@, and done so after any previously bound pipeline
+--     with the corresponding state not specified as dynamic
 --
 -- -   #VUID-vkCmdTraceRaysNV-None-02859# There /must/ not have been any
 --     calls to dynamic state setting commands for any state not specified
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 = 185
+pattern HEADER_VERSION = 186
 
 
 pattern HEADER_VERSION_COMPLETE :: Word32
-pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 2 185
+pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 2 186
 
 
 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.11.3
+version:        3.11.4
 synopsis:       Bindings to the Vulkan graphics API.
 description:    Please see [the readme](https://github.com/expipiplus1/vulkan/#readme)
 category:       Graphics
