packages feed

vulkan 3.6.10 → 3.6.11

raw patch · 41 files changed

+2258/−250 lines, 41 files

Files

− LICENSE
@@ -1,30 +0,0 @@-Copyright Joe Hermaszewski (c) 2016--All rights reserved.--Redistribution and use in source and binary forms, with or without-modification, are permitted provided that the following conditions are met:--    * Redistributions of source code must retain the above copyright-      notice, this list of conditions and the following disclaimer.--    * Redistributions in binary form must reproduce the above-      copyright notice, this list of conditions and the following-      disclaimer in the documentation and/or other materials provided-      with the distribution.--    * Neither the name of Joe Hermaszewski nor the names of other-      contributors may be used to endorse or promote products derived-      from this software without specific prior written permission.--THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
changelog.md view
@@ -2,6 +2,9 @@  ## WIP +## [3.6.11] - 2020-10-27+  - Bump API version to v1.2.158+ ## [3.6.10] - 2020-10-12   - Bump API version to v1.2.157 
+ package.yaml view
@@ -0,0 +1,89 @@+name: vulkan+version: 3.6.11+synopsis: Bindings to the Vulkan graphics API.+category: Graphics+maintainer: Joe Hermaszewski <live.long.and.prosper@monoid.al>+github: expipiplus1/vulkan+extra-source-files:+  - readme.md+  - changelog.md+  - package.yaml+license: BSD-3-Clause++library:+  source-dirs: src+  verbatim:+    other-modules:+  dependencies:+    - base < 4.15+    - bytestring+    - transformers+    - vector+  when:+    - condition: os(windows)+      then:+        extra-libraries: vulkan-1+      else:+        extra-libraries: vulkan+    - condition: flag(safe-foreign-calls)+      cpp-options: -DSAFE_FOREIGN_CALLS+    - condition: flag(generic-instances)+      cpp-options: -DGENERIC_INSTANCES+  ghc-options:+    - -Wall+    - -Wno-unticked-promoted-constructors+    - -Wno-missing-pattern-synonym-signatures+    - -Wno-unused-imports+    - -Wno-missing-signatures+    - -Wno-partial-type-signatures++flags:+  safe-foreign-calls:+    description:+      Do not mark foreign imports as 'unsafe'. This means that+      callbacks from Vulkan to Haskell will work. If you are using+      these then make sure this flag is enabled.+    default: no+    manual: yes++  generic-instances:+    description:+      Derive Generic instances for all structs. Disabled by default because of+      code size and compile time impact.+    default: no+    manual: yes++default-extensions:+  - AllowAmbiguousTypes+  - CPP+  - DataKinds+  - DefaultSignatures+  - DeriveAnyClass+  - DeriveGeneric+  - DerivingStrategies+  - DuplicateRecordFields+  - FlexibleContexts+  - FlexibleInstances+  - GADTs+  - GeneralizedNewtypeDeriving+  - InstanceSigs+  - LambdaCase+  - MagicHash+  - NoMonomorphismRestriction+  - OverloadedStrings+  - PartialTypeSignatures+  - PatternSynonyms+  - PolyKinds+  - QuantifiedConstraints+  - RankNTypes+  - RecordWildCards+  - RoleAnnotations+  - ScopedTypeVariables+  - StandaloneDeriving+  - Strict+  - TypeApplications+  - TypeFamilyDependencies+  - TypeOperators+  - TypeSynonymInstances+  - UndecidableInstances+  - ViewPatterns
readme.md view
@@ -384,13 +384,21 @@   - pkg-config   - SDL2   - `stack exec -- pacman -S mingw-w64-x86_64-pkg-config mingw-w64-x86_64-SDL2`-  - Note that the above command will also install mingw's `libvulkan-1.dll`,-    I had trouble getting things to run with this dll, so make sure you're-    linking to the windows SDK installed earlier instead.+  - Note that the above command will also install mingw's `libvulkan-1.dll`.+    Make sure that the Vulkan DLL linked by GHC is the same one that SDL+    loads at runtime. By default SDL will load+    `vulkan-1.dll`<sup>[1](#sdl-load)</sup>, so if you intend to use mingw's+    `libvulkan-1.dll` make sure to either set the `SDL_VULKAN_LIBRARY`+    environment variable to `"libvulkan-1.dll"` or pass `Just+    "libvulkan-1.dll"` to [SDL's+    `vkLoadLibrary`](https://hackage.haskell.org/package/sdl2-2.5.0.0/docs/SDL-Video-Vulkan.html#v:vkLoadLibrary)+    before creating a window. - Build the packages-  - `stack --extra-lib-dirs C:/VulkanSDK/1.2.135.0 build`+  - `stack --extra-lib-dirs C:/VulkanSDK/1.2.135.0/Lib build`+  - You can add `extra-lib-dirs: [ C:/VulkanSDK/1.2.135.0/Lib ]` to your `stack.yaml` +    instead of using the command line option here. - Run an example program-  - `stack --extra-lib-dirs C:/VulkanSDK/1.2.135.0 run resize`+  - `stack --extra-lib-dirs C:/VulkanSDK/1.2.135.0/Lib run resize`  ## Examples @@ -433,3 +441,5 @@   to pass `NULL` for the vector with a non-zero count. In these cases it was   deemed clearer to preserve the "count" member and allow the Haskell   application to pass a zero-length vector to indicate `NULL`.++<a name="sdl-load">3</a>: <https://github.com/spurious/SDL-mirror/blob/6b6170caf69b4189c9a9d14fca96e97f09bbcc41/src/video/windows/SDL_windowsvulkan.c#L50-L54>
src/Vulkan/CStruct/Extends.hs view
@@ -221,6 +221,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_filter_cubic (FilterCubicImageViewImageFormatPropertiesEXT) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (FormatProperties) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (FormatProperties2)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (FragmentShadingRateAttachmentInfoKHR) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (FramebufferAttachmentImageInfo) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (FramebufferAttachmentsCreateInfo) import {-# SOURCE #-} Vulkan.Core10.Pass (FramebufferCreateInfo)@@ -360,6 +361,9 @@ 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)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRatePropertiesKHR) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation (PhysicalDeviceGroupProperties) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceIDProperties)@@ -423,6 +427,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsPropertiesNV) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types (PhysicalDeviceShaderSubgroupExtendedTypesFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_terminate_invocation (PhysicalDeviceShaderTerminateInvocationFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PhysicalDeviceShadingRateImageFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PhysicalDeviceShadingRateImagePropertiesNV) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceSparseImageFormatInfo2)@@ -466,6 +471,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineExecutableInternalRepresentationKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineExecutablePropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineExecutableStatisticKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PipelineFragmentShadingRateStateCreateInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PipelineInfoKHR) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineInputAssemblyStateCreateInfo) import {-# SOURCE #-} Vulkan.Core10.PipelineLayout (PipelineLayoutCreateInfo)@@ -824,6 +830,8 @@   Extends DeviceCreateInfo PhysicalDevicePortabilitySubsetFeaturesKHR = ()   Extends DeviceCreateInfo PhysicalDevice4444FormatsFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = ()+  Extends DeviceCreateInfo PhysicalDeviceFragmentShadingRateFeaturesKHR = ()+  Extends DeviceCreateInfo PhysicalDeviceShaderTerminateInvocationFeaturesKHR = ()   Extends DeviceQueueCreateInfo DeviceQueueGlobalPriorityCreateInfoEXT = ()   Extends FenceCreateInfo ExportFenceCreateInfo = ()   Extends FenceCreateInfo ExportFenceWin32HandleInfoKHR = ()@@ -834,6 +842,7 @@   Extends GraphicsPipelineCreateInfo PipelineRepresentativeFragmentTestStateCreateInfoNV = ()   Extends GraphicsPipelineCreateInfo PipelineCreationFeedbackCreateInfoEXT = ()   Extends GraphicsPipelineCreateInfo PipelineCompilerControlCreateInfoAMD = ()+  Extends GraphicsPipelineCreateInfo PipelineFragmentShadingRateStateCreateInfoKHR = ()   Extends ImageCreateInfo DedicatedAllocationImageCreateInfoNV = ()   Extends ImageCreateInfo ExternalMemoryImageCreateInfoNV = ()   Extends ImageCreateInfo ExternalMemoryImageCreateInfo = ()@@ -944,6 +953,8 @@   Extends PhysicalDeviceFeatures2 PhysicalDevicePortabilitySubsetFeaturesKHR = ()   Extends PhysicalDeviceFeatures2 PhysicalDevice4444FormatsFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShadingRateFeaturesKHR = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderTerminateInvocationFeaturesKHR = ()   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceExternalImageFormatInfo = ()   Extends PhysicalDeviceImageFormatInfo2 ImageFormatListCreateInfo = ()   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceImageDrmFormatModifierInfoEXT = ()@@ -993,6 +1004,7 @@   Extends PhysicalDeviceProperties2 PhysicalDeviceCustomBorderColorPropertiesEXT = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceRobustness2PropertiesEXT = ()   Extends PhysicalDeviceProperties2 PhysicalDevicePortabilitySubsetPropertiesKHR = ()+  Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShadingRatePropertiesKHR = ()   Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveInfoEXT = ()   Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveWin32InfoEXT = ()   Extends PipelineColorBlendStateCreateInfo PipelineColorBlendAdvancedStateCreateInfoEXT = ()@@ -1048,6 +1060,7 @@   Extends SubmitInfo TimelineSemaphoreSubmitInfo = ()   Extends SubmitInfo PerformanceQuerySubmitInfoKHR = ()   Extends SubpassDescription2 SubpassDescriptionDepthStencilResolve = ()+  Extends SubpassDescription2 FragmentShadingRateAttachmentInfoKHR = ()   Extends SurfaceCapabilities2KHR DisplayNativeHdrSurfaceCapabilitiesAMD = ()   Extends SurfaceCapabilities2KHR SharedPresentSurfaceCapabilitiesKHR = ()   Extends SurfaceCapabilities2KHR SurfaceProtectedCapabilitiesKHR = ()@@ -1412,6 +1425,11 @@   STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR -> go @PhysicalDevicePortabilitySubsetPropertiesKHR   STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT -> go @PhysicalDevice4444FormatsFeaturesEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT -> go @PhysicalDeviceShaderImageAtomicInt64FeaturesEXT+  STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR -> go @FragmentShadingRateAttachmentInfoKHR+  STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR -> go @PipelineFragmentShadingRateStateCreateInfoKHR+  STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR -> go @PhysicalDeviceFragmentShadingRateFeaturesKHR+  STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR -> go @PhysicalDeviceFragmentShadingRatePropertiesKHR+  STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR -> go @PhysicalDeviceShaderTerminateInvocationFeaturesKHR   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@@ -1714,6 +1732,11 @@ {-# complete (::&) :: PhysicalDevicePortabilitySubsetPropertiesKHR #-} {-# complete (::&) :: PhysicalDevice4444FormatsFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceShaderImageAtomicInt64FeaturesEXT #-}+{-# complete (::&) :: FragmentShadingRateAttachmentInfoKHR #-}+{-# complete (::&) :: PipelineFragmentShadingRateStateCreateInfoKHR #-}+{-# complete (::&) :: PhysicalDeviceFragmentShadingRateFeaturesKHR #-}+{-# complete (::&) :: PhysicalDeviceFragmentShadingRatePropertiesKHR #-}+{-# complete (::&) :: PhysicalDeviceShaderTerminateInvocationFeaturesKHR #-}  -- | View the head and tail of a 'Chain', see '::&' --
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -1620,9 +1620,11 @@ -- -- == Valid Usage ----- -   If a 'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' as a result of this---     command, then the image view’s+-- -   If a 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, 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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'@@ -1960,6 +1962,20 @@ --     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ --     state --+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+--     limit is not supported, the bound graphics pipeline was created with+--     the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, and any of the shader stages of the bound+--     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+--     then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ be @1@+-- -- -   If @commandBuffer@ is a protected command buffer, any resource --     written to by the 'Vulkan.Core10.Handles.Pipeline' object bound to --     the pipeline bind point used by this command /must/ not be an@@ -2079,9 +2095,11 @@ -- -- == Valid Usage ----- -   If a 'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' as a result of this---     command, then the image view’s+-- -   If a 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, 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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'@@ -2419,6 +2437,20 @@ --     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ --     state --+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+--     limit is not supported, the bound graphics pipeline was created with+--     the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, and any of the shader stages of the bound+--     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+--     then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ be @1@+-- -- -   If @commandBuffer@ is a protected command buffer, any resource --     written to by the 'Vulkan.Core10.Handles.Pipeline' object bound to --     the pipeline bind point used by this command /must/ not be an@@ -2532,9 +2564,11 @@ -- -- == Valid Usage ----- -   If a 'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' as a result of this---     command, then the image view’s+-- -   If a 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, 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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'@@ -2872,6 +2906,20 @@ --     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ --     state --+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+--     limit is not supported, the bound graphics pipeline was created with+--     the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, and any of the shader stages of the bound+--     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+--     then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ be @1@+-- -- -   All vertex input bindings accessed via vertex input variables --     declared in the vertex shader entry point’s interface /must/ have --     either valid or 'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers@@ -3009,9 +3057,11 @@ -- -- == Valid Usage ----- -   If a 'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' as a result of this---     command, then the image view’s+-- -   If a 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, 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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'@@ -3349,6 +3399,20 @@ --     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ --     state --+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+--     limit is not supported, the bound graphics pipeline was created with+--     the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, and any of the shader stages of the bound+--     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+--     then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ be @1@+-- -- -   All vertex input bindings accessed via vertex input variables --     declared in the vertex shader entry point’s interface /must/ have --     either valid or 'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers@@ -3482,9 +3546,11 @@ -- -- == Valid Usage ----- -   If a 'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' as a result of this---     command, then the image view’s+-- -   If a 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, 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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'@@ -3766,9 +3832,11 @@ -- -- == Valid Usage ----- -   If a 'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' as a result of this---     command, then the image view’s+-- -   If a 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, 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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'
src/Vulkan/Core10/Device.hs view
@@ -108,6 +108,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map (PhysicalDeviceFragmentDensityMapFeaturesEXT) 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_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_robustness (PhysicalDeviceImageRobustnessFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (PhysicalDeviceImagelessFramebufferFeatures)@@ -140,6 +141,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_shader_integer_functions2 (PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsFeaturesNV) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types (PhysicalDeviceShaderSubgroupExtendedTypesFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_terminate_invocation (PhysicalDeviceShaderTerminateInvocationFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PhysicalDeviceShadingRateImageFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subgroup_size_control (PhysicalDeviceSubgroupSizeControlFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_texel_buffer_alignment (PhysicalDeviceTexelBufferAlignmentFeaturesEXT)@@ -603,6 +605,42 @@ --     'Vulkan.Core10.ExtensionDiscovery.enumerateDeviceExtensionProperties', --     @ppEnabledExtensions@ /must/ include \"VK_KHR_portability_subset\". --+-- -   If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+--     is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>+--     /must/ not be enabled+--+-- -   If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+--     is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>+--     /must/ not be enabled+--+-- -   If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+--     is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+--     /must/ not be enabled+--+-- -   If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>+--     is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>+--     /must/ not be enabled+--+-- -   If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>+--     is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>+--     /must/ not be enabled+--+-- -   If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMap fragmentDensityMap>+--     is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+--     /must/ not be enabled+-- -- == Valid Usage (Implicit) -- -- -   @sType@ /must/ be@@ -643,6 +681,7 @@ --     'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapFeaturesEXT', --     'Vulkan.Extensions.VK_NV_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricFeaturesNV', --     'Vulkan.Extensions.VK_EXT_fragment_shader_interlock.PhysicalDeviceFragmentShaderInterlockFeaturesEXT',+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateFeaturesKHR', --     'Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset.PhysicalDeviceHostQueryResetFeatures', --     'Vulkan.Extensions.VK_EXT_image_robustness.PhysicalDeviceImageRobustnessFeaturesEXT', --     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.PhysicalDeviceImagelessFramebufferFeatures',@@ -675,6 +714,7 @@ --     'Vulkan.Extensions.VK_INTEL_shader_integer_functions2.PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL', --     'Vulkan.Extensions.VK_NV_shader_sm_builtins.PhysicalDeviceShaderSMBuiltinsFeaturesNV', --     'Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types.PhysicalDeviceShaderSubgroupExtendedTypesFeatures',+--     'Vulkan.Extensions.VK_KHR_shader_terminate_invocation.PhysicalDeviceShaderTerminateInvocationFeaturesKHR', --     'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImageFeaturesNV', --     'Vulkan.Extensions.VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeaturesEXT', --     'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentFeaturesEXT',@@ -762,6 +802,8 @@   getNext DeviceCreateInfo{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends DeviceCreateInfo e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeaturesKHR = Just f+    | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDevice4444FormatsFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetFeaturesKHR = Just f
src/Vulkan/Core10/DeviceInitialization.hs view
@@ -4113,14 +4113,16 @@     -- @ConstOffset@, or @ConstOffsets@ image operands of any of the     -- @OpImage@*@Gather@ image instructions.     maxTexelGatherOffset :: Word32-  , -- | @minInterpolationOffset@ is the minimum negative offset value for the-    -- @offset@ operand of the @InterpolateAtOffset@ extended instruction.+  , -- | @minInterpolationOffset@ is the base minimum (inclusive) negative offset+    -- value for the @Offset@ operand of the @InterpolateAtOffset@ extended+    -- instruction.     minInterpolationOffset :: Float-  , -- | @maxInterpolationOffset@ is the maximum positive offset value for the-    -- @offset@ operand of the @InterpolateAtOffset@ extended instruction.+  , -- | @maxInterpolationOffset@ is the base maximum (inclusive) positive offset+    -- value for the @Offset@ operand of the @InterpolateAtOffset@ extended+    -- instruction.     maxInterpolationOffset :: Float-  , -- | @subPixelInterpolationOffsetBits@ is the number of subpixel fractional-    -- bits that the @x@ and @y@ offsets to the @InterpolateAtOffset@ extended+  , -- | @subPixelInterpolationOffsetBits@ is the number of fractional bits that+    -- the @x@ and @y@ offsets to the @InterpolateAtOffset@ extended     -- instruction /may/ be rounded to as fixed-point values.     subPixelInterpolationOffsetBits :: Word32   , -- | @maxFramebufferWidth@ is the maximum width for a framebuffer. The@@ -4160,8 +4162,9 @@     framebufferNoAttachmentsSampleCounts :: SampleCountFlags   , -- | @maxColorAttachments@ is the maximum number of color attachments that     -- /can/ be used by a subpass in a render pass. The @colorAttachmentCount@-    -- member of the 'Vulkan.Core10.Pass.SubpassDescription' structure /must/-    -- be less than or equal to this limit.+    -- member of the 'Vulkan.Core10.Pass.SubpassDescription' or+    -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassDescription2'+    -- structure /must/ be less than or equal to this limit.     maxColorAttachments :: Word32   , -- | @sampledImageColorSampleCounts@ is a bitmask1 of     -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' indicating
src/Vulkan/Core10/Enums/AccessFlagBits.hs view
@@ -63,92 +63,92 @@ -- accesses of that type. The following table lists, for each access flag, -- which pipeline stages /can/ perform that type of access. ----- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | Access flag                                        | Supported pipeline stages                                                                       |--- +====================================================+=================================================================================================+--- | 'ACCESS_INDIRECT_COMMAND_READ_BIT'                 | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'                    |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_INDEX_READ_BIT'                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                     |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_VERTEX_ATTRIBUTE_READ_BIT'                 | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                     |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_UNIFORM_READ_BIT'                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                  |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                  |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',          |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                   |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',     |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',  |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                 |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or              |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                   |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_SHADER_READ_BIT'                           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                  |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                  |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',          |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                   |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',     |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',  |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                 |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or              |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                   |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_SHADER_WRITE_BIT'                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                  |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                  |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',          |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                   |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',     |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',  |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                 |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or              |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                   |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_INPUT_ATTACHMENT_READ_BIT'                 | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'                  |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_COLOR_ATTACHMENT_READ_BIT'                 | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'          |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_COLOR_ATTACHMENT_WRITE_BIT'                | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'          |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT'         | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or         |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'              |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT'        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or         |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'              |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFER_READ_BIT'                         | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT'                         |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFER_WRITE_BIT'                        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT'                         |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_HOST_READ_BIT'                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'                             |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_HOST_WRITE_BIT'                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'                             |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_MEMORY_READ_BIT'                           | Any                                                                                             |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_MEMORY_WRITE_BIT'                          | Any                                                                                             |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'          |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_COMMAND_PREPROCESS_READ_BIT_NV'            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'            |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV'           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'            |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT'        | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'        |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV'            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'            |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT'          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'           |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'  | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'           |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'                    |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR'       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR', or       |--- |                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------+--- | 'ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT'         | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'     |--- +----------------------------------------------------+-------------------------------------------------------------------------------------------------++-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | Access flag                                                                                           | Supported pipeline stages                                                                                |+-- +=======================================================================================================+==========================================================================================================++-- | 'ACCESS_INDIRECT_COMMAND_READ_BIT'                                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'                             |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_INDEX_READ_BIT'                                                                               | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                              |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_VERTEX_ATTRIBUTE_READ_BIT'                                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_INPUT_BIT'                              |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_UNIFORM_READ_BIT'                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                           |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                           |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',                   |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                            |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',              |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',           |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                          |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                       |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                            |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_SHADER_READ_BIT'                                                                              | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                           |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                           |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',                   |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                            |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',              |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',           |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                          |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                       |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                            |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_SHADER_WRITE_BIT'                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_NV',                           |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_NV',                           |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',                   |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT',                            |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT',              |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT',           |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_GEOMETRY_SHADER_BIT',                          |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT', or                       |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMPUTE_SHADER_BIT'                            |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_INPUT_ATTACHMENT_READ_BIT'                                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADER_BIT'                           |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_COLOR_ATTACHMENT_READ_BIT'                                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'                   |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_COLOR_ATTACHMENT_WRITE_BIT'                                                                   | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'                   |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT'                                                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or                  |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'                       |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT'                                                           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT', or                  |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT'                       |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFER_READ_BIT'                                                                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT'                                  |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFER_WRITE_BIT'                                                                           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFER_BIT'                                  |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_HOST_READ_BIT'                                                                                | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'                                      |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_HOST_WRITE_BIT'                                                                               | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'                                      |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_MEMORY_READ_BIT'                                                                              | Any                                                                                                      |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_MEMORY_WRITE_BIT'                                                                             | Any                                                                                                      |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT'                                                    | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'                   |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_COMMAND_PREPROCESS_READ_BIT_NV'                                                               | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'                     |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV'                                                              | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV'                     |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT'                                                           | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT'                 |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR' | 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT'                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'                    |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT'                                                     | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT'                    |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT'                                                      | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_DRAW_INDIRECT_BIT'                             |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR'                                                          | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR', or                |+-- |                                                                                                       | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'          |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR'                                                         | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'          |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------++-- | 'ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT'                                                            | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'              |+-- +-------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------+ -- -- Supported access types --@@ -265,9 +265,7 @@ -- during dynamic -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymapops fragment density map operations> pattern ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = AccessFlagBits 0x01000000--- | 'ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV' specifies read access to a--- shading rate image as part of a drawing command, as bound by--- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdBindShadingRateImageNV'.+-- No documentation found for Nested "VkAccessFlagBits" "VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV" pattern ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = AccessFlagBits 0x00800000 -- | 'ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR' specifies write access to -- an acceleration structure or
src/Vulkan/Core10/Enums/DynamicState.hs view
@@ -21,6 +21,7 @@                                                       , DYNAMIC_STATE_FRONT_FACE_EXT                                                       , DYNAMIC_STATE_CULL_MODE_EXT                                                       , DYNAMIC_STATE_LINE_STIPPLE_EXT+                                                      , DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR                                                       , DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV                                                       , DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV                                                       , DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV@@ -221,6 +222,12 @@ -- member @stippledLineEnable@ set to -- 'Vulkan.Core10.FundamentalTypes.TRUE'. pattern DYNAMIC_STATE_LINE_STIPPLE_EXT = DynamicState 1000259000+-- | 'DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' specifies that state in+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR'+-- before any draw commands.+pattern DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = DynamicState 1000226000 -- | 'DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV' specifies that the -- @pExclusiveScissors@ state in -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'@@ -297,6 +304,7 @@              DYNAMIC_STATE_FRONT_FACE_EXT,              DYNAMIC_STATE_CULL_MODE_EXT,              DYNAMIC_STATE_LINE_STIPPLE_EXT,+             DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR,              DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV,              DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV,              DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV,@@ -328,6 +336,7 @@     DYNAMIC_STATE_FRONT_FACE_EXT -> showString "DYNAMIC_STATE_FRONT_FACE_EXT"     DYNAMIC_STATE_CULL_MODE_EXT -> showString "DYNAMIC_STATE_CULL_MODE_EXT"     DYNAMIC_STATE_LINE_STIPPLE_EXT -> showString "DYNAMIC_STATE_LINE_STIPPLE_EXT"+    DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR -> showString "DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR"     DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV -> showString "DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV"     DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV -> showString "DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV"     DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV -> showString "DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV"@@ -359,6 +368,7 @@                             , ("DYNAMIC_STATE_FRONT_FACE_EXT", pure DYNAMIC_STATE_FRONT_FACE_EXT)                             , ("DYNAMIC_STATE_CULL_MODE_EXT", pure DYNAMIC_STATE_CULL_MODE_EXT)                             , ("DYNAMIC_STATE_LINE_STIPPLE_EXT", pure DYNAMIC_STATE_LINE_STIPPLE_EXT)+                            , ("DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR", pure DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR)                             , ("DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV", pure DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV)                             , ("DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV", pure DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV)                             , ("DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV", pure DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV)
src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs view
@@ -12,6 +12,7 @@                                                                          , FORMAT_FEATURE_BLIT_SRC_BIT                                                                          , FORMAT_FEATURE_BLIT_DST_BIT                                                                          , FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT+                                                                         , FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR                                                                          , FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT                                                                          , FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR                                                                          , FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG@@ -211,6 +212,12 @@ --     image view /can/ be used as a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>. --+-- -   'FORMAT_FEATURE_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>.+--     An implementation /must/ not set this feature for formats that with+--     numeric type other than @*UINT@, or set it as a buffer feature.+-- -- 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@@ -315,6 +322,12 @@ -- /should/ be proportional to, or a weighted average of, the number of -- comparison passes or failures. pattern FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = FormatFeatureFlagBits 0x00001000+-- | 'FORMAT_FEATURE_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>.+-- An implementation /must/ not set this feature for formats that with+-- numeric type other than @*UINT@, or set it as a buffer feature.+pattern FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = FormatFeatureFlagBits 0x40000000 -- | 'FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT' specifies that an image -- view /can/ be used as a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>.@@ -417,6 +430,7 @@     FORMAT_FEATURE_BLIT_SRC_BIT -> showString "FORMAT_FEATURE_BLIT_SRC_BIT"     FORMAT_FEATURE_BLIT_DST_BIT -> showString "FORMAT_FEATURE_BLIT_DST_BIT"     FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT -> showString "FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT"+    FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR -> showString "FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"     FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT -> showString "FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT"     FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR -> showString "FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"     FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG -> showString "FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG"@@ -446,6 +460,7 @@                             , ("FORMAT_FEATURE_BLIT_SRC_BIT", pure FORMAT_FEATURE_BLIT_SRC_BIT)                             , ("FORMAT_FEATURE_BLIT_DST_BIT", pure FORMAT_FEATURE_BLIT_DST_BIT)                             , ("FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", pure FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT)+                            , ("FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR", pure FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR)                             , ("FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT", pure FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT)                             , ("FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR", pure FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR)                             , ("FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG", pure FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG)
src/Vulkan/Core10/Enums/ImageLayout.hs view
@@ -156,13 +156,7 @@ -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT' -- usage bit enabled. pattern IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = ImageLayout 1000218000--- | 'IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV' /must/ only be used as a--- read-only--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-shading-rate-image shading-rate-image>.--- This layout is valid only for image subresources of images created with--- the--- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV'--- usage bit enabled.+-- No documentation found for Nested "VkImageLayout" "VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV" pattern IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = ImageLayout 1000164003 -- | 'IMAGE_LAYOUT_SHARED_PRESENT_KHR' is valid only for shared presentable -- images, and /must/ be used for any usage the image supports.
src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs view
@@ -85,10 +85,7 @@ -- use as a -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragmentdensitymapops fragment density map image>. pattern IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = ImageUsageFlagBits 0x00000200--- | 'IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV' specifies that the image /can/--- be used to create a 'Vulkan.Core10.Handles.ImageView' suitable for use--- as a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>.+-- No documentation found for Nested "VkImageUsageFlagBits" "VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV" pattern IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = ImageUsageFlagBits 0x00000100  type ImageUsageFlags = ImageUsageFlagBits
src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs view
@@ -165,7 +165,7 @@ -- -- -   'PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' ----- -   'PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV'+-- -   'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- -   'PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT' pattern PIPELINE_STAGE_ALL_GRAPHICS_BIT = PipelineStageFlagBits 0x00008000@@ -185,11 +185,7 @@ pattern PIPELINE_STAGE_MESH_SHADER_BIT_NV = PipelineStageFlagBits 0x00100000 -- | 'PIPELINE_STAGE_TASK_SHADER_BIT_NV' specifies the task shader stage. pattern PIPELINE_STAGE_TASK_SHADER_BIT_NV = PipelineStageFlagBits 0x00080000--- | 'PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV' specifies the stage of the--- pipeline where the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-shading-rate-image shading rate image>--- is read to determine the shading rate for portions of a rasterized--- primitive.+-- No documentation found for Nested "VkPipelineStageFlagBits" "VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV" pattern PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = PipelineStageFlagBits 0x00400000 -- | 'PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' specifies the -- execution of
src/Vulkan/Core10/Enums/SampleCountFlagBits.hs view
@@ -35,6 +35,7 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2', -- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.FramebufferMixedSamplesCombinationNV', -- 'Vulkan.Core10.Image.ImageCreateInfo',+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceSparseImageFormatInfo2', -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo', -- 'SampleCountFlags',
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -129,6 +129,11 @@                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR+                                                        , STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR+                                                        , STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT                                                         , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT@@ -136,6 +141,7 @@                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT                                                         , STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR                                                         , STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA                                                         , STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD                                                         , STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD@@ -636,6 +642,7 @@ -- 'Vulkan.Extensions.VK_KHR_external_fence_win32.FenceGetWin32HandleInfoKHR', -- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.FormatProperties2',+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentImageInfo', -- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo', -- 'Vulkan.Core10.Pass.FramebufferCreateInfo',@@ -754,6 +761,9 @@ -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapPropertiesEXT', -- 'Vulkan.Extensions.VK_NV_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_fragment_shader_interlock.PhysicalDeviceFragmentShaderInterlockFeaturesEXT',+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateKHR',+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.PhysicalDeviceGroupProperties', -- 'Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset.PhysicalDeviceHostQueryResetFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties',@@ -814,6 +824,7 @@ -- 'Vulkan.Extensions.VK_NV_shader_sm_builtins.PhysicalDeviceShaderSMBuiltinsFeaturesNV', -- 'Vulkan.Extensions.VK_NV_shader_sm_builtins.PhysicalDeviceShaderSMBuiltinsPropertiesNV', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types.PhysicalDeviceShaderSubgroupExtendedTypesFeatures',+-- 'Vulkan.Extensions.VK_KHR_shader_terminate_invocation.PhysicalDeviceShaderTerminateInvocationFeaturesKHR', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImageFeaturesNV', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImagePropertiesNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceSparseImageFormatInfo2',@@ -854,6 +865,7 @@ -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineExecutableInternalRepresentationKHR', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineExecutablePropertiesKHR', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineExecutableStatisticKHR',+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineInfoKHR', -- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo', -- 'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo',@@ -1218,6 +1230,16 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = StructureType 1000229000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = StructureType 1000227000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = StructureType 1000226004+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = StructureType 1000226003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = StructureType 1000226002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR"+pattern STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = StructureType 1000226001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"+pattern STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = StructureType 1000226000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = StructureType 1000225002 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT"@@ -1232,6 +1254,8 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = StructureType 1000218000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT" pattern STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = StructureType 1000217000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = StructureType 1000215000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA" pattern STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = StructureType 1000214000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD"@@ -2006,6 +2030,11 @@              STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD,              STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR,+             STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR,+             STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR,              STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT,              STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT,@@ -2013,6 +2042,7 @@              STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT,              STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT,              STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR,              STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA,              STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD,              STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD,@@ -2468,6 +2498,11 @@     STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT"     STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD"     STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD"+    STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR"+    STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR"+    STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR"+    STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR -> showString "STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR"+    STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR -> showString "STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"     STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT"     STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT -> showString "STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT"     STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT"@@ -2475,6 +2510,7 @@     STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT"     STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT"     STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT -> showString "STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT"+    STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR"     STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA -> showString "STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA"     STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD -> showString "STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD"     STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD -> showString "STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD"@@ -2930,6 +2966,11 @@                             , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT)                             , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD)                             , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD)+                            , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR)+                            , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR)+                            , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR)+                            , ("STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR", pure STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR)+                            , ("STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR", pure STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)                             , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT)                             , ("STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT", pure STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT)                             , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT)@@ -2937,6 +2978,7 @@                             , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT)                             , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT)                             , ("STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT", pure STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT)+                            , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR)                             , ("STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA", pure STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA)                             , ("STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD", pure STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD)                             , ("STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD", pure STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD)
src/Vulkan/Core10/FundamentalTypes.hs view
@@ -184,15 +184,20 @@ -- 'Vulkan.Extensions.VK_KHR_display.DisplayPlaneCapabilitiesKHR', -- 'Vulkan.Extensions.VK_KHR_display.DisplayPropertiesKHR', -- 'Vulkan.Extensions.VK_KHR_display.DisplaySurfaceCreateInfoKHR',+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR', -- 'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapPropertiesEXT',+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateKHR',+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR', -- 'Vulkan.Extensions.VK_EXT_sample_locations.PhysicalDeviceSampleLocationsPropertiesEXT', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImagePropertiesNV',+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR', -- 'Rect2D', 'Vulkan.Extensions.VK_KHR_incremental_present.RectLayerKHR', -- 'Vulkan.Extensions.VK_EXT_sample_locations.SampleLocationsInfoEXT', -- 'Vulkan.Extensions.VK_EXT_display_surface_counter.SurfaceCapabilities2EXT', -- 'Vulkan.Extensions.VK_KHR_surface.SurfaceCapabilitiesKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR',+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR', -- 'Vulkan.Core10.Pass.getRenderAreaGranularity' data Extent2D = Extent2D   { -- | @width@ is the width of the extent.@@ -425,6 +430,8 @@ -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapPropertiesEXT', -- 'Vulkan.Extensions.VK_NV_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_fragment_shader_interlock.PhysicalDeviceFragmentShaderInterlockFeaturesEXT',+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.PhysicalDeviceGroupProperties', -- 'Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset.PhysicalDeviceHostQueryResetFeatures', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties',@@ -465,6 +472,7 @@ -- 'Vulkan.Extensions.VK_INTEL_shader_integer_functions2.PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL', -- 'Vulkan.Extensions.VK_NV_shader_sm_builtins.PhysicalDeviceShaderSMBuiltinsFeaturesNV', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types.PhysicalDeviceShaderSubgroupExtendedTypesFeatures',+-- 'Vulkan.Extensions.VK_KHR_shader_terminate_invocation.PhysicalDeviceShaderTerminateInvocationFeaturesKHR', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImageFeaturesNV', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceSparseProperties', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup.PhysicalDeviceSubgroupProperties',
src/Vulkan/Core10/Handles.hs view
@@ -154,6 +154,7 @@ -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2', -- 'Vulkan.Extensions.VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2KHR',+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.getPhysicalDeviceFragmentShadingRatesKHR', -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceImageFormatProperties', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2', -- 'Vulkan.Extensions.VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2KHR',@@ -558,6 +559,7 @@ -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetEvent', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV',+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetFrontFaceEXT', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth',
src/Vulkan/Core10/Image.hs view
@@ -1210,11 +1210,11 @@ --     greater than @1@ -- -- -   If @usage@ includes---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV',+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR', --     @imageType@ /must/ be 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' -- -- -   If @usage@ includes---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV',+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR', --     @samples@ /must/ be --     'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' --
src/Vulkan/Core10/ImageView.hs view
@@ -964,7 +964,7 @@ --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-identity-mappings identity swizzle> -- -- -   If @image@ was created with @usage@ containing---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV',+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR', --     @viewType@ /must/ be --     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or --     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY'@@ -972,6 +972,20 @@ -- -   If @image@ was created with @usage@ containing --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV', --     @format@ /must/ be 'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT'+--+-- -   If the @usage@ for the image view includes+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR',+--     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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- -   If the @usage@ for the image view includes+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--     and+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-layeredShadingRateAttachments layeredShadingRateAttachments>+--     is 'Vulkan.Core10.FundamentalTypes.FALSE',+--     @subresourceRange.layerCount@ /must/ be @1@ -- -- -   If --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentDensityMapDynamic dynamic fragment density map>
src/Vulkan/Core10/OtherTypes.hs view
@@ -546,9 +546,9 @@ --     or @oldLayout@ and @newLayout@ define a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-image-layout-transitions image layout transition>, --     and @oldLayout@ or @newLayout@ is---     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV'+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR' --     then @image@ /must/ have been created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV'+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' --     set -- -- -   If @image@ has a single-plane color format or is not /disjoint/,
src/Vulkan/Core10/Pass.hs view
@@ -2033,15 +2033,31 @@ -- -- -   If @flags@ does not include --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     each element of @pAttachments@ /must/ have dimensions at least as---     large as the corresponding framebuffer dimension except for any---     element that is referenced by @fragmentDensityMapAttachment@+--     each element of @pAttachments@ that is used as an input, color,+--     resolve, or depth\/stencil attachment by @renderPass@ /must/ have+--     been created with a VkImageCreateInfo::@width@ greater than or equal+--     to @width@ --+-- -   If @flags@ does not include+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of @pAttachments@ that is used as an input, color,+--     resolve, or depth\/stencil attachment by @renderPass@ /must/ have+--     been created with a VkImageCreateInfo::@height@ greater than or+--     equal to @height@+--+-- -   If @flags@ does not include+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of @pAttachments@ that is used as an input, color,+--     resolve, or depth\/stencil attachment by @renderPass@ /must/ have+--     been created with a+--     VkImageViewCreateInfo::@subresourceRange.pname@:layerCount greater+--     than or equal to @layers@+-- -- -   If @renderPass@ was specified with non-zero view masks, each element---     of @pAttachments@ that is not referenced by---     @fragmentDensityMapAttachment@ /must/ have a @layerCount@ greater---     than the index of the most significant bit set in any of those view---     masks+--     of @pAttachments@ that is used as an input, color, resolve, or+--     depth\/stencil attachment by @renderPass@ /must/ have a @layerCount@+--     greater than the index of the most significant bit set in any of+--     those view masks -- -- -   If @renderPass@ was specified with non-zero view masks, each element --     of @pAttachments@ that is referenced by@@ -2070,6 +2086,43 @@ -- -- -   If @flags@ does not include --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     and @renderPass@ was specified with non-zero view masks, each+--     element of @pAttachments@ that is 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>+--     by @renderPass@ /must/ have a @layerCount@ that is either @1@, or+--     greater than the index of the most significant bit set in any of+--     those view masks+--+-- -   If @flags@ does not include+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     and @renderPass@ was not specified with non-zero view masks, each+--     element of @pAttachments@ that is 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>+--     by @renderPass@ /must/ have a @layerCount@ that is either @1@, or+--     greater than @layers@+--+-- -   If @flags@ does not include+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     an element of @pAttachments@ that is 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>+--     /must/ have a width at least as large as ⌈@width@ \\ @texelWidth@⌉,+--     where @texelWidth@ is the largest value of+--     @shadingRateAttachmentTexelSize.width@ in a+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR'+--     which references that attachment+--+-- -   If @flags@ does not include+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     an element of @pAttachments@ that is 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>+--     /must/ have a height at least as large as ⌈@height@ \\+--     @texelHeight@⌉, where @texelHeight@ is the largest value of+--     @shadingRateAttachmentTexelSize.height@ in a+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR'+--     which references that attachment+--+-- -   If @flags@ does not include+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', --     each element of @pAttachments@ /must/ only specify a single mip --     level --@@ -2108,43 +2161,40 @@ -- -- -   If @flags@ includes --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     the @pNext@ chain /must/ include a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'---     structure+--     the @pNext@ chain /must/ include an instance of+--     'Vulkan.Extensions.VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfoKHR' -- -- -   If @flags@ includes --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     the @attachmentImageInfoCount@ member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'---     structure included in the @pNext@ chain /must/ be equal to either---     zero or @attachmentCount@+--     the @attachmentImageInfoCount@ member of an instance of+--     'Vulkan.Extensions.VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfoKHR'+--     in the @pNext@ chain /must/ be equal to either zero or+--     @attachmentCount@ -- -- -   If @flags@ includes --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', --     the @width@ member of any element of the @pAttachmentImageInfos@---     member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'---     structure included in the @pNext@ chain /must/ be greater than or---     equal to @width@, except for any element that is referenced by---     'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderPassFragmentDensityMapCreateInfoEXT'::@fragmentDensityMapAttachment@---     in @renderPass@+--     member of an instance of+--     'Vulkan.Extensions.VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfoKHR'+--     in the @pNext@ chain that is used as an input, color, resolve or+--     depth\/stencil attachment in @pRenderPass@ /must/ be greater than or+--     equal to @width@ -- -- -   If @flags@ includes --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', --     the @height@ member of any element of the @pAttachmentImageInfos@---     member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'---     structure included in the @pNext@ chain /must/ be greater than or---     equal to @height@, except for any element that is referenced by---     'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderPassFragmentDensityMapCreateInfoEXT'::@fragmentDensityMapAttachment@---     in @renderPass@+--     member of an instance of+--     'Vulkan.Extensions.VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfoKHR'+--     in the @pNext@ chain that is used as an input, color, resolve or+--     depth\/stencil attachment in @pRenderPass@ /must/ be greater than or+--     equal to @height@ -- -- -   If @flags@ includes --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', --     the @width@ member of any element of the @pAttachmentImageInfos@---     member of a---     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'---     structure included in the @pNext@ chain that is referenced by+--     member of an instance of+--     'Vulkan.Extensions.VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfoKHR'+--     in the @pNext@ chain that is referenced by --     'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderPassFragmentDensityMapCreateInfoEXT'::@fragmentDensityMapAttachment@ --     in @renderPass@ /must/ be greater than or equal to --     \(\left\lceil{\frac{width}{maxFragmentDensityTexelSize_{width}}}\right\rceil\)@@ -2159,22 +2209,59 @@ --     in @renderPass@ /must/ be greater than or equal to --     \(\left\lceil{\frac{height}{maxFragmentDensityTexelSize_{height}}}\right\rceil\) --+-- -   If @flags@ includes+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     the @width@ member of any element of the @pAttachmentImageInfos@+--     member of an instance of+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'+--     in the @pNext@ chain that is 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>+--     /must/ be greater than or equal to ⌈@width@ \\ @texelWidth@⌉, where+--     @texelWidth@ is the largest value of+--     @shadingRateAttachmentTexelSize.width@ in a+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR'+--     which references that attachment+--+-- -   If @flags@ includes+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     the @height@ member of any element of the @pAttachmentImageInfos@+--     member of an instance of+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'+--     in the @pNext@ chain that is 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>+--     /must/ be greater than or equal to ⌈@height@ \\ @texelHeight@⌉,+--     where @texelHeight@ is the largest value of+--     @shadingRateAttachmentTexelSize.height@ in a+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR'+--     which references that attachment+--+-- -   If @flags@ includes+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     the @layerCount@ member of any element of the+--     @pAttachmentImageInfos@ member of an instance of+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'+--     in the @pNext@ chain that is 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>+--     /must/ be either @1@, or greater than or equal to @layers@+-- -- -   If multiview is enabled for @renderPass@, and @flags@ includes --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', --     the @layerCount@ member of any element of the --     @pAttachmentImageInfos@ member of a --     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'---     structure included in the @pNext@ chain /must/ be greater than the---     maximum bit index set in the view mask in the subpasses in which it---     is used in @renderPass@+--     structure included in the @pNext@ chain used as an input, color,+--     resolve, or depth\/stencil attachment in @pRenderPass@ /must/ be+--     greater than the maximum bit index set in the view mask in the+--     subpasses in which it is used in @renderPass@ -- -- -   If multiview is not enabled for @renderPass@, and @flags@ includes --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT', --     the @layerCount@ member of any element of the --     @pAttachmentImageInfos@ member of a --     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'---     structure included in the @pNext@ chain /must/ be greater than or---     equal to @layers@+--     structure included in the @pNext@ chain used as an input, color,+--     resolve, or depth\/stencil attachment in @pRenderPass@ /must/ be+--     greater than or equal to @layers@ -- -- -   If @flags@ includes --     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',@@ -2228,6 +2315,23 @@ --     each element of @pAttachments@ /must/ have been created with --     'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@viewType@ not equal --     to 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D'+--+-- -   If @flags@ does not include+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     each element of @pAttachments@ that is used as a fragment shading+--     rate attachment by @renderPass@ /must/ have been created with a+--     @usage@ value including+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- -   If @flags@ includes+--     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',+--     the @usage@ member of any element of the @pAttachmentImageInfos@+--     member of a+--     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.FramebufferAttachmentsCreateInfo'+--     structure included in the @pNext@ chain that refers to an attachment+--     used as a fragment shading rate attachment by @renderPass@ /must/+--     include+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- -- == Valid Usage (Implicit) --
src/Vulkan/Core10/Pipeline.hs view
@@ -156,6 +156,7 @@ import Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlags (PipelineDepthStencilStateCreateFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_discard_rectangles (PipelineDiscardRectangleStateCreateInfoEXT) import Vulkan.Core10.Enums.PipelineDynamicStateCreateFlags (PipelineDynamicStateCreateFlags)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PipelineFragmentShadingRateStateCreateInfoKHR) import Vulkan.Core10.Enums.PipelineInputAssemblyStateCreateFlags (PipelineInputAssemblyStateCreateFlags) import Vulkan.Core10.Handles (PipelineLayout) import Vulkan.Core10.Enums.PipelineMultisampleStateCreateFlags (PipelineMultisampleStateCreateFlags)@@ -2572,9 +2573,8 @@ -- -- -   If @colorBlendOp@ or @alphaBlendOp@ is an --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blend-advanced advanced blend operation>,---     then 'Vulkan.Core10.Pass.SubpassDescription'::@colorAttachmentCount@---     of the subpass this pipeline is compiled against /must/ be less than---     or equal to+--     then @colorAttachmentCount@ of the subpass this pipeline is compiled+--     against /must/ be less than or equal to --     'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::advancedBlendMaxColorAttachments -- -- -   If the @VK_KHR_portability_subset@ extension is enabled, and@@ -2726,6 +2726,13 @@ -- '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 -- -- -   If the@@ -3392,6 +3399,13 @@ --     attachments, @pColorBlendState@ /must/ be a valid pointer to a valid --     'PipelineColorBlendStateCreateInfo' structure --+-- -   If the @rasterizerDiscardEnable@ member of @pRasterizationState@ is+--     'Vulkan.Core10.FundamentalTypes.FALSE',+--     @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@+-- -- -   If the depth bias clamping feature is not enabled, no element of the --     @pDynamicStates@ member of @pDynamicState@ is --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_BIAS', and the@@ -3697,6 +3711,102 @@ --     or --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT' --+-- -   If+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+--     is not included in @pDynamicState@->@pDynamicStates@,+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.width+--     /must/ be greater than or equal to @1@+--+-- -   If+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+--     is not included in @pDynamicState@->@pDynamicStates@,+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.height+--     /must/ be greater than or equal to @1@+--+-- -   If+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+--     is not included in @pDynamicState@->@pDynamicStates@,+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.width+--     /must/ be a power-of-two value+--+-- -   If+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+--     is not included in @pDynamicState@->@pDynamicStates@,+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.height+--     /must/ be a power-of-two value+--+-- -   If+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+--     is not included in @pDynamicState@->@pDynamicStates@,+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.width+--     /must/ be less than or equal to @4@+--+-- -   If+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+--     is not included in @pDynamicState@->@pDynamicStates@,+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.height+--     /must/ be less than or equal to @4@+--+-- -   If+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+--     is not included in @pDynamicState@->@pDynamicStates@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate feature>+--     is not enabled,+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.width+--     and+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::fragmentSize.height+--     /must/ both be equal to @1@+--+-- -   If+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+--     is not included in @pDynamicState@->@pDynamicStates@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-primitiveFragmentShadingRate primitiveFragmentShadingRate feature>+--     is not enabled,+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[0]+--     /must/ be+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'+--+-- -   If+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+--     is not included in @pDynamicState@->@pDynamicStates@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-attachmentFragmentShadingRate attachmentFragmentShadingRate feature>+--     is not enabled,+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@[1]+--     /must/ be+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+--     limit is not supported,+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     is not included in @pDynamicState@->@pDynamicStates@, and+--     'PipelineViewportStateCreateInfo'::@viewportCount@ is greater than+--     @1@, entry points specified in @pStages@ /must/ not write to the+--     @PrimitiveShadingRateKHR@ built-in+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+--     limit is not supported, and entry points specified in @pStages@+--     write to the @ViewportIndex@ built-in, they /must/ not also write to+--     the @PrimitiveShadingRateKHR@ built-in+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+--     limit is not supported, and entry points specified in @pStages@+--     write to the @ViewportMaskNV@ built-in, they /must/ not also write+--     to the @PrimitiveShadingRateKHR@ built-in+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentShadingRateNonTrivialCombinerOps>+--     limit is not supported and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR'+--     is not included in @pDynamicState@->@pDynamicStates@, elements of+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR'::@combinerOps@+--     /must/ be+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'+--     or+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR'+-- -- == Valid Usage (Implicit) -- -- -   @sType@ /must/ be@@ -3709,6 +3819,7 @@ --     'Vulkan.Extensions.VK_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD', --     'Vulkan.Extensions.VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfoEXT', --     'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT',+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR', --     or --     'Vulkan.Extensions.VK_NV_representative_fragment_test.PipelineRepresentativeFragmentTestStateCreateInfoNV' --@@ -3838,6 +3949,7 @@   getNext GraphicsPipelineCreateInfo{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends GraphicsPipelineCreateInfo e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @PipelineFragmentShadingRateStateCreateInfoKHR = Just f     | Just Refl <- eqT @e @PipelineCompilerControlCreateInfoAMD = Just f     | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfoEXT = Just f     | Just Refl <- eqT @e @PipelineRepresentativeFragmentTestStateCreateInfoNV = Just f
src/Vulkan/Core10/Query.hs view
@@ -367,6 +367,13 @@ --     then @pData@ and @stride@ /must/ be multiples of the size of --     'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterResultKHR' --+-- -   If the @queryType@ used to create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+--     then @stride@ /must/ be large enough to contain+--     'Vulkan.Extensions.VK_KHR_performance_query.QueryPoolPerformanceCreateInfoKHR'::@counterIndexCount@+--     used to create @queryPool@ times the size of+--     'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterResultKHR'.+-- -- -   The sum of @firstQuery@ and @queryCount@ /must/ be less than or --     equal to the number of queries in @queryPool@ --
src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs view
@@ -242,9 +242,11 @@ -- -- == Valid Usage ----- -   If a 'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' as a result of this---     command, then the image view’s+-- -   If a 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, 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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'
src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs view
@@ -125,6 +125,8 @@ 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)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRatePropertiesKHR) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_host_query_reset (PhysicalDeviceHostQueryResetFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceIDProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (PhysicalDeviceImageDrmFormatModifierInfoEXT)@@ -183,6 +185,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shader_sm_builtins (PhysicalDeviceShaderSMBuiltinsPropertiesNV) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_subgroup_extended_types (PhysicalDeviceShaderSubgroupExtendedTypesFeatures)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_shader_terminate_invocation (PhysicalDeviceShaderTerminateInvocationFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PhysicalDeviceShadingRateImageFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PhysicalDeviceShadingRateImagePropertiesNV) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_subgroup (PhysicalDeviceSubgroupProperties)@@ -645,6 +648,8 @@   getNext PhysicalDeviceFeatures2{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceFeatures2 e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeaturesKHR = Just f+    | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDevice4444FormatsFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetFeaturesKHR = Just f@@ -778,6 +783,7 @@ --     'Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls.PhysicalDeviceFloatControlsProperties', --     'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2PropertiesEXT', --     'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapPropertiesEXT',+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR', --     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties', --     'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockPropertiesEXT', --     'Vulkan.Extensions.VK_EXT_line_rasterization.PhysicalDeviceLineRasterizationPropertiesEXT',@@ -840,6 +846,7 @@   getNext PhysicalDeviceProperties2{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceProperties2 e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRatePropertiesKHR = Just f     | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetPropertiesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceRobustness2PropertiesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceCustomBorderColorPropertiesEXT = Just f
src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs view
@@ -80,6 +80,7 @@ import Vulkan.CStruct.Extends (Extendss) import Vulkan.CStruct.Extends (Extensible(..)) import Vulkan.Core10.Enums.Format (Format)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (FragmentShadingRateAttachmentInfoKHR) import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (FromCStruct(..)) import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlags)@@ -1008,6 +1009,7 @@ -- -- = See Also --+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR', -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags', -- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout', -- 'Vulkan.Core10.Enums.StructureType.StructureType',@@ -1095,6 +1097,13 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.RenderPassMultiviewCreateInfo'::@pViewMasks@ -- has on each corresponding subpass. --+-- If an instance of+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR'+-- is included in the @pNext@ chain, @pFragmentShadingRateAttachment@ is+-- not @NULL@, and its @attachment@ member is not+-- 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', the identified+-- attachment defines a fragment shading rate attachment for that subpass.+-- -- == Valid Usage -- -- -   @pipelineBindPoint@ /must/ be@@ -1214,6 +1223,13 @@ -- -   An attachment /must/ not be used in both @pDepthStencilAttachment@ --     and @pColorAttachments@ --+-- -   If the @pFragmentShadingRateAttachment@ member of a+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR'+--     structure included in the @pNext@ chain is not @NULL@, and its+--     @attachment@ member is not+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', that attachment+--     /must/ not be used as any other attachment in this subpass+-- -- == Valid Usage (Implicit) -- -- -   @sType@ /must/ be@@ -1302,6 +1318,7 @@   getNext SubpassDescription2{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends SubpassDescription2 e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @FragmentShadingRateAttachmentInfoKHR = Just f     | Just Refl <- eqT @e @SubpassDescriptionDepthStencilResolve = Just f     | otherwise = Nothing @@ -1749,6 +1766,19 @@ -- -- -   The @dstSubpass@ member of each element of @pDependencies@ /must/ be --     less than @subpassCount@+--+-- -   If any element of @pAttachmentImageInfos@ is used as a fragment+--     shading rate attachment in any subpass, it /must/ not be used as any+--     other attachment in the render pass+--+-- -   If @flags@ includes+--     'Vulkan.Core10.Enums.RenderPassCreateFlagBits.RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM',+--     an element of @pSubpasses@ includes an instance of+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR'+--     in its @pNext@ chain, and the @pFragmentShadingRateAttachment@+--     member of that structure is not equal to @NULL@, the @attachment@+--     member of @pFragmentShadingRateAttachment@ /must/ be+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' -- -- == Valid Usage (Implicit) --
src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs view
@@ -42,9 +42,11 @@ -- -- == Valid Usage ----- -   If a 'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' as a result of this---     command, then the image view’s+-- -   If a 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, 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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'@@ -383,6 +385,20 @@ --     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ --     state --+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+--     limit is not supported, the bound graphics pipeline was created with+--     the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, and any of the shader stages of the bound+--     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+--     then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ be @1@+-- -- -   All vertex input bindings accessed via vertex input variables --     declared in the vertex shader entry point’s interface /must/ have --     either valid or 'Vulkan.Core10.APIConstants.NULL_HANDLE' buffers@@ -541,9 +557,11 @@ -- -- == Valid Usage ----- -   If a 'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' as a result of this---     command, then the image view’s+-- -   If a 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, 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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'@@ -881,6 +899,20 @@ --     as the pipeline --     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ --     state+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+--     limit is not supported, the bound graphics pipeline was created with+--     the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, and any of the shader stages of the bound+--     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+--     then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ be @1@ -- -- -   All vertex input bindings accessed via vertex input variables --     declared in the vertex shader entry point’s interface /must/ have
src/Vulkan/Dynamic.hs view
@@ -157,6 +157,7 @@ import {-# SOURCE #-} Vulkan.Core10.Enums.Format (Format) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (FormatProperties) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (FormatProperties2)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (FragmentShadingRateCombinerOpKHR) import {-# SOURCE #-} Vulkan.Core10.Handles (Framebuffer) import {-# SOURCE #-} Vulkan.Core10.Pass (FramebufferCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (FramebufferMixedSamplesCombinationNV)@@ -236,6 +237,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities (PhysicalDeviceExternalSemaphoreInfo) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceFeatures2)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_fragment_shading_rate (PhysicalDeviceFragmentShadingRateKHR) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation (PhysicalDeviceGroupProperties) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceImageFormatInfo2) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceMemoryProperties)@@ -423,6 +425,7 @@   , pVkCreateHeadlessSurfaceEXT :: FunPtr (Ptr Instance_T -> ("pCreateInfo" ::: Ptr HeadlessSurfaceCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result)   , pVkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV :: FunPtr (Ptr PhysicalDevice_T -> ("pCombinationCount" ::: Ptr Word32) -> ("pCombinations" ::: Ptr FramebufferMixedSamplesCombinationNV) -> IO Result)   , pVkGetPhysicalDeviceToolPropertiesEXT :: FunPtr (Ptr PhysicalDevice_T -> ("pToolCount" ::: Ptr Word32) -> ("pToolProperties" ::: Ptr PhysicalDeviceToolPropertiesEXT) -> IO Result)+  , pVkGetPhysicalDeviceFragmentShadingRatesKHR :: FunPtr (Ptr PhysicalDevice_T -> ("pFragmentShadingRateCount" ::: Ptr Word32) -> ("pFragmentShadingRates" ::: Ptr PhysicalDeviceFragmentShadingRateKHR) -> IO Result)   }  deriving instance Eq InstanceCmds@@ -439,7 +442,7 @@     nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr     nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr     nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr+    nullFunPtr nullFunPtr  -- | A version of 'getInstanceProcAddr' which can be called -- with a null pointer for the instance.@@ -531,6 +534,7 @@   vkCreateHeadlessSurfaceEXT <- getInstanceProcAddr' handle (Ptr "vkCreateHeadlessSurfaceEXT"#)   vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV"#)   vkGetPhysicalDeviceToolPropertiesEXT <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceToolPropertiesEXT"#)+  vkGetPhysicalDeviceFragmentShadingRatesKHR <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceFragmentShadingRatesKHR"#)   pure $ InstanceCmds handle     (castFunPtr @_ @(Ptr Instance_T -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyInstance)     (castFunPtr @_ @(Ptr Instance_T -> ("pPhysicalDeviceCount" ::: Ptr Word32) -> ("pPhysicalDevices" ::: Ptr (Ptr PhysicalDevice_T)) -> IO Result) vkEnumeratePhysicalDevices)@@ -612,6 +616,7 @@     (castFunPtr @_ @(Ptr Instance_T -> ("pCreateInfo" ::: Ptr HeadlessSurfaceCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result) vkCreateHeadlessSurfaceEXT)     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pCombinationCount" ::: Ptr Word32) -> ("pCombinations" ::: Ptr FramebufferMixedSamplesCombinationNV) -> IO Result) vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pToolCount" ::: Ptr Word32) -> ("pToolProperties" ::: Ptr PhysicalDeviceToolPropertiesEXT) -> IO Result) vkGetPhysicalDeviceToolPropertiesEXT)+    (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pFragmentShadingRateCount" ::: Ptr Word32) -> ("pFragmentShadingRates" ::: Ptr PhysicalDeviceFragmentShadingRateKHR) -> IO Result) vkGetPhysicalDeviceFragmentShadingRatesKHR)  data DeviceCmds = DeviceCmds   { deviceCmdsHandle :: Ptr Device_T@@ -925,6 +930,7 @@   , pVkCmdCopyBufferToImage2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR) -> IO ())   , pVkCmdCopyImageToBuffer2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR) -> IO ())   , pVkCmdResolveImage2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO ())+  , pVkCmdSetFragmentShadingRateKHR :: FunPtr (Ptr CommandBuffer_T -> ("pFragmentSize" ::: Ptr Extent2D) -> ("combinerOps" ::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)) -> IO ())   }  deriving instance Eq DeviceCmds@@ -969,7 +975,7 @@     nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr     nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr     nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr+    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr  foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)@@ -1293,6 +1299,7 @@   vkCmdCopyBufferToImage2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdCopyBufferToImage2KHR"#)   vkCmdCopyImageToBuffer2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdCopyImageToBuffer2KHR"#)   vkCmdResolveImage2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdResolveImage2KHR"#)+  vkCmdSetFragmentShadingRateKHR <- getDeviceProcAddr' handle (Ptr "vkCmdSetFragmentShadingRateKHR"#)   pure $ DeviceCmds handle     (castFunPtr @_ @(Ptr Device_T -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction) vkGetDeviceProcAddr)     (castFunPtr @_ @(Ptr Device_T -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyDevice)@@ -1604,4 +1611,5 @@     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR) -> IO ()) vkCmdCopyBufferToImage2KHR)     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR) -> IO ()) vkCmdCopyImageToBuffer2KHR)     (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO ()) vkCmdResolveImage2KHR)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pFragmentSize" ::: Ptr Extent2D) -> ("combinerOps" ::: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)) -> IO ()) vkCmdSetFragmentShadingRateKHR) 
src/Vulkan/Extensions.hs view
@@ -132,6 +132,7 @@                           , module Vulkan.Extensions.VK_KHR_external_semaphore_capabilities                           , module Vulkan.Extensions.VK_KHR_external_semaphore_fd                           , module Vulkan.Extensions.VK_KHR_external_semaphore_win32+                          , module Vulkan.Extensions.VK_KHR_fragment_shading_rate                           , module Vulkan.Extensions.VK_KHR_get_display_properties2                           , module Vulkan.Extensions.VK_KHR_get_memory_requirements2                           , module Vulkan.Extensions.VK_KHR_get_physical_device_properties2@@ -160,6 +161,7 @@                           , module Vulkan.Extensions.VK_KHR_shader_float_controls                           , module Vulkan.Extensions.VK_KHR_shader_non_semantic_info                           , module Vulkan.Extensions.VK_KHR_shader_subgroup_extended_types+                          , module Vulkan.Extensions.VK_KHR_shader_terminate_invocation                           , module Vulkan.Extensions.VK_KHR_shared_presentable_image                           , module Vulkan.Extensions.VK_KHR_spirv_1_4                           , module Vulkan.Extensions.VK_KHR_storage_buffer_storage_class@@ -349,6 +351,7 @@ import Vulkan.Extensions.VK_KHR_external_semaphore_capabilities import Vulkan.Extensions.VK_KHR_external_semaphore_fd import Vulkan.Extensions.VK_KHR_external_semaphore_win32+import Vulkan.Extensions.VK_KHR_fragment_shading_rate import Vulkan.Extensions.VK_KHR_get_display_properties2 import Vulkan.Extensions.VK_KHR_get_memory_requirements2 import Vulkan.Extensions.VK_KHR_get_physical_device_properties2@@ -377,6 +380,7 @@ import Vulkan.Extensions.VK_KHR_shader_float_controls import Vulkan.Extensions.VK_KHR_shader_non_semantic_info import Vulkan.Extensions.VK_KHR_shader_subgroup_extended_types+import Vulkan.Extensions.VK_KHR_shader_terminate_invocation import Vulkan.Extensions.VK_KHR_shared_presentable_image import Vulkan.Extensions.VK_KHR_spirv_1_4 import Vulkan.Extensions.VK_KHR_storage_buffer_storage_class
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs view
@@ -860,9 +860,11 @@ -- -- == Valid Usage ----- -   If a 'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' as a result of this---     command, then the image view’s+-- -   If a 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, 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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'@@ -1200,6 +1202,20 @@ --     as the pipeline --     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ --     state+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+--     limit is not supported, the bound graphics pipeline was created with+--     the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, and any of the shader stages of the bound+--     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+--     then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ be @1@ -- -- -   All vertex input bindings accessed via vertex input variables --     declared in the vertex shader entry point’s interface /must/ have
+ src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs view
@@ -0,0 +1,1153 @@+{-# language CPP #-}+module Vulkan.Extensions.VK_KHR_fragment_shading_rate  ( cmdSetFragmentShadingRateKHR+                                                       , getPhysicalDeviceFragmentShadingRatesKHR+                                                       , pattern IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR+                                                       , pattern ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR+                                                       , pattern IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR+                                                       , pattern PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR+                                                       , FragmentShadingRateAttachmentInfoKHR(..)+                                                       , PipelineFragmentShadingRateStateCreateInfoKHR(..)+                                                       , PhysicalDeviceFragmentShadingRateFeaturesKHR(..)+                                                       , PhysicalDeviceFragmentShadingRatePropertiesKHR(..)+                                                       , PhysicalDeviceFragmentShadingRateKHR(..)+                                                       , FragmentShadingRateCombinerOpKHR( FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR+                                                                                         , FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR+                                                                                         , FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR+                                                                                         , FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR+                                                                                         , FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR+                                                                                         , ..+                                                                                         )+                                                       , KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION+                                                       , pattern KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION+                                                       , KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME+                                                       , pattern KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME+                                                       ) where++import Vulkan.CStruct.Utils (FixedArray)+import Control.Exception.Base (bracket)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytesAligned)+import Foreign.Marshal.Alloc (callocBytes)+import Foreign.Marshal.Alloc (free)+import GHC.Base (when)+import GHC.IO (throwIO)+import GHC.Ptr (castPtr)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import GHC.Read (choose)+import GHC.Read (expectP)+import GHC.Read (parens)+import GHC.Show (showParen)+import GHC.Show (showString)+import GHC.Show (showsPrec)+import Text.ParserCombinators.ReadPrec ((+++))+import Text.ParserCombinators.ReadPrec (prec)+import Text.ParserCombinators.ReadPrec (step)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Data.Vector (generateM)+import Control.Monad.IO.Class (MonadIO)+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 GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Data.Int (Int32)+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import GHC.Read (Read(readPrec))+import Data.Word (Word32)+import Text.Read.Lex (Lexeme(Ident))+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.CStruct.Extends (forgetExtensions)+import Vulkan.CStruct.Utils (lowerArrayPtr)+import Vulkan.CStruct.Extends (peekSomeCStruct)+import Vulkan.CStruct.Extends (withSomeCStruct)+import Vulkan.NamedType ((:::))+import Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (AttachmentReference2)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Handles (CommandBuffer)+import Vulkan.Core10.Handles (CommandBuffer(..))+import Vulkan.Core10.Handles (CommandBuffer_T)+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetFragmentShadingRateKHR))+import Vulkan.Core10.FundamentalTypes (Extent2D)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceFragmentShadingRatesKHR))+import Vulkan.Core10.Handles (PhysicalDevice)+import Vulkan.Core10.Handles (PhysicalDevice(..))+import Vulkan.Core10.Handles (PhysicalDevice_T)+import Vulkan.Core10.Enums.Result (Result)+import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits)+import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlags)+import Vulkan.CStruct.Extends (SomeStruct)+import Vulkan.CStruct.Extends (SomeStruct(..))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Exception (VulkanException(..))+import Vulkan.Zero (Zero)+import Vulkan.Zero (Zero(..))+import Vulkan.Core10.Enums.AccessFlagBits (AccessFlags)+import Vulkan.Core10.Enums.AccessFlagBits (AccessFlagBits(ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV))+import Vulkan.Core10.Enums.ImageLayout (ImageLayout(IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV))+import Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlags)+import Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlagBits(IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV))+import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags)+import Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits(PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetFragmentShadingRateKHR+  :: FunPtr (Ptr CommandBuffer_T -> Ptr Extent2D -> Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR) -> IO ()) -> Ptr CommandBuffer_T -> Ptr Extent2D -> Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR) -> IO ()++-- | vkCmdSetFragmentShadingRateKHR - Set pipeline fragment shading rate+-- dynamically+--+-- == Valid Usage+--+-- -   If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>+--     is not enabled, @pFragmentSize@->@width@ /must/ be @1@+--+-- -   If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>+--     is not enabled, @pFragmentSize@->@height@ /must/ be @1@+--+-- -   One of+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-pipelineFragmentShadingRate pipelineFragmentShadingRate>,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>,+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+--     /must/ be enabled+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-primitiveFragmentShadingRate primitiveFragmentShadingRate feature>+--     is not enabled, @combinerOps@[0] /must/ be+--     'FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#feature-attachmentFragmentShadingRate attachmentFragmentShadingRate feature>+--     is not enabled, @combinerOps@[1] /must/ be+--     'FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-fragmentShadingRateNonTrivialCombinerOps fragmentSizeNonTrivialCombinerOps>+--     limit is not supported, elements of @combinerOps@ /must/ be either+--     'FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' or+--     'FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR'+--+-- -   @pFragmentSize@->@width@ /must/ be greater than or equal to @1@+--+-- -   @pFragmentSize@->@height@ /must/ be greater than or equal to @1@+--+-- -   @pFragmentSize@->@width@ /must/ be a power-of-two value+--+-- -   @pFragmentSize@->@height@ /must/ be a power-of-two value+--+-- -   @pFragmentSize@->@width@ /must/ be less than or equal to @4@+--+-- -   @pFragmentSize@->@height@ /must/ be less than or equal to @4@+--+-- == Valid Usage (Implicit)+--+-- -   @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   @pFragmentSize@ /must/ be a valid pointer to a valid+--     'Vulkan.Core10.FundamentalTypes.Extent2D' structure+--+-- -   Any given element of @combinerOps@ /must/ be a valid+--     'FragmentShadingRateCombinerOpKHR' value+--+-- -   @commandBuffer@ /must/ be in the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- -   The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Graphics                                                                                                              |                                                                                                                                     |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                       |                                                                                                                                     |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.Extent2D',+-- 'FragmentShadingRateCombinerOpKHR'+cmdSetFragmentShadingRateKHR :: forall io+                              . (MonadIO io)+                             => -- | @commandBuffer@ is the command buffer into which the command will be+                                -- recorded.+                                CommandBuffer+                             -> -- | @pFragmentSize@ specifies the pipeline fragment shading rate for+                                -- subsequent draw commands.+                                ("fragmentSize" ::: Extent2D)+                             -> -- | @combinerOps@ specifies a 'FragmentShadingRateCombinerOpKHR' determining+                                -- how the+                                -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline>,+                                -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive>,+                                -- and+                                -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment shading rates>+                                -- are+                                -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combining combined>+                                -- for fragments generated by subsequent drawing commands.+                                ("combinerOps" ::: (FragmentShadingRateCombinerOpKHR, FragmentShadingRateCombinerOpKHR))+                             -> io ()+cmdSetFragmentShadingRateKHR commandBuffer fragmentSize combinerOps = liftIO . evalContT $ do+  let vkCmdSetFragmentShadingRateKHRPtr = pVkCmdSetFragmentShadingRateKHR (deviceCmds (commandBuffer :: CommandBuffer))+  lift $ unless (vkCmdSetFragmentShadingRateKHRPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetFragmentShadingRateKHR is null" Nothing Nothing+  let vkCmdSetFragmentShadingRateKHR' = mkVkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHRPtr+  pFragmentSize <- ContT $ withCStruct (fragmentSize)+  pCombinerOps <- ContT $ allocaBytesAligned @(FixedArray 2 FragmentShadingRateCombinerOpKHR) 8 4+  let pCombinerOps' = lowerArrayPtr pCombinerOps+  lift $ case (combinerOps) of+    (e0, e1) -> do+      poke (pCombinerOps' :: Ptr FragmentShadingRateCombinerOpKHR) (e0)+      poke (pCombinerOps' `plusPtr` 4 :: Ptr FragmentShadingRateCombinerOpKHR) (e1)+  lift $ vkCmdSetFragmentShadingRateKHR' (commandBufferHandle (commandBuffer)) pFragmentSize (pCombinerOps)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetPhysicalDeviceFragmentShadingRatesKHR+  :: FunPtr (Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr PhysicalDeviceFragmentShadingRateKHR -> IO Result) -> Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr PhysicalDeviceFragmentShadingRateKHR -> IO Result++-- | vkGetPhysicalDeviceFragmentShadingRatesKHR - Get available shading rates+-- for a physical device+--+-- = Description+--+-- If @pFragmentShadingRates@ is @NULL@, then the number of fragment+-- shading rates available is returned in @pFragmentShadingRateCount@.+-- Otherwise, @pFragmentShadingRateCount@ /must/ point to a variable set by+-- the user to the number of elements in the @pFragmentShadingRates@ array,+-- and on return the variable is overwritten with the number of structures+-- actually written to @pFragmentShadingRates@. If+-- @pFragmentShadingRateCount@ is less than the number of fragment shading+-- rates available, at most @pFragmentShadingRateCount@ structures will be+-- written, and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned+-- instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not+-- all the available fragment shading rates were returned.+--+-- The returned array of fragment shading rates /must/ be ordered from+-- largest @fragmentSize.width@ value to smallest, and each set of fragment+-- shading rates with the same @fragmentSize.width@ value /must/ be ordered+-- from largest @fragmentSize.height@ to smallest. Any two entries in the+-- array /must/ not have the same @fragmentSize@ values.+--+-- For any entry in the array, the following rules also apply:+--+-- -   The value of @fragmentSize.width@ /must/ be less than or equal to+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentSize maxFragmentSize.width>.+--+-- -   The value of @fragmentSize.width@ /must/ be greater than or equal to+--     @1@.+--+-- -   The value of @fragmentSize.width@ /must/ be a power-of-two.+--+-- -   The value of @fragmentSize.height@ /must/ be less than or equal to+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentSize maxFragmentSize.height>.+--+-- -   The value of @fragmentSize.height@ /must/ be greater than or equal+--     to @1@.+--+-- -   The value of @fragmentSize.height@ /must/ be a power-of-two.+--+-- -   The highest sample count in @sampleCounts@ /must/ be less than or+--     equal to+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentShadingRateRasterizationSamples maxFragmentShadingRateRasterizationSamples>.+--+-- -   The product of @fragmentSize.width@, @fragmentSize.height@, and the+--     highest sample count in @sampleCounts@ /must/ be less than or equal+--     to+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentShadingRateCoverageSamples maxFragmentShadingRateCoverageSamples>.+--+-- Implementations /must/ support at least the following shading rates:+--+-- +--------------------------------------------------------------+-----------------------------------++-- | @sampleCounts@                                               | @fragmentSize@                    |+-- +==============================================================+===================================++-- | 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' | {2,2}                             |+-- | |                                                            |                                   |+-- | 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_4_BIT' |                                   |+-- +--------------------------------------------------------------+-----------------------------------++-- | 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' | {2,1}                             |+-- | |                                                            |                                   |+-- | 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_4_BIT' |                                   |+-- +--------------------------------------------------------------+-----------------------------------++-- | ~0                                                           | {1,1}                             |+-- +--------------------------------------------------------------+-----------------------------------++--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-framebufferColorSampleCounts framebufferColorSampleCounts>,+-- includes 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_2_BIT',+-- the required rates /must/ also include+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_2_BIT'.+--+-- Note+--+-- Including the {1,1} fragment size is done for completeness; it has no+-- actual effect on the support of rendering without setting the fragment+-- size. All sample counts are supported for this rate.+--+-- == Valid Usage (Implicit)+--+-- -   @physicalDevice@ /must/ be a valid+--     'Vulkan.Core10.Handles.PhysicalDevice' handle+--+-- -   @pFragmentShadingRateCount@ /must/ be a valid pointer to a+--     @uint32_t@ value+--+-- -   If the value referenced by @pFragmentShadingRateCount@ is not @0@,+--     and @pFragmentShadingRates@ is not @NULL@, @pFragmentShadingRates@+--     /must/ be a valid pointer to an array of @pFragmentShadingRateCount@+--     'PhysicalDeviceFragmentShadingRateKHR' structures+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'+--+--     -   'Vulkan.Core10.Enums.Result.INCOMPLETE'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+-- = See Also+--+-- 'Vulkan.Core10.Handles.PhysicalDevice',+-- 'PhysicalDeviceFragmentShadingRateKHR'+getPhysicalDeviceFragmentShadingRatesKHR :: forall io+                                          . (MonadIO io)+                                         => -- | @physicalDevice@ is the handle to the physical device whose properties+                                            -- will be queried.+                                            PhysicalDevice+                                         -> io (Result, ("fragmentShadingRates" ::: Vector PhysicalDeviceFragmentShadingRateKHR))+getPhysicalDeviceFragmentShadingRatesKHR physicalDevice = liftIO . evalContT $ do+  let vkGetPhysicalDeviceFragmentShadingRatesKHRPtr = pVkGetPhysicalDeviceFragmentShadingRatesKHR (instanceCmds (physicalDevice :: PhysicalDevice))+  lift $ unless (vkGetPhysicalDeviceFragmentShadingRatesKHRPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceFragmentShadingRatesKHR is null" Nothing Nothing+  let vkGetPhysicalDeviceFragmentShadingRatesKHR' = mkVkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHRPtr+  let physicalDevice' = physicalDeviceHandle (physicalDevice)+  pPFragmentShadingRateCount <- ContT $ bracket (callocBytes @Word32 4) free+  r <- lift $ vkGetPhysicalDeviceFragmentShadingRatesKHR' physicalDevice' (pPFragmentShadingRateCount) (nullPtr)+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+  pFragmentShadingRateCount <- lift $ peek @Word32 pPFragmentShadingRateCount+  pPFragmentShadingRates <- ContT $ bracket (callocBytes @PhysicalDeviceFragmentShadingRateKHR ((fromIntegral (pFragmentShadingRateCount)) * 32)) free+  _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPFragmentShadingRates `advancePtrBytes` (i * 32) :: Ptr PhysicalDeviceFragmentShadingRateKHR) . ($ ())) [0..(fromIntegral (pFragmentShadingRateCount)) - 1]+  r' <- lift $ vkGetPhysicalDeviceFragmentShadingRatesKHR' physicalDevice' (pPFragmentShadingRateCount) ((pPFragmentShadingRates))+  lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))+  pFragmentShadingRateCount' <- lift $ peek @Word32 pPFragmentShadingRateCount+  pFragmentShadingRates' <- lift $ generateM (fromIntegral (pFragmentShadingRateCount')) (\i -> peekCStruct @PhysicalDeviceFragmentShadingRateKHR (((pPFragmentShadingRates) `advancePtrBytes` (32 * (i)) :: Ptr PhysicalDeviceFragmentShadingRateKHR)))+  pure $ ((r'), pFragmentShadingRates')+++-- No documentation found for TopLevel "VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR"+pattern IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV+++-- No documentation found for TopLevel "VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR"+pattern ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV+++-- No documentation found for TopLevel "VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"+pattern IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"+pattern PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV+++-- | VkFragmentShadingRateAttachmentInfoKHR - Structure specifying a fragment+-- shading rate attachment for a subpass+--+-- = Description+--+-- If no shading rate attachment is specified, or if this structure isn’t+-- specified, the implementation behaves as if a valid shading rate+-- attachment was specified with all texels specifying a single pixel per+-- fragment.+--+-- == Valid Usage+--+-- -   If @pFragmentShadingRateAttachment@ is not @NULL@ and its+--     @attachment@ member is not+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' then it /must/ have a+--     format whose features contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- -   If @pFragmentShadingRateAttachment@ is not @NULL@ and its+--     @attachment@ member is not+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', its @layout@ member+--     /must/ be equal to+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or+--     'IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR'+--+-- -   If @pFragmentShadingRateAttachment@ is not @NULL@ and its+--     @attachment@ member is not+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED',+--     @shadingRateAttachmentTexelSize.width@ /must/ be a power of two+--     value+--+-- -   If @pFragmentShadingRateAttachment@ is not @NULL@ and its+--     @attachment@ member is not+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED',+--     @shadingRateAttachmentTexelSize.width@ /must/ be less than or equal+--     to+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.width>+--+-- -   If @pFragmentShadingRateAttachment@ is not @NULL@ and its+--     @attachment@ member is not+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED',+--     @shadingRateAttachmentTexelSize.width@ /must/ be greater than or+--     equal to+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.width>+--+-- -   If @pFragmentShadingRateAttachment@ is not @NULL@ and its+--     @attachment@ member is not+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED',+--     @shadingRateAttachmentTexelSize.height@ /must/ be a power of two+--     value+--+-- -   If @pFragmentShadingRateAttachment@ is not @NULL@ and its+--     @attachment@ member is not+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED',+--     @shadingRateAttachmentTexelSize.height@ /must/ be less than or equal+--     to+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize.height>+--+-- -   If @pFragmentShadingRateAttachment@ is not @NULL@ and its+--     @attachment@ member is not+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED',+--     @shadingRateAttachmentTexelSize.height@ /must/ be greater than or+--     equal to+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-minFragmentShadingRateAttachmentTexelSize minFragmentShadingRateAttachmentTexelSize.height>+--+-- -   If @pFragmentShadingRateAttachment@ is not @NULL@ and its+--     @attachment@ member is not+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', the quotient of+--     @shadingRateAttachmentTexelSize.width@ and+--     @shadingRateAttachmentTexelSize.height@ /must/ be less than or equal+--     to+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio>+--+-- -   If @pFragmentShadingRateAttachment@ is not @NULL@ and its+--     @attachment@ member is not+--     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', the quotient of+--     @shadingRateAttachmentTexelSize.height@ and+--     @shadingRateAttachmentTexelSize.width@ /must/ be less than or equal+--     to+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxFragmentShadingRateAttachmentTexelSizeAspectRatio maxFragmentShadingRateAttachmentTexelSizeAspectRatio>+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR'+--+-- -   @pFragmentShadingRateAttachment@ /must/ be a valid pointer to a+--     valid+--     'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentReference2'+--     structure+--+-- = See Also+--+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentReference2',+-- 'Vulkan.Core10.FundamentalTypes.Extent2D',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data FragmentShadingRateAttachmentInfoKHR = FragmentShadingRateAttachmentInfoKHR+  { -- | @pFragmentShadingRateAttachment@ is an optional+    -- 'Vulkan.Extensions.VK_KHR_create_renderpass2.AttachmentReference2KHR'+    -- structure defining the fragment shading rate attachment for this+    -- subpass.+    fragmentShadingRateAttachment :: SomeStruct AttachmentReference2+  , -- | @shadingRateAttachmentTexelSize@ specifies the size of the portion of+    -- the framebuffer corresponding to each texel in+    -- @pFragmentShadingRateAttachment@.+    shadingRateAttachmentTexelSize :: Extent2D+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (FragmentShadingRateAttachmentInfoKHR)+#endif+deriving instance Show FragmentShadingRateAttachmentInfoKHR++instance ToCStruct FragmentShadingRateAttachmentInfoKHR where+  withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p FragmentShadingRateAttachmentInfoKHR{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    pFragmentShadingRateAttachment'' <- ContT @_ @_ @(Ptr (AttachmentReference2 '[])) $ \cont -> withSomeCStruct @AttachmentReference2 (fragmentShadingRateAttachment) (cont . castPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (AttachmentReference2 _)))) pFragmentShadingRateAttachment''+    ContT $ pokeCStruct ((p `plusPtr` 24 :: Ptr Extent2D)) (shadingRateAttachmentTexelSize) . ($ ())+    lift $ f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    pFragmentShadingRateAttachment'' <- ContT @_ @_ @(Ptr (AttachmentReference2 '[])) $ \cont -> withSomeCStruct @AttachmentReference2 ((SomeStruct zero)) (cont . castPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr (AttachmentReference2 _)))) pFragmentShadingRateAttachment''+    ContT $ pokeCStruct ((p `plusPtr` 24 :: Ptr Extent2D)) (zero) . ($ ())+    lift $ f++instance FromCStruct FragmentShadingRateAttachmentInfoKHR where+  peekCStruct p = do+    pFragmentShadingRateAttachment <- peekSomeCStruct . forgetExtensions =<< peek ((p `plusPtr` 16 :: Ptr (Ptr (AttachmentReference2 a))))+    shadingRateAttachmentTexelSize <- peekCStruct @Extent2D ((p `plusPtr` 24 :: Ptr Extent2D))+    pure $ FragmentShadingRateAttachmentInfoKHR+             pFragmentShadingRateAttachment shadingRateAttachmentTexelSize++instance Zero FragmentShadingRateAttachmentInfoKHR where+  zero = FragmentShadingRateAttachmentInfoKHR+           (SomeStruct zero)+           zero+++-- | VkPipelineFragmentShadingRateStateCreateInfoKHR - Structure specifying+-- parameters controlling the fragment shading rate+--+-- = Description+--+-- If the @pNext@ chain of+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' includes a+-- 'PipelineFragmentShadingRateStateCreateInfoKHR' structure, then that+-- structure includes parameters that control the pipeline fragment shading+-- rate.+--+-- If this structure is not present, @fragmentSize@ is considered to be+-- equal to (1,1), and both elements of @combinerOps@ are considered to be+-- equal to 'FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR'.+--+-- == Valid Usage (Implicit)+--+-- -   @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR'+--+-- -   Any given element of @combinerOps@ /must/ be a valid+--     'FragmentShadingRateCombinerOpKHR' value+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Extent2D',+-- 'FragmentShadingRateCombinerOpKHR',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PipelineFragmentShadingRateStateCreateInfoKHR = PipelineFragmentShadingRateStateCreateInfoKHR+  { -- | @fragmentSize@ specifies a 'Vulkan.Core10.FundamentalTypes.Extent2D'+    -- structure containing the fragment size used to define the pipeline+    -- fragment shading rate for draw commands using this pipeline.+    fragmentSize :: Extent2D+  , -- | @combinerOps@ specifies a 'FragmentShadingRateCombinerOpKHR' value+    -- determining how the+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline>,+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive>,+    -- and+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment shading rates>+    -- are+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-combining combined>+    -- for fragments generated by drawing commands using the created pipeline.+    combinerOps :: (FragmentShadingRateCombinerOpKHR, FragmentShadingRateCombinerOpKHR)+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineFragmentShadingRateStateCreateInfoKHR)+#endif+deriving instance Show PipelineFragmentShadingRateStateCreateInfoKHR++instance ToCStruct PipelineFragmentShadingRateStateCreateInfoKHR where+  withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PipelineFragmentShadingRateStateCreateInfoKHR{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    ContT $ pokeCStruct ((p `plusPtr` 16 :: Ptr Extent2D)) (fragmentSize) . ($ ())+    let pCombinerOps' = lowerArrayPtr ((p `plusPtr` 24 :: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)))+    lift $ case (combinerOps) of+      (e0, e1) -> do+        poke (pCombinerOps' :: Ptr FragmentShadingRateCombinerOpKHR) (e0)+        poke (pCombinerOps' `plusPtr` 4 :: Ptr FragmentShadingRateCombinerOpKHR) (e1)+    lift $ f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    ContT $ pokeCStruct ((p `plusPtr` 16 :: Ptr Extent2D)) (zero) . ($ ())+    let pCombinerOps' = lowerArrayPtr ((p `plusPtr` 24 :: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)))+    lift $ case ((zero, zero)) of+      (e0, e1) -> do+        poke (pCombinerOps' :: Ptr FragmentShadingRateCombinerOpKHR) (e0)+        poke (pCombinerOps' `plusPtr` 4 :: Ptr FragmentShadingRateCombinerOpKHR) (e1)+    lift $ f++instance FromCStruct PipelineFragmentShadingRateStateCreateInfoKHR where+  peekCStruct p = do+    fragmentSize <- peekCStruct @Extent2D ((p `plusPtr` 16 :: Ptr Extent2D))+    let pcombinerOps = lowerArrayPtr @FragmentShadingRateCombinerOpKHR ((p `plusPtr` 24 :: Ptr (FixedArray 2 FragmentShadingRateCombinerOpKHR)))+    combinerOps0 <- peek @FragmentShadingRateCombinerOpKHR ((pcombinerOps `advancePtrBytes` 0 :: Ptr FragmentShadingRateCombinerOpKHR))+    combinerOps1 <- peek @FragmentShadingRateCombinerOpKHR ((pcombinerOps `advancePtrBytes` 4 :: Ptr FragmentShadingRateCombinerOpKHR))+    pure $ PipelineFragmentShadingRateStateCreateInfoKHR+             fragmentSize ((combinerOps0, combinerOps1))++instance Zero PipelineFragmentShadingRateStateCreateInfoKHR where+  zero = PipelineFragmentShadingRateStateCreateInfoKHR+           zero+           (zero, zero)+++-- | VkPhysicalDeviceFragmentShadingRateFeaturesKHR - Structure indicating+-- support for variable rate fragment shading+--+-- = Members+--+-- The members of the 'PhysicalDeviceFragmentShadingRateFeaturesKHR'+-- structure describe the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceFragmentShadingRateFeaturesKHR' structure is+-- included in the @pNext@ chain of+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- it is filled with values indicating whether each feature is supported.+-- 'PhysicalDeviceFragmentShadingRateFeaturesKHR' /can/ also be used in the+-- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable these+-- features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceFragmentShadingRateFeaturesKHR = PhysicalDeviceFragmentShadingRateFeaturesKHR+  { -- | @pipelineFragmentShadingRate@ indicates that the implementation supports+    -- the+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-pipeline pipeline fragment shading rate>.+    pipelineFragmentShadingRate :: Bool+  , -- | @primitiveFragmentShadingRate@ indicates that the implementation+    -- supports the+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>.+    primitiveFragmentShadingRate :: Bool+  , -- | @attachmentFragmentShadingRate@ indicates that the implementation+    -- supports the+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment attachment fragment shading rate>.+    attachmentFragmentShadingRate :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceFragmentShadingRateFeaturesKHR)+#endif+deriving instance Show PhysicalDeviceFragmentShadingRateFeaturesKHR++instance ToCStruct PhysicalDeviceFragmentShadingRateFeaturesKHR where+  withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceFragmentShadingRateFeaturesKHR{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (pipelineFragmentShadingRate))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (primitiveFragmentShadingRate))+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (attachmentFragmentShadingRate))+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceFragmentShadingRateFeaturesKHR where+  peekCStruct p = do+    pipelineFragmentShadingRate <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    primitiveFragmentShadingRate <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+    attachmentFragmentShadingRate <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+    pure $ PhysicalDeviceFragmentShadingRateFeaturesKHR+             (bool32ToBool pipelineFragmentShadingRate) (bool32ToBool primitiveFragmentShadingRate) (bool32ToBool attachmentFragmentShadingRate)++instance Storable PhysicalDeviceFragmentShadingRateFeaturesKHR where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceFragmentShadingRateFeaturesKHR where+  zero = PhysicalDeviceFragmentShadingRateFeaturesKHR+           zero+           zero+           zero+++-- | VkPhysicalDeviceFragmentShadingRatePropertiesKHR - Structure describing+-- variable fragment shading rate limits that can be supported by an+-- implementation+--+-- = Members+--+-- The members of the 'PhysicalDeviceFragmentShadingRatePropertiesKHR'+-- structure describe the following implementation-dependent properties+-- related to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-primsrast-fragment-shading-rate fragment shading rates>:+--+-- = Description+--+-- Note+--+-- Multiplication of the combiner rates using the fragment width\/height in+-- linear space is equivalent to an addition of those values in log2 space.+-- Some implementations inadvertently implemented an addition in linear+-- space due to unclear requirements originating outside of this+-- specification. This resulted in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-fragmentShadingRateStrictMultiplyCombiner fragmentShadingRateStrictMultiplyCombiner>+-- being added. Fortunately, this only affects situations where a rate of 1+-- in either dimension is combined with another rate of 1. All other+-- combinations result in the exact same result as if multiplication was+-- performed in linear space due to the clamping logic, and the fact that+-- both the sum and product of 2 and 2 are equal. In many cases, this limit+-- will not affect the correct operation of applications.+--+-- If the 'PhysicalDeviceFragmentShadingRatePropertiesKHR' structure is+-- included in the @pNext@ chain of+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',+-- it is filled with the implementation-dependent limits.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.FundamentalTypes.Extent2D',+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceFragmentShadingRatePropertiesKHR = PhysicalDeviceFragmentShadingRatePropertiesKHR+  { -- | @minFragmentShadingRateAttachmentTexelSize@ indicates minimum supported+    -- width and height of the portion of the framebuffer corresponding to each+    -- texel in a fragment shading rate attachment. Each value /must/ be less+    -- than or equal to the values in+    -- @maxFragmentShadingRateAttachmentTexelSize@. Each value /must/ be a+    -- power-of-two. It /must/ be (0,0) if the+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+    -- feature is not supported.+    minFragmentShadingRateAttachmentTexelSize :: Extent2D+  , -- | @maxFragmentShadingRateAttachmentTexelSize@ indicates maximum supported+    -- width and height of the portion of the framebuffer corresponding to each+    -- texel in a fragment shading rate attachment. Each value /must/ be+    -- greater than or equal to the values in+    -- @minFragmentShadingRateAttachmentTexelSize@. Each value /must/ be a+    -- power-of-two. It /must/ be (0,0) if the+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+    -- feature is not supported.+    maxFragmentShadingRateAttachmentTexelSize :: Extent2D+  , -- | @maxFragmentShadingRateAttachmentTexelSizeAspectRatio@ indicates the+    -- maximum ratio between the width and height of the portion of the+    -- framebuffer corresponding to each texel in a fragment shading rate+    -- attachment. @maxFragmentShadingRateAttachmentTexelSizeAspectRatio@+    -- /must/ be a power-of-two value, and /must/ be less than or equal to+    -- max(@maxFragmentShadingRateAttachmentTexelSize.width@ \/+    -- minFragmentShadingRateAttachmentTexelSize.height,+    -- @maxFragmentShadingRateAttachmentTexelSize.height@ \/+    -- minFragmentShadingRateAttachmentTexelSize.width). It /must/ be 0 if the+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+    -- feature is not supported.+    maxFragmentShadingRateAttachmentTexelSizeAspectRatio :: Word32+  , -- | @primitiveFragmentShadingRateWithMultipleViewports@ specifies whether+    -- the+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>+    -- /can/ be used when multiple viewports are used. If this value is+    -- 'Vulkan.Core10.FundamentalTypes.FALSE', only a single viewport /must/ be+    -- used, and applications /must/ not write to the @ViewportMaskNV@ or+    -- @ViewportIndex@ built-in when setting @PrimitiveShadingRateKHR@. It+    -- /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE' if the+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderOutputViewportIndex shaderOutputViewportIndex>+    -- feature, the+    -- <VK_EXT_shader_viewport_index_layer.html VK_EXT_shader_viewport_index_layer>+    -- extension, or the+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>+    -- feature is not supported, or if the+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>+    -- feature is not supported.+    primitiveFragmentShadingRateWithMultipleViewports :: Bool+  , -- | @layeredShadingRateAttachments@ specifies whether a shading rate+    -- attachment image view /can/ be created with multiple layers. If this+    -- value is 'Vulkan.Core10.FundamentalTypes.FALSE', when creating an image+    -- view with a @usage@ that includes+    -- 'IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR', @layerCount@+    -- /must/ be @1@. It /must/ be 'Vulkan.Core10.FundamentalTypes.FALSE' if+    -- the+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiview multiview>+    -- feature, the+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderOutputViewportIndex shaderOutputViewportIndex>+    -- feature, the+    -- <VK_EXT_shader_viewport_index_layer.html VK_EXT_shader_viewport_index_layer>+    -- extension, or the+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader>+    -- feature is not supported, or if the+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+    -- feature is not supported.+    layeredShadingRateAttachments :: Bool+  , -- | @fragmentShadingRateNonTrivialCombinerOps@ specifies whether+    -- 'FragmentShadingRateCombinerOpKHR' enums other than+    -- 'FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' or+    -- 'FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR' /can/ be used. It /must/+    -- be 'Vulkan.Core10.FundamentalTypes.FALSE' unless either the+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitiveFragmentShadingRate primitiveFragmentShadingRate>+    -- or+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+    -- feature is supported.+    fragmentShadingRateNonTrivialCombinerOps :: Bool+  , -- | @maxFragmentSize@ indicates the maximum supported width and height of a+    -- fragment. Its @width@ and @height@ members /must/ both be power-of-two+    -- values. This limit is purely informational, and is not validated.+    maxFragmentSize :: Extent2D+  , -- | @maxFragmentSizeAspectRatio@ indicates the maximum ratio between the+    -- width and height of a fragment. @maxFragmentSizeAspectRatio@ /must/ be a+    -- power-of-two value, and /must/ be less than or equal to the maximum of+    -- the @width@ and @height@ members of @maxFragmentSize@. This limit is+    -- purely informational, and is not validated.+    maxFragmentSizeAspectRatio :: Word32+  , -- | @maxFragmentShadingRateCoverageSamples@ specifies the maximum number of+    -- coverage samples supported in a single fragment.+    -- @maxFragmentShadingRateCoverageSamples@ /must/ be less than or equal to+    -- the product of the @width@ and @height@ members of @maxFragmentSize@,+    -- and the sample count reported by+    -- @maxFragmentShadingRateRasterizationSamples@.+    -- @maxFragmentShadingRateCoverageSamples@ /must/ be less than or equal to+    -- @maxSampleMaskWords@ * 32 if @fragmentShadingRateWithShaderSampleMask@+    -- is supported. This limit is purely informational, and is not validated.+    maxFragmentShadingRateCoverageSamples :: Word32+  , -- | @maxFragmentShadingRateRasterizationSamples@ specifies the maximum+    -- sample rate supported when a fragment covers multiple pixels. This limit+    -- is purely informational, and is not validated.+    maxFragmentShadingRateRasterizationSamples :: SampleCountFlagBits+  , -- | @fragmentShadingRateWithShaderDepthStencilWrites@ specifies whether the+    -- implementation supports writing @FragDepth@ or @FragStencilRefEXT@ from+    -- a fragment shader for multi-pixel fragments. If this value is+    -- 'Vulkan.Core10.FundamentalTypes.FALSE', writing to those built-ins will+    -- clamp the fragment shading rate to (1,1).+    fragmentShadingRateWithShaderDepthStencilWrites :: Bool+  , -- | @fragmentShadingRateWithSampleMask@ specifies whether the the+    -- implementation supports setting valid bits of+    -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::pSampleMask+    -- to @0@ for multi-pixel fragments. If this value is+    -- 'Vulkan.Core10.FundamentalTypes.FALSE', zeroing valid bits in the sample+    -- mask will clamp the fragment shading rate to (1,1).+    fragmentShadingRateWithSampleMask :: Bool+  , -- | @fragmentShadingRateWithShaderSampleMask@ specifies whether the+    -- implementation supports reading or writing+    -- 'Vulkan.Core10.FundamentalTypes.SampleMask' for multi-pixel fragments.+    -- If this value is 'Vulkan.Core10.FundamentalTypes.FALSE', using that+    -- built-in will clamp the fragment shading rate to (1,1).+    fragmentShadingRateWithShaderSampleMask :: Bool+  , -- | @fragmentShadingRateWithConservativeRasterization@ specifies whether+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-conservativeraster conservative rasterization>+    -- is supported for multi-pixel fragments. It /must/ be+    -- 'Vulkan.Core10.FundamentalTypes.FALSE' if+    -- <VK_EXT_conservative_rasterization.html VK_EXT_conservative_rasterization>+    -- is not supported. If this value is+    -- 'Vulkan.Core10.FundamentalTypes.FALSE', using+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-conservativeraster conservative rasterization>+    -- will clamp the fragment shading rate to (1,1).+    fragmentShadingRateWithConservativeRasterization :: Bool+  , -- | @fragmentShadingRateWithFragmentShaderInterlock@ specifies whether+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-fragment-shader-interlock fragment shader interlock>+    -- is supported for multi-pixel fragments. It /must/ be+    -- 'Vulkan.Core10.FundamentalTypes.FALSE' if+    -- <VK_EXT_fragment_shader_interlock.html VK_EXT_fragment_shader_interlock>+    -- is not supported. If this value is+    -- 'Vulkan.Core10.FundamentalTypes.FALSE', using+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-fragment-shader-interlock fragment shader interlock>+    -- will clamp the fragment shading rate to (1,1).+    fragmentShadingRateWithFragmentShaderInterlock :: Bool+  , -- | @fragmentShadingRateWithCustomSampleLocations@ specifies whether+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primrast-samplelocations custom sample locations>+    -- are supported for multi-pixel fragments. It /must/ be+    -- 'Vulkan.Core10.FundamentalTypes.FALSE' if+    -- <VK_EXT_sample_locations.html VK_EXT_sample_locations> is not supported.+    -- If this value is 'Vulkan.Core10.FundamentalTypes.FALSE', using+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primrast-samplelocations custom sample locations>+    -- will clamp the fragment shading rate to (1,1).+    fragmentShadingRateWithCustomSampleLocations :: Bool+  , -- | @fragmentShadingRateStrictMultiplyCombiner@ specifies whether+    -- VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR accurately performs a+    -- multiplication or not. Implementations where this value is+    -- 'Vulkan.Core10.FundamentalTypes.FALSE' will instead combine rates with+    -- an addition. If @fragmentShadingRateNonTrivialCombinerOps@ is+    -- 'Vulkan.Core10.FundamentalTypes.FALSE', implementations /must/ report+    -- this as 'Vulkan.Core10.FundamentalTypes.FALSE'. If+    -- @fragmentShadingRateNonTrivialCombinerOps@ is+    -- 'Vulkan.Core10.FundamentalTypes.TRUE', implementations /should/ report+    -- this as 'Vulkan.Core10.FundamentalTypes.TRUE'.+    fragmentShadingRateStrictMultiplyCombiner :: Bool+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceFragmentShadingRatePropertiesKHR)+#endif+deriving instance Show PhysicalDeviceFragmentShadingRatePropertiesKHR++instance ToCStruct PhysicalDeviceFragmentShadingRatePropertiesKHR where+  withCStruct x f = allocaBytesAligned 96 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceFragmentShadingRatePropertiesKHR{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    ContT $ pokeCStruct ((p `plusPtr` 16 :: Ptr Extent2D)) (minFragmentShadingRateAttachmentTexelSize) . ($ ())+    ContT $ pokeCStruct ((p `plusPtr` 24 :: Ptr Extent2D)) (maxFragmentShadingRateAttachmentTexelSize) . ($ ())+    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) (maxFragmentShadingRateAttachmentTexelSizeAspectRatio)+    lift $ poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (primitiveFragmentShadingRateWithMultipleViewports))+    lift $ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (layeredShadingRateAttachments))+    lift $ poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (fragmentShadingRateNonTrivialCombinerOps))+    ContT $ pokeCStruct ((p `plusPtr` 48 :: Ptr Extent2D)) (maxFragmentSize) . ($ ())+    lift $ poke ((p `plusPtr` 56 :: Ptr Word32)) (maxFragmentSizeAspectRatio)+    lift $ poke ((p `plusPtr` 60 :: Ptr Word32)) (maxFragmentShadingRateCoverageSamples)+    lift $ poke ((p `plusPtr` 64 :: Ptr SampleCountFlagBits)) (maxFragmentShadingRateRasterizationSamples)+    lift $ poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (fragmentShadingRateWithShaderDepthStencilWrites))+    lift $ poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (fragmentShadingRateWithSampleMask))+    lift $ poke ((p `plusPtr` 76 :: Ptr Bool32)) (boolToBool32 (fragmentShadingRateWithShaderSampleMask))+    lift $ poke ((p `plusPtr` 80 :: Ptr Bool32)) (boolToBool32 (fragmentShadingRateWithConservativeRasterization))+    lift $ poke ((p `plusPtr` 84 :: Ptr Bool32)) (boolToBool32 (fragmentShadingRateWithFragmentShaderInterlock))+    lift $ poke ((p `plusPtr` 88 :: Ptr Bool32)) (boolToBool32 (fragmentShadingRateWithCustomSampleLocations))+    lift $ poke ((p `plusPtr` 92 :: Ptr Bool32)) (boolToBool32 (fragmentShadingRateStrictMultiplyCombiner))+    lift $ f+  cStructSize = 96+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    ContT $ pokeCStruct ((p `plusPtr` 16 :: Ptr Extent2D)) (zero) . ($ ())+    ContT $ pokeCStruct ((p `plusPtr` 24 :: Ptr Extent2D)) (zero) . ($ ())+    lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)+    lift $ poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (zero))+    lift $ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))+    lift $ poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (zero))+    ContT $ pokeCStruct ((p `plusPtr` 48 :: Ptr Extent2D)) (zero) . ($ ())+    lift $ poke ((p `plusPtr` 56 :: Ptr Word32)) (zero)+    lift $ poke ((p `plusPtr` 60 :: Ptr Word32)) (zero)+    lift $ poke ((p `plusPtr` 64 :: Ptr SampleCountFlagBits)) (zero)+    lift $ poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (zero))+    lift $ poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (zero))+    lift $ poke ((p `plusPtr` 76 :: Ptr Bool32)) (boolToBool32 (zero))+    lift $ poke ((p `plusPtr` 80 :: Ptr Bool32)) (boolToBool32 (zero))+    lift $ poke ((p `plusPtr` 84 :: Ptr Bool32)) (boolToBool32 (zero))+    lift $ poke ((p `plusPtr` 88 :: Ptr Bool32)) (boolToBool32 (zero))+    lift $ poke ((p `plusPtr` 92 :: Ptr Bool32)) (boolToBool32 (zero))+    lift $ f++instance FromCStruct PhysicalDeviceFragmentShadingRatePropertiesKHR where+  peekCStruct p = do+    minFragmentShadingRateAttachmentTexelSize <- peekCStruct @Extent2D ((p `plusPtr` 16 :: Ptr Extent2D))+    maxFragmentShadingRateAttachmentTexelSize <- peekCStruct @Extent2D ((p `plusPtr` 24 :: Ptr Extent2D))+    maxFragmentShadingRateAttachmentTexelSizeAspectRatio <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))+    primitiveFragmentShadingRateWithMultipleViewports <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))+    layeredShadingRateAttachments <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))+    fragmentShadingRateNonTrivialCombinerOps <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))+    maxFragmentSize <- peekCStruct @Extent2D ((p `plusPtr` 48 :: Ptr Extent2D))+    maxFragmentSizeAspectRatio <- peek @Word32 ((p `plusPtr` 56 :: Ptr Word32))+    maxFragmentShadingRateCoverageSamples <- peek @Word32 ((p `plusPtr` 60 :: Ptr Word32))+    maxFragmentShadingRateRasterizationSamples <- peek @SampleCountFlagBits ((p `plusPtr` 64 :: Ptr SampleCountFlagBits))+    fragmentShadingRateWithShaderDepthStencilWrites <- peek @Bool32 ((p `plusPtr` 68 :: Ptr Bool32))+    fragmentShadingRateWithSampleMask <- peek @Bool32 ((p `plusPtr` 72 :: Ptr Bool32))+    fragmentShadingRateWithShaderSampleMask <- peek @Bool32 ((p `plusPtr` 76 :: Ptr Bool32))+    fragmentShadingRateWithConservativeRasterization <- peek @Bool32 ((p `plusPtr` 80 :: Ptr Bool32))+    fragmentShadingRateWithFragmentShaderInterlock <- peek @Bool32 ((p `plusPtr` 84 :: Ptr Bool32))+    fragmentShadingRateWithCustomSampleLocations <- peek @Bool32 ((p `plusPtr` 88 :: Ptr Bool32))+    fragmentShadingRateStrictMultiplyCombiner <- peek @Bool32 ((p `plusPtr` 92 :: Ptr Bool32))+    pure $ PhysicalDeviceFragmentShadingRatePropertiesKHR+             minFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSizeAspectRatio (bool32ToBool primitiveFragmentShadingRateWithMultipleViewports) (bool32ToBool layeredShadingRateAttachments) (bool32ToBool fragmentShadingRateNonTrivialCombinerOps) maxFragmentSize maxFragmentSizeAspectRatio maxFragmentShadingRateCoverageSamples maxFragmentShadingRateRasterizationSamples (bool32ToBool fragmentShadingRateWithShaderDepthStencilWrites) (bool32ToBool fragmentShadingRateWithSampleMask) (bool32ToBool fragmentShadingRateWithShaderSampleMask) (bool32ToBool fragmentShadingRateWithConservativeRasterization) (bool32ToBool fragmentShadingRateWithFragmentShaderInterlock) (bool32ToBool fragmentShadingRateWithCustomSampleLocations) (bool32ToBool fragmentShadingRateStrictMultiplyCombiner)++instance Zero PhysicalDeviceFragmentShadingRatePropertiesKHR where+  zero = PhysicalDeviceFragmentShadingRatePropertiesKHR+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+++-- | VkPhysicalDeviceFragmentShadingRateKHR - Structure returning information+-- about sample count specific additional multisampling capabilities+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Extent2D',+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlags',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getPhysicalDeviceFragmentShadingRatesKHR'+data PhysicalDeviceFragmentShadingRateKHR = PhysicalDeviceFragmentShadingRateKHR+  { -- | @sampleCounts@ is a bitmask of sample counts for which the shading rate+    -- described by @fragmentSize@ is supported.+    sampleCounts :: SampleCountFlags+  , -- | @fragmentSize@ is a 'Vulkan.Core10.FundamentalTypes.Extent2D' describing+    -- the width and height of a supported shading rate.+    fragmentSize :: Extent2D+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceFragmentShadingRateKHR)+#endif+deriving instance Show PhysicalDeviceFragmentShadingRateKHR++instance ToCStruct PhysicalDeviceFragmentShadingRateKHR where+  withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceFragmentShadingRateKHR{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr SampleCountFlags)) (sampleCounts)+    ContT $ pokeCStruct ((p `plusPtr` 20 :: Ptr Extent2D)) (fragmentSize) . ($ ())+    lift $ f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr SampleCountFlags)) (zero)+    ContT $ pokeCStruct ((p `plusPtr` 20 :: Ptr Extent2D)) (zero) . ($ ())+    lift $ f++instance FromCStruct PhysicalDeviceFragmentShadingRateKHR where+  peekCStruct p = do+    sampleCounts <- peek @SampleCountFlags ((p `plusPtr` 16 :: Ptr SampleCountFlags))+    fragmentSize <- peekCStruct @Extent2D ((p `plusPtr` 20 :: Ptr Extent2D))+    pure $ PhysicalDeviceFragmentShadingRateKHR+             sampleCounts fragmentSize++instance Zero PhysicalDeviceFragmentShadingRateKHR where+  zero = PhysicalDeviceFragmentShadingRateKHR+           zero+           zero+++-- | VkFragmentShadingRateCombinerOpKHR - Control how fragment shading rates+-- are combined+--+-- = Description+--+-- where combine(Axy,Bxy) is the combine operation, and Axy and Bxy are the+-- inputs to the operation.+--+-- If+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-fragmentShadingRateStrictMultiplyCombiner fragmentShadingRateStrictMultiplyCombiner>+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', using+-- 'FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR' with values of 1 for both A+-- and B in the same dimension results in the value 2 being produced for+-- that dimension. See the definition of+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-fragmentShadingRateStrictMultiplyCombiner fragmentShadingRateStrictMultiplyCombiner>+-- for more information.+--+-- These operations are performed in a component-wise fashion.+--+-- = See Also+--+-- 'PipelineFragmentShadingRateStateCreateInfoKHR',+-- 'cmdSetFragmentShadingRateKHR'+newtype FragmentShadingRateCombinerOpKHR = FragmentShadingRateCombinerOpKHR Int32+  deriving newtype (Eq, Ord, Storable, Zero)++-- | 'FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' specifies a combiner+-- operation of combine(Axy,Bxy) = Axy.+pattern FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = FragmentShadingRateCombinerOpKHR 0+-- | 'FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR' specifies a combiner+-- operation of combine(Axy,Bxy) = Bxy.+pattern FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = FragmentShadingRateCombinerOpKHR 1+-- | 'FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR' specifies a combiner+-- operation of combine(Axy,Bxy) = min(Axy,Bxy).+pattern FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = FragmentShadingRateCombinerOpKHR 2+-- | 'FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR' specifies a combiner+-- operation of combine(Axy,Bxy) = max(Axy,Bxy).+pattern FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = FragmentShadingRateCombinerOpKHR 3+-- | 'FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR' combiner operation of+-- combine(Axy,Bxy) = Axy*Bxy.+pattern FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = FragmentShadingRateCombinerOpKHR 4+{-# complete FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR,+             FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR,+             FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR,+             FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR,+             FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR :: FragmentShadingRateCombinerOpKHR #-}++instance Show FragmentShadingRateCombinerOpKHR where+  showsPrec p = \case+    FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR -> showString "FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR"+    FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR -> showString "FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR"+    FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR -> showString "FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR"+    FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR -> showString "FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR"+    FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR -> showString "FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR"+    FragmentShadingRateCombinerOpKHR x -> showParen (p >= 11) (showString "FragmentShadingRateCombinerOpKHR " . showsPrec 11 x)++instance Read FragmentShadingRateCombinerOpKHR where+  readPrec = parens (choose [("FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR", pure FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR)+                            , ("FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR", pure FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR)+                            , ("FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR", pure FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR)+                            , ("FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR", pure FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR)+                            , ("FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR", pure FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR)]+                     ++++                     prec 10 (do+                       expectP (Ident "FragmentShadingRateCombinerOpKHR")+                       v <- step readPrec+                       pure (FragmentShadingRateCombinerOpKHR v)))+++type KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION"+pattern KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION :: forall a . Integral a => a+pattern KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION = 1+++type KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME = "VK_KHR_fragment_shading_rate"++-- No documentation found for TopLevel "VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME"+pattern KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME = "VK_KHR_fragment_shading_rate"+
+ src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot view
@@ -0,0 +1,54 @@+{-# language CPP #-}+module Vulkan.Extensions.VK_KHR_fragment_shading_rate  ( FragmentShadingRateAttachmentInfoKHR+                                                       , PhysicalDeviceFragmentShadingRateFeaturesKHR+                                                       , PhysicalDeviceFragmentShadingRateKHR+                                                       , PhysicalDeviceFragmentShadingRatePropertiesKHR+                                                       , PipelineFragmentShadingRateStateCreateInfoKHR+                                                       , FragmentShadingRateCombinerOpKHR+                                                       ) where++import Data.Kind (Type)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+data FragmentShadingRateAttachmentInfoKHR++instance ToCStruct FragmentShadingRateAttachmentInfoKHR+instance Show FragmentShadingRateAttachmentInfoKHR++instance FromCStruct FragmentShadingRateAttachmentInfoKHR+++data PhysicalDeviceFragmentShadingRateFeaturesKHR++instance ToCStruct PhysicalDeviceFragmentShadingRateFeaturesKHR+instance Show PhysicalDeviceFragmentShadingRateFeaturesKHR++instance FromCStruct PhysicalDeviceFragmentShadingRateFeaturesKHR+++data PhysicalDeviceFragmentShadingRateKHR++instance ToCStruct PhysicalDeviceFragmentShadingRateKHR+instance Show PhysicalDeviceFragmentShadingRateKHR++instance FromCStruct PhysicalDeviceFragmentShadingRateKHR+++data PhysicalDeviceFragmentShadingRatePropertiesKHR++instance ToCStruct PhysicalDeviceFragmentShadingRatePropertiesKHR+instance Show PhysicalDeviceFragmentShadingRatePropertiesKHR++instance FromCStruct PhysicalDeviceFragmentShadingRatePropertiesKHR+++data PipelineFragmentShadingRateStateCreateInfoKHR++instance ToCStruct PipelineFragmentShadingRateStateCreateInfoKHR+instance Show PipelineFragmentShadingRateStateCreateInfoKHR++instance FromCStruct PipelineFragmentShadingRateStateCreateInfoKHR+++data FragmentShadingRateCombinerOpKHR+
src/Vulkan/Extensions/VK_KHR_ray_tracing.hs view
@@ -1305,9 +1305,11 @@ -- -- == Valid Usage ----- -   If a 'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' as a result of this---     command, then the image view’s+-- -   If a 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, 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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'@@ -2039,9 +2041,11 @@ -- -- == Valid Usage ----- -   If a 'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' as a result of this---     command, then the image view’s+-- -   If a 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, 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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'
+ src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs view
@@ -0,0 +1,111 @@+{-# language CPP #-}+module Vulkan.Extensions.VK_KHR_shader_terminate_invocation  ( PhysicalDeviceShaderTerminateInvocationFeaturesKHR(..)+                                                             , KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION+                                                             , pattern KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION+                                                             , KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME+                                                             , pattern KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME+                                                             ) where++import Foreign.Marshal.Alloc (allocaBytesAligned)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR))+-- | VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR - Structure+-- describing support for the SPIR-V @SPV_KHR_terminate_invocation@+-- extension+--+-- = Members+--+-- The members of the 'PhysicalDeviceShaderTerminateInvocationFeaturesKHR'+-- structure describe the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceShaderTerminateInvocationFeaturesKHR' structure is+-- included in the @pNext@ chain of+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- it is filled with a value indicating whether the feature is supported.+-- 'PhysicalDeviceShaderTerminateInvocationFeaturesKHR' /can/ also be+-- included in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'+-- to enable the features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceShaderTerminateInvocationFeaturesKHR = PhysicalDeviceShaderTerminateInvocationFeaturesKHR+  { -- | @shaderTerminateInvocation@ specifies whether the implementation+    -- supports SPIR-V modules that use the @SPV_KHR_terminate_invocation@+    -- extension.+    shaderTerminateInvocation :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceShaderTerminateInvocationFeaturesKHR)+#endif+deriving instance Show PhysicalDeviceShaderTerminateInvocationFeaturesKHR++instance ToCStruct PhysicalDeviceShaderTerminateInvocationFeaturesKHR where+  withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceShaderTerminateInvocationFeaturesKHR{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (shaderTerminateInvocation))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceShaderTerminateInvocationFeaturesKHR where+  peekCStruct p = do+    shaderTerminateInvocation <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceShaderTerminateInvocationFeaturesKHR+             (bool32ToBool shaderTerminateInvocation)++instance Storable PhysicalDeviceShaderTerminateInvocationFeaturesKHR where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceShaderTerminateInvocationFeaturesKHR where+  zero = PhysicalDeviceShaderTerminateInvocationFeaturesKHR+           zero+++type KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION"+pattern KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION :: forall a . Integral a => a+pattern KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION = 1+++type KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME = "VK_KHR_shader_terminate_invocation"++-- No documentation found for TopLevel "VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME"+pattern KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME = "VK_KHR_shader_terminate_invocation"+
+ src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs-boot view
@@ -0,0 +1,13 @@+{-# language CPP #-}+module Vulkan.Extensions.VK_KHR_shader_terminate_invocation  (PhysicalDeviceShaderTerminateInvocationFeaturesKHR) where++import Data.Kind (Type)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+data PhysicalDeviceShaderTerminateInvocationFeaturesKHR++instance ToCStruct PhysicalDeviceShaderTerminateInvocationFeaturesKHR+instance Show PhysicalDeviceShaderTerminateInvocationFeaturesKHR++instance FromCStruct PhysicalDeviceShaderTerminateInvocationFeaturesKHR+
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs view
@@ -170,9 +170,11 @@ -- -- == Valid Usage ----- -   If a 'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' as a result of this---     command, then the image view’s+-- -   If a 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, 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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'@@ -510,6 +512,20 @@ --     as the pipeline --     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ --     state+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+--     limit is not supported, the bound graphics pipeline was created with+--     the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, and any of the shader stages of the bound+--     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+--     then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ be @1@ -- -- -   All vertex input bindings accessed via vertex input variables --     declared in the vertex shader entry point’s interface /must/ have
src/Vulkan/Extensions/VK_NV_mesh_shader.hs view
@@ -72,9 +72,11 @@ -- -- == Valid Usage ----- -   If a 'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' as a result of this---     command, then the image view’s+-- -   If a 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, 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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'@@ -413,6 +415,20 @@ --     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ --     state --+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+--     limit is not supported, the bound graphics pipeline was created with+--     the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, and any of the shader stages of the bound+--     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+--     then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ be @1@+-- -- -   @taskCount@ /must/ be less than or equal to --     'PhysicalDeviceMeshShaderPropertiesNV'::@maxDrawMeshTasksCount@ --@@ -492,9 +508,11 @@ -- -- == Valid Usage ----- -   If a 'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' as a result of this---     command, then the image view’s+-- -   If a 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, 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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'@@ -833,6 +851,20 @@ --     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ --     state --+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+--     limit is not supported, the bound graphics pipeline was created with+--     the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, and any of the shader stages of the bound+--     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+--     then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ be @1@+-- -- -   If @buffer@ is non-sparse then it /must/ be bound completely and --     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object --@@ -946,9 +978,11 @@ -- -- == Valid Usage ----- -   If a 'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' as a result of this---     command, then the image view’s+-- -   If a 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, 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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'@@ -1286,6 +1320,20 @@ --     as the pipeline --     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ --     state+--+-- -   If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-primitiveFragmentShadingRateWithMultipleViewports primitiveFragmentShadingRateWithMultipleViewports>+--     limit is not supported, the bound graphics pipeline was created with+--     the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'+--     dynamic state enabled, and any of the shader stages of the bound+--     graphics pipeline write to the @PrimitiveShadingRateKHR@ built-in,+--     then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ have been called in the current command buffer prior to this+--     draw command, and the @viewportCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetViewportWithCountEXT'+--     /must/ be @1@ -- -- -   If @buffer@ is non-sparse then it /must/ be bound completely and --     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object
src/Vulkan/Extensions/VK_NV_ray_tracing.hs view
@@ -803,9 +803,11 @@ -- -- == Valid Usage ----- -   If a 'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' as a result of this---     command, then the image view’s+-- -   If a 'Vulkan.Core10.Handles.Sampler' created with @magFilter@ or+--     @minFilter@ equal to 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' and+--     @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE' is+--     used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, 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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'
src/Vulkan/Version.hs view
@@ -14,11 +14,11 @@ import Data.Word (Word32)  pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 157+pattern HEADER_VERSION = 158   pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 157+pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 158   pattern MAKE_VERSION :: Word32 -> Word32 -> Word32 -> Word32
vulkan.cabal view
@@ -3,22 +3,20 @@ -- This file has been generated from package.yaml by hpack version 0.34.2. -- -- see: https://github.com/sol/hpack------ hash: be017b1fe407af3d6b6d0f65db4b22abae4b44e3b3dfe2e2f200d2cf87845488  name:           vulkan-version:        3.6.10+version:        3.6.11 synopsis:       Bindings to the Vulkan graphics API. category:       Graphics homepage:       https://github.com/expipiplus1/vulkan#readme bug-reports:    https://github.com/expipiplus1/vulkan/issues maintainer:     Joe Hermaszewski <live.long.and.prosper@monoid.al> license:        BSD-3-Clause-license-file:   LICENSE build-type:     Simple extra-source-files:     readme.md     changelog.md+    package.yaml  source-repository head   type: git@@ -382,6 +380,7 @@       Vulkan.Extensions.VK_KHR_external_semaphore_capabilities       Vulkan.Extensions.VK_KHR_external_semaphore_fd       Vulkan.Extensions.VK_KHR_external_semaphore_win32+      Vulkan.Extensions.VK_KHR_fragment_shading_rate       Vulkan.Extensions.VK_KHR_get_display_properties2       Vulkan.Extensions.VK_KHR_get_memory_requirements2       Vulkan.Extensions.VK_KHR_get_physical_device_properties2@@ -410,6 +409,7 @@       Vulkan.Extensions.VK_KHR_shader_float_controls       Vulkan.Extensions.VK_KHR_shader_non_semantic_info       Vulkan.Extensions.VK_KHR_shader_subgroup_extended_types+      Vulkan.Extensions.VK_KHR_shader_terminate_invocation       Vulkan.Extensions.VK_KHR_shared_presentable_image       Vulkan.Extensions.VK_KHR_spirv_1_4       Vulkan.Extensions.VK_KHR_storage_buffer_storage_class