diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -2,6 +2,9 @@
 
 ## WIP
 
+## [3.6.5] - 2020-08-17
+  - Bump API version to 1.2.151
+
 ## [3.6.4] - 2020-08-11
   - Bump API version to 1.2.150
 
diff --git a/src/Vulkan/Core10/Enums/QueueFlagBits.hs b/src/Vulkan/Core10/Enums/QueueFlagBits.hs
--- a/src/Vulkan/Core10/Enums/QueueFlagBits.hs
+++ b/src/Vulkan/Core10/Enums/QueueFlagBits.hs
@@ -49,9 +49,8 @@
 --     'Vulkan.Core10.Enums.DeviceQueueCreateFlagBits.DEVICE_QUEUE_CREATE_PROTECTED_BIT'
 --     bit. (see
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-protected-memory Protected Memory>).
---     If the protected memory physical device feature is supported, then
---     at least one queue family of at least one physical device exposed by
---     the implementation /must/ support this bit.
+--     If the physical device supports the @protectedMemory@ feature, at
+--     least one of its queue families /must/ support this bit.
 --
 -- If an implementation exposes any queue family that supports graphics
 -- operations, at least one queue family of at least one physical device
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
@@ -909,7 +909,7 @@
 --     /must/ be compatible with the @format@ as described in the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility compatibility table>
 --
--- -   If @flags@ dose not contain
+-- -   If @flags@ does not contain
 --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_MUTABLE_FORMAT_BIT'
 --     and the @pNext@ chain include a
 --     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'
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
@@ -1056,6 +1056,13 @@
 --     in the X dimension of the pipeline /must/ be a multiple of
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-subgroup-size subgroupSize>
 --
+-- -   The SPIR-V code that was used to create @module@ /must/ be valid as
+--     described by the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirv-spec Khronos SPIR-V Specification>
+--     after applying the specializations provided in
+--     @pSpecializationInfo@, if any, and then converting all
+--     specialization constants into fixed constants.
+--
 -- == Valid Usage (Implicit)
 --
 -- -   @sType@ /must/ be
diff --git a/src/Vulkan/Core10/Shader.hs b/src/Vulkan/Core10/Shader.hs
--- a/src/Vulkan/Core10/Shader.hs
+++ b/src/Vulkan/Core10/Shader.hs
@@ -285,6 +285,17 @@
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table SPIR-V Environment>
 --     appendix, one of the corresponding requirements /must/ be satisfied
 --
+-- -   @pCode@ /must/ not declare any SPIR-V extension that is not
+--     supported by the API, as described by the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-extensions Extension>
+--     section of the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities SPIR-V Environment>
+--     appendix
+--
+-- -   If @pCode@ declares any of the SPIR-V extensions listed in the
+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-extensions-table SPIR-V Environment>
+--     appendix, one of the corresponding requirements /must/ be satisfied
+--
 -- == Valid Usage (Implicit)
 --
 -- -   @sType@ /must/ be
diff --git a/src/Vulkan/Core12.hs b/src/Vulkan/Core12.hs
--- a/src/Vulkan/Core12.hs
+++ b/src/Vulkan/Core12.hs
@@ -337,23 +337,29 @@
     subgroupSize :: Word32
   , -- | @subgroupSupportedStages@ is a bitfield of
     -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.ShaderStageFlagBits' describing
-    -- the shader stages that subgroup operations are supported in.
-    -- @subgroupSupportedStages@ will have the
+    -- the shader stages that
+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-group-operations group operations>
+    -- with
+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>
+    -- are supported in. @subgroupSupportedStages@ will have the
     -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_COMPUTE_BIT' bit
     -- set if any of the physical device’s queues support
     -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT'.
     subgroupSupportedStages :: ShaderStageFlags
   , -- | @subgroupSupportedOperations@ is a bitmask of
     -- 'Vulkan.Core11.Enums.SubgroupFeatureFlagBits.SubgroupFeatureFlagBits'
-    -- specifying the sets of subgroup operations supported on this device.
-    -- @subgroupSupportedOperations@ will have the
+    -- specifying the sets of
+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-group-operations group operations>
+    -- with
+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-scope-subgroup subgroup scope>
+    -- supported on this device. @subgroupSupportedOperations@ will have the
     -- 'Vulkan.Core11.Enums.SubgroupFeatureFlagBits.SUBGROUP_FEATURE_BASIC_BIT'
     -- bit set if any of the physical device’s queues support
     -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or
     -- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT'.
     subgroupSupportedOperations :: SubgroupFeatureFlags
   , -- | @subgroupQuadOperationsInAllStages@ is a boolean specifying whether
-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-subgroup-quad quad subgroup operations>
+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-quad-operations quad group operations>
     -- are available in all stages, or are restricted to fragment and compute
     -- stages.
     subgroupQuadOperationsInAllStages :: Bool
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
@@ -1423,7 +1423,7 @@
 --     /must/ be compatible with the @format@ as described in the
 --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility compatibility table>
 --
--- -   If @flags@ dose not contain
+-- -   If @flags@ does not contain
 --     'SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR' and the @pNext@ chain
 --     include a
 --     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo'
diff --git a/src/Vulkan/Version.hs b/src/Vulkan/Version.hs
--- a/src/Vulkan/Version.hs
+++ b/src/Vulkan/Version.hs
@@ -14,11 +14,11 @@
 import Data.Word (Word32)
 
 pattern HEADER_VERSION :: Word32
-pattern HEADER_VERSION = 150
+pattern HEADER_VERSION = 151
 
 
 pattern HEADER_VERSION_COMPLETE :: Word32
-pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 150
+pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 151
 
 
 pattern MAKE_VERSION :: Word32 -> Word32 -> Word32 -> Word32
diff --git a/vulkan.cabal b/vulkan.cabal
--- a/vulkan.cabal
+++ b/vulkan.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: a4fb7621925a28b93d11cd1be3a5a0f474437bbe2a5057ebb959332de6ed3be3
+-- hash: b9a817ccef44d663d1522c129803e05df610e66d450721233f4d6070dec7c18b
 
 name:           vulkan
-version:        3.6.4
+version:        3.6.5
 synopsis:       Bindings to the Vulkan graphics API.
 category:       Graphics
 homepage:       https://github.com/expipiplus1/vulkan#readme
