vulkan 3.6.10 → 3.6.11
raw patch · 41 files changed
+2258/−250 lines, 41 files
Files
- LICENSE +0/−30
- changelog.md +3/−0
- package.yaml +89/−0
- readme.md +15/−5
- src/Vulkan/CStruct/Extends.hs +23/−0
- src/Vulkan/Core10/CommandBufferBuilding.hs +86/−18
- src/Vulkan/Core10/Device.hs +42/−0
- src/Vulkan/Core10/DeviceInitialization.hs +11/−8
- src/Vulkan/Core10/Enums/AccessFlagBits.hs +87/−89
- src/Vulkan/Core10/Enums/DynamicState.hs +10/−0
- src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs +15/−0
- src/Vulkan/Core10/Enums/ImageLayout.hs +1/−7
- src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs +1/−4
- src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs +2/−6
- src/Vulkan/Core10/Enums/SampleCountFlagBits.hs +1/−0
- src/Vulkan/Core10/Enums/StructureType.hs +42/−0
- src/Vulkan/Core10/FundamentalTypes.hs +8/−0
- src/Vulkan/Core10/Handles.hs +2/−0
- src/Vulkan/Core10/Image.hs +2/−2
- src/Vulkan/Core10/ImageView.hs +15/−1
- src/Vulkan/Core10/OtherTypes.hs +2/−2
- src/Vulkan/Core10/Pass.hs +138/−34
- src/Vulkan/Core10/Pipeline.hs +115/−3
- src/Vulkan/Core10/Query.hs +7/−0
- src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs +5/−3
- src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs +7/−0
- src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs +30/−0
- src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs +38/−6
- src/Vulkan/Dynamic.hs +10/−2
- src/Vulkan/Extensions.hs +4/−0
- src/Vulkan/Extensions/VK_EXT_transform_feedback.hs +19/−3
- src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs +1153/−0
- src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs-boot +54/−0
- src/Vulkan/Extensions/VK_KHR_ray_tracing.hs +10/−6
- src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs +111/−0
- src/Vulkan/Extensions/VK_KHR_shader_terminate_invocation.hs-boot +13/−0
- src/Vulkan/Extensions/VK_NV_device_generated_commands.hs +19/−3
- src/Vulkan/Extensions/VK_NV_mesh_shader.hs +57/−9
- src/Vulkan/Extensions/VK_NV_ray_tracing.hs +5/−3
- src/Vulkan/Version.hs +2/−2
- vulkan.cabal +4/−4
− 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