packages feed

vulkan 3.5 → 3.6

raw patch · 33 files changed

+940/−178 lines, 33 files

Files

changelog.md view
@@ -2,6 +2,9 @@  ## WIP +## [3.6] - 2020-07-05+  - Bump API version to 1.2.146+ ## [3.5] - 2020-06-22   - Bump API version to 1.2.145   - Bump API version to 1.2.143
readme.md view
@@ -302,6 +302,72 @@ necessary for running the examples on macOS  [here](https://www.youtube.com/watch?v=BaBt-CNBfd0). +### Building using Nix++Here is some generally useful information for using the `default.nix` files in+this repo.++`default.nix { forShell = false; }` evaluates to an attribute set with one+attribute for each of the following packages:++- `vulkan`, the main package of this repository+- `VulkanMemoryAllocator`, bindings to VMA+- `vulkan-utils`, a small selection of utility functions for using `vulkan`+- `vulkan-examples`, some examples, this package is dependency-heavy+- `generate-new`, the program to generate the source of `vulkan` and+  `VulkanMemoryAllocator`, also quite dependency-heavy (this only build with+  ghc 8.8).++You may want to pass your `<nixpkgs>` as `pkgs` to `default.nix` to avoid+rebuilding a parallel set of haskell packages based on the pegged nixpkgs+version in `default.nix`. It should probably work with a wide range of+nixpkgss, however some overrides in `default.nix` may need tweaking,++Alternatively you could use the Cachix repo+https://app.cachix.org/cache/vulkan-haskell which contains the latest closure+for the packages in this repo.++`nix-build -A vulkan` is probably not terribly useful for using the library as+it just builds the Haskell library.++`nix-build -A vulkan-examples` will produce a path with several examples,+however to run these on a non-NixOS platform you'll need to use the+[`NixGL`](https://github.com/guibou/nixGL) project (or something similar) to+run these. This isn't something tested very often so may be a little fragile.+I'd suggest for non-NixOS platforms compiling without using Nix (or better yet+get reliable instructions for using `NixGL` and open a PR).++This library is currently up to date on nixpkgs master (as of+https://github.com/NixOS/nixpkgs/commit/af9608d6d133ad9b6de712418db52603bbc8531c+2020-06-23), so if you're just a consumer it might be best to just use+`haskellPackages.vulkan` from a recent version there.++For using this repository, I have two workflows:++- For building and running examples+  - I navigate to the examples directory and use the `default.nix` expression+    in there to provision a shell with the correct dependencies for the+    examples.+  - I also make a `cabal.project` containing `packages: ./`, the reason for+    this little dance instead of just using the root's `default.nix` is so that+    nix builds the hoogle database for the dependencies and HIE's completion+    and indexing works much better for external dependencies instead of using a+    multi-package project as is the root.+  - This will override nixpkgs's `vulkan` and `VulkanMemoryAllocator` libraries+    with the ones in the repo, as well as building `vulkan-utils`.++- For modifying the generation program I navigate to the `generate-new`+  directory and run `nix-shell ..` to use `default.nix` in the repo's root to+  provision a shell with:+  - The dependencies for running the generator+  - And the dependencies for compiling the `vulkan` source it spits out.+  - I run the generator with `ghci $(HIE_BIOS_OUTPUT=/dev/stdout ./flags.sh $(pwd)/vk/Main.hs) vk/Main.hs +RTS -N16`++For using the source in this package externally it may be easiest to do+whatever you do to get a haskell environment with nix and simply override the+source to point to this repo, the dependencies haven't changed for a while, so+any version of nixpkgs from the last 3 months should do the trick.+ ### Building on Windows  - Clone this repo
src/Vulkan/CStruct/Extends.hs view
@@ -161,6 +161,7 @@ import {-# SOURCE #-} Vulkan.Core10.Device (DeviceQueueCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_global_priority (DeviceQueueGlobalPriorityCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (DeviceQueueInfo2)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_directfb_surface (DirectFBSurfaceCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core10.OtherTypes (DispatchIndirectCommand) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_control (DisplayEventInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_display (DisplayModeCreateInfoKHR)@@ -339,6 +340,8 @@ import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceFeatures2) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls (PhysicalDeviceFloatControlsProperties)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map2 (PhysicalDeviceFragmentDensityMap2FeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map2 (PhysicalDeviceFragmentDensityMap2PropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map (PhysicalDeviceFragmentDensityMapFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map (PhysicalDeviceFragmentDensityMapPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesNV)@@ -761,6 +764,7 @@   Extends DeviceCreateInfo PhysicalDeviceRayTracingFeaturesKHR = ()   Extends DeviceCreateInfo DeviceMemoryOverallocationCreateInfoAMD = ()   Extends DeviceCreateInfo PhysicalDeviceFragmentDensityMapFeaturesEXT = ()+  Extends DeviceCreateInfo PhysicalDeviceFragmentDensityMap2FeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceScalarBlockLayoutFeatures = ()   Extends DeviceCreateInfo PhysicalDeviceUniformBufferStandardLayoutFeatures = ()   Extends DeviceCreateInfo PhysicalDeviceDepthClipEnableFeaturesEXT = ()@@ -875,6 +879,7 @@   Extends PhysicalDeviceFeatures2 PhysicalDeviceMeshShaderFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceRayTracingFeaturesKHR = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentDensityMapFeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentDensityMap2FeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceScalarBlockLayoutFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceUniformBufferStandardLayoutFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceDepthClipEnableFeaturesEXT = ()@@ -943,6 +948,7 @@   Extends PhysicalDeviceProperties2 PhysicalDeviceRayTracingPropertiesKHR = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceRayTracingPropertiesNV = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentDensityMapPropertiesEXT = ()+  Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentDensityMap2PropertiesEXT = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceCooperativeMatrixPropertiesNV = ()   Extends PhysicalDeviceProperties2 PhysicalDevicePerformanceQueryPropertiesKHR = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceShaderSMBuiltinsPropertiesNV = ()@@ -1289,7 +1295,9 @@   STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO -> go @ImageStencilUsageCreateInfo   STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD -> go @DeviceMemoryOverallocationCreateInfoAMD   STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT -> go @PhysicalDeviceFragmentDensityMapFeaturesEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT -> go @PhysicalDeviceFragmentDensityMap2FeaturesEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT -> go @PhysicalDeviceFragmentDensityMapPropertiesEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT -> go @PhysicalDeviceFragmentDensityMap2PropertiesEXT   STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT -> go @RenderPassFragmentDensityMapCreateInfoEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES -> go @PhysicalDeviceScalarBlockLayoutFeatures   STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR -> go @SurfaceProtectedCapabilitiesKHR@@ -1581,7 +1589,9 @@ {-# complete (::&) :: ImageStencilUsageCreateInfo #-} {-# complete (::&) :: DeviceMemoryOverallocationCreateInfoAMD #-} {-# complete (::&) :: PhysicalDeviceFragmentDensityMapFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceFragmentDensityMap2FeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceFragmentDensityMapPropertiesEXT #-}+{-# complete (::&) :: PhysicalDeviceFragmentDensityMap2PropertiesEXT #-} {-# complete (::&) :: RenderPassFragmentDensityMapCreateInfoEXT #-} {-# complete (::&) :: PhysicalDeviceScalarBlockLayoutFeatures #-} {-# complete (::&) :: SurfaceProtectedCapabilitiesKHR #-}
src/Vulkan/Core10/AllocationCallbacks.hs view
@@ -61,6 +61,7 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_descriptor_update_template.createDescriptorUpdateTemplate', -- 'Vulkan.Extensions.VK_KHR_descriptor_update_template.createDescriptorUpdateTemplateKHR', -- 'Vulkan.Core10.Device.createDevice',+-- 'Vulkan.Extensions.VK_EXT_directfb_surface.createDirectFBSurfaceEXT', -- 'Vulkan.Extensions.VK_KHR_display.createDisplayModeKHR', -- 'Vulkan.Extensions.VK_KHR_display.createDisplayPlaneSurfaceKHR', -- 'Vulkan.Core10.Event.createEvent', 'Vulkan.Core10.Fence.createFence',
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -4284,7 +4284,7 @@ -- source buffer to the specified region of the destination image. -- -- If the format of @dstImage@ is a--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>),+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>, -- regions of each plane to be a target of a copy /must/ be specified -- separately using the @pRegions@ member of the 'BufferImageCopy' -- structure. In this case, the @aspectMask@ of @imageSubresource@ /must/
src/Vulkan/Core10/Device.hs view
@@ -101,6 +101,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceFeatures2)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map2 (PhysicalDeviceFragmentDensityMap2FeaturesEXT) 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)@@ -620,6 +621,7 @@ --     'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV', --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT', --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2FeaturesEXT', --     'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapFeaturesEXT', --     'Vulkan.Extensions.VK_NV_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricFeaturesNV', --     'Vulkan.Extensions.VK_EXT_fragment_shader_interlock.PhysicalDeviceFragmentShaderInterlockFeaturesEXT',@@ -768,6 +770,7 @@     | Just Refl <- eqT @e @PhysicalDeviceDepthClipEnableFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceUniformBufferStandardLayoutFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceScalarBlockLayoutFeatures = Just f+    | Just Refl <- eqT @e @PhysicalDeviceFragmentDensityMap2FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceFragmentDensityMapFeaturesEXT = Just f     | Just Refl <- eqT @e @DeviceMemoryOverallocationCreateInfoAMD = Just f     | Just Refl <- eqT @e @PhysicalDeviceRayTracingFeaturesKHR = Just f
src/Vulkan/Core10/DeviceInitialization.hs view
@@ -3524,25 +3524,35 @@ -- 'Vulkan.Core10.FundamentalTypes.DeviceSize', 'PhysicalDeviceProperties', -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlags' data PhysicalDeviceLimits = PhysicalDeviceLimits-  { -- | @maxImageDimension1D@ is the maximum dimension (@width@) supported for-    -- all images created with an @imageType@ of-    -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D'.+  { -- | @maxImageDimension1D@ is the largest dimension (@width@) that is+    -- guaranteed to be supported for all images created with an @imageType@ of+    -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D'. Some combinations of+    -- image parameters (format, usage, etc.) /may/ allow support for larger+    -- dimensions, which /can/ be queried using+    -- 'getPhysicalDeviceImageFormatProperties'.     maxImageDimension1D :: Word32-  , -- | @maxImageDimension2D@ is the maximum dimension (@width@ or @height@)-    -- supported for all images created with an @imageType@ of-    -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and without+  , -- | @maxImageDimension2D@ is the largest dimension (@width@ or @height@)+    -- that is guaranteed to be supported for all images created with an+    -- @imageType@ of 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and without     -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CUBE_COMPATIBLE_BIT'-    -- set in @flags@.+    -- set in @flags@. Some combinations of image parameters (format, usage,+    -- etc.) /may/ allow support for larger dimensions, which /can/ be queried+    -- using 'getPhysicalDeviceImageFormatProperties'.     maxImageDimension2D :: Word32-  , -- | @maxImageDimension3D@ is the maximum dimension (@width@, @height@, or-    -- @depth@) supported for all images created with an @imageType@ of-    -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D'.+  , -- | @maxImageDimension3D@ is the largest dimension (@width@, @height@, or+    -- @depth@) that is guaranteed to be supported for all images created with+    -- an @imageType@ of 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D'. Some+    -- combinations of image parameters (format, usage, etc.) /may/ allow+    -- support for larger dimensions, which /can/ be queried using+    -- 'getPhysicalDeviceImageFormatProperties'.     maxImageDimension3D :: Word32-  , -- | @maxImageDimensionCube@ is the maximum dimension (@width@ or @height@)-    -- supported for all images created with an @imageType@ of-    -- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and with+  , -- | @maxImageDimensionCube@ is the largest dimension (@width@ or @height@)+    -- that is guaranteed to be supported for all images created with an+    -- @imageType@ of 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and with     -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CUBE_COMPATIBLE_BIT'-    -- set in @flags@.+    -- set in @flags@. Some combinations of image parameters (format, usage,+    -- etc.) /may/ allow support for larger dimensions, which /can/ be queried+    -- using 'getPhysicalDeviceImageFormatProperties'.     maxImageDimensionCube :: Word32   , -- | @maxImageArrayLayers@ is the maximum number of layers (@arrayLayers@)     -- for an image.@@ -3927,8 +3937,10 @@     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>.     maxFragmentDualSrcAttachments :: Word32   , -- | @maxFragmentCombinedOutputResources@ is the total number of storage-    -- buffers, storage images, and output buffers which /can/ be used in the-    -- fragment shader stage.+    -- buffers, storage images, and output @Location@ decorated color+    -- attachments (described in+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#interfaces-fragmentoutput Fragment Output Interface>)+    -- which /can/ be used in the fragment shader stage.     maxFragmentCombinedOutputResources :: Word32   , -- | @maxComputeSharedMemorySize@ is the maximum total storage size, in     -- bytes, available for variables declared with the @Workgroup@ storage
src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs view
@@ -94,8 +94,20 @@ --     contents were not written as an attachment in an earlier subpass of --     the same render pass. ----- -   Image data read with load operations /may/ be resampled to the---     fragment density of the render pass.+-- -   Image data read as an image sampler in the fragment shader will be+--     additionally be read by the device during+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT'+--     if+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-subsampledcoarsereconstructionearlyaccess ::subsampledCoarseReconstructionEarlyAccess>+--     is 'Vulkan.Core10.FundamentalTypes.TRUE' and the sampler was created+--     with @flags@ containing+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT'.+--+-- -   Image data read with load operations are resampled to the fragment+--     density of the render pass if+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-subsampledloads ::subsampledLoads>+--     is 'Vulkan.Core10.FundamentalTypes.TRUE', otherwise they are+--     undefined. -- -- -   Image contents outside of the render area become undefined if the --     image is stored as a render pass attachment.
src/Vulkan/Core10/Enums/ImageViewCreateFlagBits.hs view
@@ -1,5 +1,6 @@ {-# language CPP #-}-module Vulkan.Core10.Enums.ImageViewCreateFlagBits  ( ImageViewCreateFlagBits( IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT+module Vulkan.Core10.Enums.ImageViewCreateFlagBits  ( ImageViewCreateFlagBits( IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT+                                                                             , IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT                                                                              , ..                                                                              )                                                     , ImageViewCreateFlags@@ -29,21 +30,27 @@ newtype ImageViewCreateFlagBits = ImageViewCreateFlagBits Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits) --- | 'IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT' prohibits the--- implementation from accessing the fragment density map by the host--- during 'Vulkan.Core10.CommandBufferBuilding.cmdBeginRenderPass' as the--- contents are expected to change after recording+-- | 'IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT' specifies that+-- the fragment density map will be read by the host during+-- 'Vulkan.Core10.CommandBuffer.endCommandBuffer' for the primary command+-- buffer that the render pass is recorded into+pattern IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = ImageViewCreateFlagBits 0x00000002+-- | 'IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT' specifies that+-- the fragment density map will be read by device during+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT' pattern IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = ImageViewCreateFlagBits 0x00000001  type ImageViewCreateFlags = ImageViewCreateFlagBits  instance Show ImageViewCreateFlagBits where   showsPrec p = \case+    IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT -> showString "IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT"     IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT -> showString "IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT"     ImageViewCreateFlagBits x -> showParen (p >= 11) (showString "ImageViewCreateFlagBits 0x" . showHex x)  instance Read ImageViewCreateFlagBits where-  readPrec = parens (choose [("IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT", pure IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT)]+  readPrec = parens (choose [("IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT", pure IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT)+                            , ("IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT", pure IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT)]                      +++                      prec 10 (do                        expectP (Ident "ImageViewCreateFlagBits")
src/Vulkan/Core10/Enums/ObjectType.hs view
@@ -142,7 +142,7 @@ -- | 'OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL' | 'Vulkan.Extensions.Handles.PerformanceConfigurationINTEL' | -- +-----------------------------------------------+-----------------------------------------------------------+ ----- VkObjectType and Vulkan Handle Relationship+-- 'ObjectType' and Vulkan Handle Relationship -- -- = See Also --
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -48,6 +48,9 @@                                                         , STRUCTURE_TYPE_MEMORY_BARRIER                                                         , STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO                                                         , STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO+                                                        , STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT                                                         , STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT@@ -570,6 +573,7 @@ -- 'Vulkan.Core10.Device.DeviceQueueCreateInfo', -- 'Vulkan.Extensions.VK_EXT_global_priority.DeviceQueueGlobalPriorityCreateInfoEXT', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.DeviceQueueInfo2',+-- 'Vulkan.Extensions.VK_EXT_directfb_surface.DirectFBSurfaceCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_display_control.DisplayEventInfoEXT', -- 'Vulkan.Extensions.VK_KHR_display.DisplayModeCreateInfoKHR', -- 'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayModeProperties2KHR',@@ -711,6 +715,8 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities.PhysicalDeviceExternalSemaphoreInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls.PhysicalDeviceFloatControlsProperties',+-- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2FeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2PropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapPropertiesEXT', -- 'Vulkan.Extensions.VK_NV_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricFeaturesNV',@@ -1011,6 +1017,12 @@ pattern STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = StructureType 47 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO" pattern STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = StructureType 48+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = StructureType 1000346000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = StructureType 1000332001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = StructureType 1000332000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV" pattern STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = StructureType 1000300001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV"@@ -1836,6 +1848,9 @@              STRUCTURE_TYPE_MEMORY_BARRIER,              STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO,              STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,+             STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT,+             STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT,              STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV,              STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV,              STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT,@@ -2276,6 +2291,9 @@     STRUCTURE_TYPE_MEMORY_BARRIER -> showString "STRUCTURE_TYPE_MEMORY_BARRIER"     STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO -> showString "STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO"     STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO -> showString "STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO"+    STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT -> showString "STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT"+    STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT"+    STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT"     STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV -> showString "STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV"     STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV"     STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT"@@ -2716,6 +2734,9 @@                             , ("STRUCTURE_TYPE_MEMORY_BARRIER", pure STRUCTURE_TYPE_MEMORY_BARRIER)                             , ("STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO", pure STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO)                             , ("STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO", pure STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO)+                            , ("STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT", pure STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT)+                            , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT)+                            , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT)                             , ("STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV", pure STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV)                             , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV)                             , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT)
src/Vulkan/Core10/FundamentalTypes.hs view
@@ -410,6 +410,8 @@ -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceFeatures', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls.PhysicalDeviceFloatControlsProperties',+-- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2FeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2PropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapPropertiesEXT', -- 'Vulkan.Extensions.VK_NV_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricFeaturesNV',
src/Vulkan/Core10/Handles.hs view
@@ -78,6 +78,7 @@ -- 'Vulkan.Extensions.VK_KHR_android_surface.createAndroidSurfaceKHR', -- 'Vulkan.Extensions.VK_EXT_debug_report.createDebugReportCallbackEXT', -- 'Vulkan.Extensions.VK_EXT_debug_utils.createDebugUtilsMessengerEXT',+-- 'Vulkan.Extensions.VK_EXT_directfb_surface.createDirectFBSurfaceEXT', -- 'Vulkan.Extensions.VK_KHR_display.createDisplayPlaneSurfaceKHR', -- 'Vulkan.Extensions.VK_EXT_headless_surface.createHeadlessSurfaceEXT', -- 'Vulkan.Extensions.VK_MVK_ios_surface.createIOSSurfaceMVK',@@ -135,6 +136,7 @@ -- 'Vulkan.Extensions.VK_KHR_display.getDisplayPlaneSupportedDisplaysKHR', -- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.getPhysicalDeviceCalibrateableTimeDomainsEXT', -- 'Vulkan.Extensions.VK_NV_cooperative_matrix.getPhysicalDeviceCooperativeMatrixPropertiesNV',+-- 'Vulkan.Extensions.VK_EXT_directfb_surface.getPhysicalDeviceDirectFBPresentationSupportEXT', -- 'Vulkan.Extensions.VK_KHR_get_display_properties2.getPhysicalDeviceDisplayPlaneProperties2KHR', -- 'Vulkan.Extensions.VK_KHR_display.getPhysicalDeviceDisplayPlanePropertiesKHR', -- 'Vulkan.Extensions.VK_KHR_get_display_properties2.getPhysicalDeviceDisplayProperties2KHR',
src/Vulkan/Core10/ImageView.hs view
@@ -985,11 +985,27 @@ --     'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT' -- -- -   If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentdensitymapdynamic dynamic fragment density map>---     feature is not enabled and @image@ was created with @usage@---     containing+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-fragmentdensitymapdeferred deferred fragment density map>+--     feature is not enabled, @flags@ /must/ not contain+--     'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT'+--+-- -   If @flags@ contains+--     'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT',+--     @flags@ /must/ not contain+--     'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT'+--+-- -   If @image@ was created with @flags@ containing+--     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--     and @usage@ containing+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT',+--     @subresourceRange.layerCount@ /must/ be less than or equal to+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxsubsampledarraylayers ::maxSubsampledArrayLayers>+--+-- -   If @flags@ does not contain+--     'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT'+--     and @image@ was created with @usage@ containing --     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT',---     @flags@ /must/ not contain any of+--     its @flags@ /must/ not contain any of --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_PROTECTED_BIT', --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_BINDING_BIT', --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT',
src/Vulkan/Core10/Pass.hs view
@@ -2094,12 +2094,6 @@ --     each element of @pAttachments@ that is a 2D or 2D array image view --     taken from a 3D image /must/ not be a depth\/stencil format ----- -   If @flags@ does not include---     'Vulkan.Core10.Enums.FramebufferCreateFlagBits.FRAMEBUFFER_CREATE_IMAGELESS_BIT',---     and @attachmentCount@ is not 0, @pAttachments@ /must/ be a valid---     pointer to an array of @attachmentCount@ valid---     'Vulkan.Core10.Handles.ImageView' handles--- -- -   If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-imagelessFramebuffer imageless framebuffer> --     feature is not enabled, @flags@ /must/ not include
src/Vulkan/Core10/PipelineLayout.hs view
@@ -589,6 +589,15 @@ --     @pSetLayouts@ /must/ be less than or equal to --     'Vulkan.Extensions.VK_KHR_ray_tracing.PhysicalDeviceRayTracingPropertiesKHR'::@maxDescriptorSetAccelerationStructures@ --+-- -   The total number of @pImmutableSamplers@ created with @flags@+--     containing+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_SUBSAMPLED_BIT_EXT'+--     or+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT'+--     across all shader stages and across all elements of @pSetLayouts@+--     /must/ be less than or equal to+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-maxdescriptorsetsubsampledsamplers ::maxDescriptorSetSubsampledSamplers>+-- -- == Valid Usage (Implicit) -- -- -   @sType@ /must/ be
src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs view
@@ -518,6 +518,30 @@ -- device and driver combination to use when serializing and de-serializing -- pipeline state. --+-- Implementations /should/ return @deviceUUID@ values which are likely to+-- be unique even in the presence of multiple Vulkan implementations (such+-- as a GPU driver and a software renderer; two drivers for different GPUs;+-- or the same Vulkan driver running on two logically different devices).+--+-- Khronos\' conformance testing can not guarantee that @deviceUUID@ values+-- are actually unique, so implementers should make their own best efforts+-- to ensure this. In particular, hard-coded @deviceUUID@ values,+-- especially all-@0@ bits, /should/ never be used.+--+-- A combination of values unique to the vendor, the driver, and the+-- hardware environment can be used to provide a @deviceUUID@ which is+-- unique to a high degree of certainty. Some possible inputs to such a+-- computation are:+--+-- -   Information reported by+--     'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceProperties'+--+-- -   PCI device ID (if defined)+--+-- -   PCI bus ID, or similar system configuration information.+--+-- -   Driver binary checksums.+-- -- Note -- -- While 'PhysicalDeviceIDProperties'::@deviceUUID@ is specified to remain
src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs view
@@ -117,6 +117,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (PhysicalDeviceExternalMemoryHostPropertiesEXT) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls (PhysicalDeviceFloatControlsProperties)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map2 (PhysicalDeviceFragmentDensityMap2FeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map2 (PhysicalDeviceFragmentDensityMap2PropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map (PhysicalDeviceFragmentDensityMapFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map (PhysicalDeviceFragmentDensityMapPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_fragment_shader_barycentric (PhysicalDeviceFragmentShaderBarycentricFeaturesNV)@@ -667,6 +669,7 @@     | Just Refl <- eqT @e @PhysicalDeviceDepthClipEnableFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceUniformBufferStandardLayoutFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceScalarBlockLayoutFeatures = Just f+    | Just Refl <- eqT @e @PhysicalDeviceFragmentDensityMap2FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceFragmentDensityMapFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceRayTracingFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceMeshShaderFeaturesNV = Just f@@ -760,6 +763,7 @@ --     'Vulkan.Core12.Promoted_From_VK_KHR_driver_properties.PhysicalDeviceDriverProperties', --     'Vulkan.Extensions.VK_EXT_external_memory_host.PhysicalDeviceExternalMemoryHostPropertiesEXT', --     '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.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties', --     'Vulkan.Extensions.VK_EXT_inline_uniform_block.PhysicalDeviceInlineUniformBlockPropertiesEXT',@@ -832,6 +836,7 @@     | Just Refl <- eqT @e @PhysicalDeviceShaderSMBuiltinsPropertiesNV = Just f     | Just Refl <- eqT @e @PhysicalDevicePerformanceQueryPropertiesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceCooperativeMatrixPropertiesNV = Just f+    | Just Refl <- eqT @e @PhysicalDeviceFragmentDensityMap2PropertiesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceFragmentDensityMapPropertiesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceRayTracingPropertiesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceRayTracingPropertiesKHR = Just f
src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs view
@@ -14,9 +14,7 @@                                                                , DescriptorBindingFlags                                                                ) where -import Control.Monad (unless) import Foreign.Marshal.Alloc (allocaBytesAligned)-import GHC.IO (throwIO) import Foreign.Ptr (nullPtr) import Foreign.Ptr (plusPtr) import Control.Monad.Trans.Class (lift)@@ -24,15 +22,12 @@ import Data.Vector (generateM) import qualified Data.Vector (imapM_) import qualified Data.Vector (length)-import qualified Data.Vector (null) 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 Foreign.Ptr (Ptr) import Data.Word (Word32) import Data.Kind (Type)@@ -786,9 +781,8 @@ -- -   @sType@ /must/ be --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO' ----- -   If @bindingCount@ is not @0@, and @pBindingFlags@ is not @NULL@,---     @pBindingFlags@ /must/ be a valid pointer to an array of---     @bindingCount@ valid combinations of+-- -   If @bindingCount@ is not @0@, @pBindingFlags@ /must/ be a valid+--     pointer to an array of @bindingCount@ valid combinations of --     'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DescriptorBindingFlagBits' --     values --@@ -797,13 +791,10 @@ -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DescriptorBindingFlags', -- 'Vulkan.Core10.Enums.StructureType.StructureType' data DescriptorSetLayoutBindingFlagsCreateInfo = DescriptorSetLayoutBindingFlagsCreateInfo-  { -- | @bindingCount@ is zero or the number of elements in @pBindingFlags@.-    bindingCount :: Word32-  , -- | @pBindingFlags@ is a pointer to an array of+  { -- | @pBindingFlags@ is a pointer to an array of     -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DescriptorBindingFlags'     -- bitfields, one for each descriptor set layout binding.-    bindingFlags :: Vector DescriptorBindingFlags-  }+    bindingFlags :: Vector DescriptorBindingFlags }   deriving (Typeable) #if defined(GENERIC_INSTANCES) deriving instance Generic (DescriptorSetLayoutBindingFlagsCreateInfo)@@ -815,41 +806,31 @@   pokeCStruct p DescriptorSetLayoutBindingFlagsCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO)     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    let pBindingFlagsLength = Data.Vector.length $ (bindingFlags)-    bindingCount'' <- lift $ if (bindingCount) == 0-      then pure $ fromIntegral pBindingFlagsLength-      else do-        unless (fromIntegral pBindingFlagsLength == (bindingCount) || pBindingFlagsLength == 0) $-          throwIO $ IOError Nothing InvalidArgument "" "pBindingFlags must be empty or have 'bindingCount' elements" Nothing Nothing-        pure (bindingCount)-    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) (bindingCount'')-    pBindingFlags'' <- if Data.Vector.null (bindingFlags)-      then pure nullPtr-      else do-        pPBindingFlags <- ContT $ allocaBytesAligned @DescriptorBindingFlags (((Data.Vector.length (bindingFlags))) * 4) 4-        lift $ Data.Vector.imapM_ (\i e -> poke (pPBindingFlags `plusPtr` (4 * (i)) :: Ptr DescriptorBindingFlags) (e)) ((bindingFlags))-        pure $ pPBindingFlags-    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr DescriptorBindingFlags))) pBindingFlags''+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (bindingFlags)) :: Word32))+    pPBindingFlags' <- ContT $ allocaBytesAligned @DescriptorBindingFlags ((Data.Vector.length (bindingFlags)) * 4) 4+    lift $ Data.Vector.imapM_ (\i e -> poke (pPBindingFlags' `plusPtr` (4 * (i)) :: Ptr DescriptorBindingFlags) (e)) (bindingFlags)+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr DescriptorBindingFlags))) (pPBindingFlags')     lift $ f   cStructSize = 32   cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    f+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    pPBindingFlags' <- ContT $ allocaBytesAligned @DescriptorBindingFlags ((Data.Vector.length (mempty)) * 4) 4+    lift $ Data.Vector.imapM_ (\i e -> poke (pPBindingFlags' `plusPtr` (4 * (i)) :: Ptr DescriptorBindingFlags) (e)) (mempty)+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr DescriptorBindingFlags))) (pPBindingFlags')+    lift $ f  instance FromCStruct DescriptorSetLayoutBindingFlagsCreateInfo where   peekCStruct p = do     bindingCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))     pBindingFlags <- peek @(Ptr DescriptorBindingFlags) ((p `plusPtr` 24 :: Ptr (Ptr DescriptorBindingFlags)))-    let pBindingFlagsLength = if pBindingFlags == nullPtr then 0 else (fromIntegral bindingCount)-    pBindingFlags' <- generateM pBindingFlagsLength (\i -> peek @DescriptorBindingFlags ((pBindingFlags `advancePtrBytes` (4 * (i)) :: Ptr DescriptorBindingFlags)))+    pBindingFlags' <- generateM (fromIntegral bindingCount) (\i -> peek @DescriptorBindingFlags ((pBindingFlags `advancePtrBytes` (4 * (i)) :: Ptr DescriptorBindingFlags)))     pure $ DescriptorSetLayoutBindingFlagsCreateInfo-             bindingCount pBindingFlags'+             pBindingFlags'  instance Zero DescriptorSetLayoutBindingFlagsCreateInfo where   zero = DescriptorSetLayoutBindingFlagsCreateInfo-           zero            mempty  
src/Vulkan/Dynamic.hs view
@@ -116,6 +116,7 @@ import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (DeviceQueueInfo2) import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (DeviceSize) import {-# SOURCE #-} Vulkan.Core10.Handles (Device_T)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_directfb_surface (DirectFBSurfaceCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xlib_surface (Display) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_control (DisplayEventInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.Handles (DisplayKHR)@@ -160,6 +161,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_win32 (HANDLE) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_hdr_metadata (HdrMetadataEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_headless_surface (HeadlessSurfaceCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_directfb_surface (IDirectFB) import {-# SOURCE #-} Vulkan.Extensions.VK_MVK_ios_surface (IOSSurfaceCreateInfoMVK) import {-# SOURCE #-} Vulkan.Core10.Handles (Image) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageBlit)@@ -369,6 +371,8 @@   , pVkGetPhysicalDeviceXlibPresentationSupportKHR :: FunPtr (Ptr PhysicalDevice_T -> ("queueFamilyIndex" ::: Word32) -> ("dpy" ::: Ptr Display) -> VisualID -> IO Bool32)   , pVkCreateXcbSurfaceKHR :: FunPtr (Ptr Instance_T -> ("pCreateInfo" ::: Ptr XcbSurfaceCreateInfoKHR) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result)   , pVkGetPhysicalDeviceXcbPresentationSupportKHR :: FunPtr (Ptr PhysicalDevice_T -> ("queueFamilyIndex" ::: Word32) -> Ptr Xcb_connection_t -> ("visual_id" ::: Xcb_visualid_t) -> IO Bool32)+  , pVkCreateDirectFBSurfaceEXT :: FunPtr (Ptr Instance_T -> ("pCreateInfo" ::: Ptr DirectFBSurfaceCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result)+  , pVkGetPhysicalDeviceDirectFBPresentationSupportEXT :: FunPtr (Ptr PhysicalDevice_T -> ("queueFamilyIndex" ::: Word32) -> ("dfb" ::: Ptr IDirectFB) -> IO Bool32)   , pVkCreateImagePipeSurfaceFUCHSIA :: FunPtr (Ptr Instance_T -> ("pCreateInfo" ::: Ptr ImagePipeSurfaceCreateInfoFUCHSIA) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result)   , pVkCreateStreamDescriptorSurfaceGGP :: FunPtr (Ptr Instance_T -> ("pCreateInfo" ::: Ptr StreamDescriptorSurfaceCreateInfoGGP) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result)   , pVkCreateDebugReportCallbackEXT :: FunPtr (Ptr Instance_T -> ("pCreateInfo" ::: Ptr DebugReportCallbackCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pCallback" ::: Ptr DebugReportCallbackEXT) -> IO Result)@@ -427,7 +431,8 @@     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+    nullFunPtr  -- | A version of 'getInstanceProcAddr' which can be called -- with a null pointer for the instance.@@ -474,6 +479,8 @@   vkGetPhysicalDeviceXlibPresentationSupportKHR <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceXlibPresentationSupportKHR"#)   vkCreateXcbSurfaceKHR <- getInstanceProcAddr' handle (Ptr "vkCreateXcbSurfaceKHR"#)   vkGetPhysicalDeviceXcbPresentationSupportKHR <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceXcbPresentationSupportKHR"#)+  vkCreateDirectFBSurfaceEXT <- getInstanceProcAddr' handle (Ptr "vkCreateDirectFBSurfaceEXT"#)+  vkGetPhysicalDeviceDirectFBPresentationSupportEXT <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceDirectFBPresentationSupportEXT"#)   vkCreateImagePipeSurfaceFUCHSIA <- getInstanceProcAddr' handle (Ptr "vkCreateImagePipeSurfaceFUCHSIA"#)   vkCreateStreamDescriptorSurfaceGGP <- getInstanceProcAddr' handle (Ptr "vkCreateStreamDescriptorSurfaceGGP"#)   vkCreateDebugReportCallbackEXT <- getInstanceProcAddr' handle (Ptr "vkCreateDebugReportCallbackEXT"#)@@ -553,6 +560,8 @@     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("queueFamilyIndex" ::: Word32) -> ("dpy" ::: Ptr Display) -> VisualID -> IO Bool32) vkGetPhysicalDeviceXlibPresentationSupportKHR)     (castFunPtr @_ @(Ptr Instance_T -> ("pCreateInfo" ::: Ptr XcbSurfaceCreateInfoKHR) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result) vkCreateXcbSurfaceKHR)     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("queueFamilyIndex" ::: Word32) -> Ptr Xcb_connection_t -> ("visual_id" ::: Xcb_visualid_t) -> IO Bool32) vkGetPhysicalDeviceXcbPresentationSupportKHR)+    (castFunPtr @_ @(Ptr Instance_T -> ("pCreateInfo" ::: Ptr DirectFBSurfaceCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result) vkCreateDirectFBSurfaceEXT)+    (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("queueFamilyIndex" ::: Word32) -> ("dfb" ::: Ptr IDirectFB) -> IO Bool32) vkGetPhysicalDeviceDirectFBPresentationSupportEXT)     (castFunPtr @_ @(Ptr Instance_T -> ("pCreateInfo" ::: Ptr ImagePipeSurfaceCreateInfoFUCHSIA) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result) vkCreateImagePipeSurfaceFUCHSIA)     (castFunPtr @_ @(Ptr Instance_T -> ("pCreateInfo" ::: Ptr StreamDescriptorSurfaceCreateInfoGGP) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSurface" ::: Ptr SurfaceKHR) -> IO Result) vkCreateStreamDescriptorSurfaceGGP)     (castFunPtr @_ @(Ptr Instance_T -> ("pCreateInfo" ::: Ptr DebugReportCallbackCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pCallback" ::: Ptr DebugReportCallbackEXT) -> IO Result) vkCreateDebugReportCallbackEXT)
src/Vulkan/Extensions.hs view
@@ -37,6 +37,7 @@                           , module Vulkan.Extensions.VK_EXT_depth_range_unrestricted                           , module Vulkan.Extensions.VK_EXT_descriptor_indexing                           , module Vulkan.Extensions.VK_EXT_direct_mode_display+                          , module Vulkan.Extensions.VK_EXT_directfb_surface                           , module Vulkan.Extensions.VK_EXT_discard_rectangles                           , module Vulkan.Extensions.VK_EXT_display_control                           , module Vulkan.Extensions.VK_EXT_display_surface_counter@@ -45,6 +46,7 @@                           , module Vulkan.Extensions.VK_EXT_external_memory_host                           , module Vulkan.Extensions.VK_EXT_filter_cubic                           , module Vulkan.Extensions.VK_EXT_fragment_density_map+                          , module Vulkan.Extensions.VK_EXT_fragment_density_map2                           , module Vulkan.Extensions.VK_EXT_fragment_shader_interlock                           , module Vulkan.Extensions.VK_EXT_full_screen_exclusive                           , module Vulkan.Extensions.VK_EXT_global_priority@@ -245,6 +247,7 @@ import Vulkan.Extensions.VK_EXT_depth_range_unrestricted import Vulkan.Extensions.VK_EXT_descriptor_indexing import Vulkan.Extensions.VK_EXT_direct_mode_display+import Vulkan.Extensions.VK_EXT_directfb_surface import Vulkan.Extensions.VK_EXT_discard_rectangles import Vulkan.Extensions.VK_EXT_display_control import Vulkan.Extensions.VK_EXT_display_surface_counter@@ -253,6 +256,7 @@ import Vulkan.Extensions.VK_EXT_external_memory_host import Vulkan.Extensions.VK_EXT_filter_cubic import Vulkan.Extensions.VK_EXT_fragment_density_map+import Vulkan.Extensions.VK_EXT_fragment_density_map2 import Vulkan.Extensions.VK_EXT_fragment_shader_interlock import Vulkan.Extensions.VK_EXT_full_screen_exclusive import Vulkan.Extensions.VK_EXT_global_priority
src/Vulkan/Extensions/Handles.hs view
@@ -265,6 +265,7 @@ -- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.PhysicalDeviceSurfaceInfo2KHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR', -- 'Vulkan.Extensions.VK_KHR_android_surface.createAndroidSurfaceKHR',+-- 'Vulkan.Extensions.VK_EXT_directfb_surface.createDirectFBSurfaceEXT', -- 'Vulkan.Extensions.VK_KHR_display.createDisplayPlaneSurfaceKHR', -- 'Vulkan.Extensions.VK_EXT_headless_surface.createHeadlessSurfaceEXT', -- 'Vulkan.Extensions.VK_MVK_ios_surface.createIOSSurfaceMVK',
src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs view
@@ -138,6 +138,10 @@ -- --     -   'Vulkan.Core10.Enums.Result.SUCCESS' --+-- [<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.Extensions.Handles.DisplayKHR',@@ -163,7 +167,8 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetRandROutputDisplayEXT is null" Nothing Nothing   let vkGetRandROutputDisplayEXT' = mkVkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXTPtr   pPDisplay <- ContT $ bracket (callocBytes @DisplayKHR 8) free-  _ <- lift $ vkGetRandROutputDisplayEXT' (physicalDeviceHandle (physicalDevice)) (dpy) (rrOutput) (pPDisplay)+  r <- lift $ vkGetRandROutputDisplayEXT' (physicalDeviceHandle (physicalDevice)) (dpy) (rrOutput) (pPDisplay)+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pDisplay <- lift $ peek @DisplayKHR pPDisplay   pure $ (pDisplay) 
src/Vulkan/Extensions/VK_EXT_debug_utils.hs view
@@ -854,7 +854,7 @@ --     'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_UNKNOWN', @objectHandle@ --     /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE' or a valid Vulkan --     handle of the type associated with @objectType@ as defined in the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debugging-object-types VkObjectType and Vulkan Handle Relationship>+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debugging-object-types  and Vulkan Handle Relationship> --     table -- -- == Valid Usage (Implicit)@@ -959,7 +959,7 @@     --     -- @objectHandle@ /must/ be a valid Vulkan handle of the type associated     -- with @objectType@ as defined in the-    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debugging-object-types VkObjectType and Vulkan Handle Relationship>+    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#debugging-object-types  and Vulkan Handle Relationship>     -- table     objectHandle :: Word64   , -- | @tagName@ is a numerical identifier of the tag.
+ src/Vulkan/Extensions/VK_EXT_directfb_surface.hs view
@@ -0,0 +1,316 @@+{-# language CPP #-}+module Vulkan.Extensions.VK_EXT_directfb_surface  ( createDirectFBSurfaceEXT+                                                  , getPhysicalDeviceDirectFBPresentationSupportEXT+                                                  , DirectFBSurfaceCreateInfoEXT(..)+                                                  , DirectFBSurfaceCreateFlagsEXT(..)+                                                  , EXT_DIRECTFB_SURFACE_SPEC_VERSION+                                                  , pattern EXT_DIRECTFB_SURFACE_SPEC_VERSION+                                                  , EXT_DIRECTFB_SURFACE_EXTENSION_NAME+                                                  , pattern EXT_DIRECTFB_SURFACE_EXTENSION_NAME+                                                  , IDirectFB+                                                  , IDirectFBSurface+                                                  , SurfaceKHR(..)+                                                  ) where++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 (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 Numeric (showHex)+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 Control.Monad.IO.Class (MonadIO)+import Data.Bits (Bits)+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 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 Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.FundamentalTypes (Bool32(..))+import Vulkan.Core10.FundamentalTypes (Flags)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.Core10.Handles (Instance)+import Vulkan.Core10.Handles (Instance(..))+import Vulkan.Dynamic (InstanceCmds(pVkCreateDirectFBSurfaceEXT))+import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceDirectFBPresentationSupportEXT))+import Vulkan.Core10.Handles (Instance_T)+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.StructureType (StructureType)+import Vulkan.Extensions.Handles (SurfaceKHR)+import Vulkan.Extensions.Handles (SurfaceKHR(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Exception (VulkanException(..))+import Vulkan.Zero (Zero)+import Vulkan.Zero (Zero(..))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Extensions.Handles (SurfaceKHR(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCreateDirectFBSurfaceEXT+  :: FunPtr (Ptr Instance_T -> Ptr DirectFBSurfaceCreateInfoEXT -> Ptr AllocationCallbacks -> Ptr SurfaceKHR -> IO Result) -> Ptr Instance_T -> Ptr DirectFBSurfaceCreateInfoEXT -> Ptr AllocationCallbacks -> Ptr SurfaceKHR -> IO Result++-- | vkCreateDirectFBSurfaceEXT - Create a+-- 'Vulkan.Extensions.Handles.SurfaceKHR' object for a DirectFB surface+--+-- == Valid Usage (Implicit)+--+-- -   @instance@ /must/ be a valid 'Vulkan.Core10.Handles.Instance' handle+--+-- -   @pCreateInfo@ /must/ be a valid pointer to a valid+--     'DirectFBSurfaceCreateInfoEXT' structure+--+-- -   If @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid+--     pointer to a valid+--     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure+--+-- -   @pSurface@ /must/ be a valid pointer to a+--     'Vulkan.Extensions.Handles.SurfaceKHR' handle+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<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'+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'+--+-- = See Also+--+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',+-- 'DirectFBSurfaceCreateInfoEXT', 'Vulkan.Core10.Handles.Instance',+-- 'Vulkan.Extensions.Handles.SurfaceKHR'+createDirectFBSurfaceEXT :: forall io+                          . (MonadIO io)+                         => -- | @instance@ is the instance to associate the surface with.+                            Instance+                         -> -- | @pCreateInfo@ is a pointer to a 'DirectFBSurfaceCreateInfoEXT' structure+                            -- containing parameters affecting the creation of the surface object.+                            DirectFBSurfaceCreateInfoEXT+                         -> -- | @pAllocator@ is the allocator used for host memory allocated for the+                            -- surface object when there is no more specific allocator available (see+                            -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-allocation Memory Allocation>).+                            ("allocator" ::: Maybe AllocationCallbacks)+                         -> io (SurfaceKHR)+createDirectFBSurfaceEXT instance' createInfo allocator = liftIO . evalContT $ do+  let vkCreateDirectFBSurfaceEXTPtr = pVkCreateDirectFBSurfaceEXT (instanceCmds (instance' :: Instance))+  lift $ unless (vkCreateDirectFBSurfaceEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateDirectFBSurfaceEXT is null" Nothing Nothing+  let vkCreateDirectFBSurfaceEXT' = mkVkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXTPtr+  pCreateInfo <- ContT $ withCStruct (createInfo)+  pAllocator <- case (allocator) of+    Nothing -> pure nullPtr+    Just j -> ContT $ withCStruct (j)+  pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free+  r <- lift $ vkCreateDirectFBSurfaceEXT' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface)+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+  pSurface <- lift $ peek @SurfaceKHR pPSurface+  pure $ (pSurface)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetPhysicalDeviceDirectFBPresentationSupportEXT+  :: FunPtr (Ptr PhysicalDevice_T -> Word32 -> Ptr IDirectFB -> IO Bool32) -> Ptr PhysicalDevice_T -> Word32 -> Ptr IDirectFB -> IO Bool32++-- | vkGetPhysicalDeviceDirectFBPresentationSupportEXT - Query physical+-- device for presentation with DirectFB+--+-- = Description+--+-- This platform-specific function /can/ be called prior to creating a+-- surface.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.Handles.PhysicalDevice'+getPhysicalDeviceDirectFBPresentationSupportEXT :: forall io+                                                 . (MonadIO io)+                                                => -- | @physicalDevice@ is the physical device.+                                                   --+                                                   -- @physicalDevice@ /must/ be a valid+                                                   -- 'Vulkan.Core10.Handles.PhysicalDevice' handle+                                                   PhysicalDevice+                                                -> -- | @queueFamilyIndex@ is the queue family index.+                                                   --+                                                   -- @queueFamilyIndex@ /must/ be less than @pQueueFamilyPropertyCount@+                                                   -- returned by+                                                   -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceQueueFamilyProperties'+                                                   -- for the given @physicalDevice@+                                                   ("queueFamilyIndex" ::: Word32)+                                                -> -- | @dfb@ is a pointer to the 'IDirectFB' main interface of DirectFB.+                                                   --+                                                   -- @dfb@ /must/ be a valid pointer to an 'IDirectFB' value+                                                   ("dfb" ::: Ptr IDirectFB)+                                                -> io (Bool)+getPhysicalDeviceDirectFBPresentationSupportEXT physicalDevice queueFamilyIndex dfb = liftIO $ do+  let vkGetPhysicalDeviceDirectFBPresentationSupportEXTPtr = pVkGetPhysicalDeviceDirectFBPresentationSupportEXT (instanceCmds (physicalDevice :: PhysicalDevice))+  unless (vkGetPhysicalDeviceDirectFBPresentationSupportEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceDirectFBPresentationSupportEXT is null" Nothing Nothing+  let vkGetPhysicalDeviceDirectFBPresentationSupportEXT' = mkVkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXTPtr+  r <- vkGetPhysicalDeviceDirectFBPresentationSupportEXT' (physicalDeviceHandle (physicalDevice)) (queueFamilyIndex) (dfb)+  pure $ ((bool32ToBool r))+++-- | VkDirectFBSurfaceCreateInfoEXT - Structure specifying parameters of a+-- newly created DirectFB surface object+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'DirectFBSurfaceCreateFlagsEXT',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'createDirectFBSurfaceEXT'+data DirectFBSurfaceCreateInfoEXT = DirectFBSurfaceCreateInfoEXT+  { -- | @flags@ is reserved for future use.+    --+    -- @flags@ /must/ be @0@+    flags :: DirectFBSurfaceCreateFlagsEXT+  , -- | @dfb@ is a pointer to the 'IDirectFB' main interface of DirectFB.+    --+    -- @dfb@ /must/ point to a valid DirectFB 'IDirectFB'+    dfb :: Ptr IDirectFB+  , -- | @surface@ is a pointer to a 'IDirectFBSurface' surface interface.+    --+    -- @surface@ /must/ point to a valid DirectFB 'IDirectFBSurface'+    surface :: Ptr IDirectFBSurface+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DirectFBSurfaceCreateInfoEXT)+#endif+deriving instance Show DirectFBSurfaceCreateInfoEXT++instance ToCStruct DirectFBSurfaceCreateInfoEXT where+  withCStruct x f = allocaBytesAligned 40 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p DirectFBSurfaceCreateInfoEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr DirectFBSurfaceCreateFlagsEXT)) (flags)+    poke ((p `plusPtr` 24 :: Ptr (Ptr IDirectFB))) (dfb)+    poke ((p `plusPtr` 32 :: Ptr (Ptr IDirectFBSurface))) (surface)+    f+  cStructSize = 40+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 24 :: Ptr (Ptr IDirectFB))) (zero)+    poke ((p `plusPtr` 32 :: Ptr (Ptr IDirectFBSurface))) (zero)+    f++instance FromCStruct DirectFBSurfaceCreateInfoEXT where+  peekCStruct p = do+    flags <- peek @DirectFBSurfaceCreateFlagsEXT ((p `plusPtr` 16 :: Ptr DirectFBSurfaceCreateFlagsEXT))+    dfb <- peek @(Ptr IDirectFB) ((p `plusPtr` 24 :: Ptr (Ptr IDirectFB)))+    surface <- peek @(Ptr IDirectFBSurface) ((p `plusPtr` 32 :: Ptr (Ptr IDirectFBSurface)))+    pure $ DirectFBSurfaceCreateInfoEXT+             flags dfb surface++instance Storable DirectFBSurfaceCreateInfoEXT where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero DirectFBSurfaceCreateInfoEXT where+  zero = DirectFBSurfaceCreateInfoEXT+           zero+           zero+           zero+++-- | VkDirectFBSurfaceCreateFlagsEXT - Reserved for future use+--+-- = Description+--+-- 'DirectFBSurfaceCreateFlagsEXT' is a bitmask type for setting a mask,+-- but is currently reserved for future use.+--+-- = See Also+--+-- 'DirectFBSurfaceCreateInfoEXT'+newtype DirectFBSurfaceCreateFlagsEXT = DirectFBSurfaceCreateFlagsEXT Flags+  deriving newtype (Eq, Ord, Storable, Zero, Bits)++++instance Show DirectFBSurfaceCreateFlagsEXT where+  showsPrec p = \case+    DirectFBSurfaceCreateFlagsEXT x -> showParen (p >= 11) (showString "DirectFBSurfaceCreateFlagsEXT 0x" . showHex x)++instance Read DirectFBSurfaceCreateFlagsEXT where+  readPrec = parens (choose []+                     ++++                     prec 10 (do+                       expectP (Ident "DirectFBSurfaceCreateFlagsEXT")+                       v <- step readPrec+                       pure (DirectFBSurfaceCreateFlagsEXT v)))+++type EXT_DIRECTFB_SURFACE_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_DIRECTFB_SURFACE_SPEC_VERSION"+pattern EXT_DIRECTFB_SURFACE_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_DIRECTFB_SURFACE_SPEC_VERSION = 1+++type EXT_DIRECTFB_SURFACE_EXTENSION_NAME = "VK_EXT_directfb_surface"++-- No documentation found for TopLevel "VK_EXT_DIRECTFB_SURFACE_EXTENSION_NAME"+pattern EXT_DIRECTFB_SURFACE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_DIRECTFB_SURFACE_EXTENSION_NAME = "VK_EXT_directfb_surface"+++data IDirectFB+++data IDirectFBSurface+
+ src/Vulkan/Extensions/VK_EXT_directfb_surface.hs-boot view
@@ -0,0 +1,18 @@+{-# language CPP #-}+module Vulkan.Extensions.VK_EXT_directfb_surface  ( DirectFBSurfaceCreateInfoEXT+                                                  , IDirectFB+                                                  ) where++import Data.Kind (Type)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+data DirectFBSurfaceCreateInfoEXT++instance ToCStruct DirectFBSurfaceCreateInfoEXT+instance Show DirectFBSurfaceCreateInfoEXT++instance FromCStruct DirectFBSurfaceCreateInfoEXT+++data IDirectFB+
src/Vulkan/Extensions/VK_EXT_display_control.hs view
@@ -133,6 +133,10 @@ -- --     -   'Vulkan.Core10.Enums.Result.SUCCESS' --+-- [<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.Device', 'Vulkan.Extensions.Handles.DisplayKHR',@@ -153,8 +157,8 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDisplayPowerControlEXT is null" Nothing Nothing   let vkDisplayPowerControlEXT' = mkVkDisplayPowerControlEXT vkDisplayPowerControlEXTPtr   pDisplayPowerInfo <- ContT $ withCStruct (displayPowerInfo)-  _ <- lift $ vkDisplayPowerControlEXT' (deviceHandle (device)) (display) pDisplayPowerInfo-  pure $ ()+  r <- lift $ vkDisplayPowerControlEXT' (deviceHandle (device)) (display) pDisplayPowerInfo+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))   foreign import ccall@@ -186,6 +190,10 @@ -- --     -   'Vulkan.Core10.Enums.Result.SUCCESS' --+-- [<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.AllocationCallbacks.AllocationCallbacks',@@ -213,7 +221,8 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPFence <- ContT $ bracket (callocBytes @Fence 8) free-  _ <- lift $ vkRegisterDeviceEventEXT' (deviceHandle (device)) pDeviceEventInfo pAllocator (pPFence)+  r <- lift $ vkRegisterDeviceEventEXT' (deviceHandle (device)) pDeviceEventInfo pAllocator (pPFence)+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pFence <- lift $ peek @Fence pPFence   pure $ (pFence) @@ -253,6 +262,10 @@ -- --     -   'Vulkan.Core10.Enums.Result.SUCCESS' --+-- [<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.AllocationCallbacks.AllocationCallbacks',@@ -282,7 +295,8 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPFence <- ContT $ bracket (callocBytes @Fence 8) free-  _ <- lift $ vkRegisterDisplayEventEXT' (deviceHandle (device)) (display) pDisplayEventInfo pAllocator (pPFence)+  r <- lift $ vkRegisterDisplayEventEXT' (deviceHandle (device)) (display) pDisplayEventInfo pAllocator (pPFence)+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pFence <- lift $ peek @Fence pPFence   pure $ (pFence) 
src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs view
@@ -210,13 +210,26 @@ -- -- = Description ----- The fragment density map attachment is read at an--- implementation-dependent time either by the host during--- 'Vulkan.Core10.CommandBufferBuilding.cmdBeginRenderPass' if the--- attachment’s image view was not created with @flags@ containing--- 'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT',--- or by the device when drawing commands in the renderpass execute--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'.+-- The fragment density map is read at an implementation-dependent time+-- with the following constraints determined by the attachment’s image view+-- @flags@:+--+-- -   'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT'+--     specifies that the fragment density map will be read by the device+--     during+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+--+-- -   'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT'+--     specifies that the fragment density map will be read by the host+--     during 'Vulkan.Core10.CommandBuffer.endCommandBuffer' of the primary+--     command buffer that the render pass is recorded into+--+-- -   Otherwise the fragment density map will be read by the host during+--     'Vulkan.Core10.CommandBufferBuilding.cmdBeginRenderPass'+--+-- The fragment density map /may/ additionally be read by the device during+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'+-- for any mode. -- -- If this structure is not present, it is as if -- @fragmentDensityMapAttachment@ was given as
+ src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs view
@@ -0,0 +1,207 @@+{-# language CPP #-}+module Vulkan.Extensions.VK_EXT_fragment_density_map2  ( PhysicalDeviceFragmentDensityMap2FeaturesEXT(..)+                                                       , PhysicalDeviceFragmentDensityMap2PropertiesEXT(..)+                                                       , EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION+                                                       , pattern EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION+                                                       , EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME+                                                       , pattern EXT_FRAGMENT_DENSITY_MAP_2_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.Word (Word32)+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_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT))+-- | VkPhysicalDeviceFragmentDensityMap2FeaturesEXT - Structure describing+-- additional fragment density map features that can be supported by an+-- implementation+--+-- = Members+--+-- The members of the 'PhysicalDeviceFragmentDensityMap2FeaturesEXT'+-- structure describe the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceFragmentDensityMap2FeaturesEXT' 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.+-- 'PhysicalDeviceFragmentDensityMap2FeaturesEXT' /can/ also be included in+-- @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 PhysicalDeviceFragmentDensityMap2FeaturesEXT = PhysicalDeviceFragmentDensityMap2FeaturesEXT+  { -- | @fragmentDensityMapDeferred@ specifies whether the implementation+    -- supports deferred reads of fragment density map image views. If this+    -- feature is not enabled,+    -- 'Vulkan.Core10.Enums.ImageViewCreateFlagBits.IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT'+    -- /must/ not be included in+    -- 'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@flags@.+    fragmentDensityMapDeferred :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceFragmentDensityMap2FeaturesEXT)+#endif+deriving instance Show PhysicalDeviceFragmentDensityMap2FeaturesEXT++instance ToCStruct PhysicalDeviceFragmentDensityMap2FeaturesEXT where+  withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceFragmentDensityMap2FeaturesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (fragmentDensityMapDeferred))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceFragmentDensityMap2FeaturesEXT where+  peekCStruct p = do+    fragmentDensityMapDeferred <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceFragmentDensityMap2FeaturesEXT+             (bool32ToBool fragmentDensityMapDeferred)++instance Storable PhysicalDeviceFragmentDensityMap2FeaturesEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceFragmentDensityMap2FeaturesEXT where+  zero = PhysicalDeviceFragmentDensityMap2FeaturesEXT+           zero+++-- | VkPhysicalDeviceFragmentDensityMap2PropertiesEXT - Structure describing+-- additional fragment density map properties that can be supported by an+-- implementation+--+-- = Members+--+-- The members of the 'PhysicalDeviceFragmentDensityMap2PropertiesEXT'+-- structure describe the following implementation-dependent limits:+--+-- == Valid Usage (Implicit)+--+-- If the 'PhysicalDeviceFragmentDensityMap2PropertiesEXT' 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 and properties.+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceFragmentDensityMap2PropertiesEXT = PhysicalDeviceFragmentDensityMap2PropertiesEXT+  { -- | @subsampledLoads@ specifies if performing image data read with load+    -- operations on subsampled attachments will be resampled to the fragment+    -- density of the render pass+    subsampledLoads :: Bool+  , -- | @subsampledCoarseReconstructionEarlyAccess@ specifies if performing+    -- image data read with samplers created with @flags@ containing+    -- 'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT'+    -- in fragment shader will trigger additional reads during+    -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_VERTEX_SHADER_BIT'+    subsampledCoarseReconstructionEarlyAccess :: Bool+  , -- | @maxSubsampledArrayLayers@ is the maximum number of+    -- 'Vulkan.Core10.Handles.ImageView' array layers for usages supporting+    -- subsampled samplers+    maxSubsampledArrayLayers :: Word32+  , -- | @maxDescriptorSetSubsampledSamplers@ is the maximum number of subsampled+    -- samplers that /can/ be included in a+    -- 'Vulkan.Core10.Handles.PipelineLayout'+    maxDescriptorSetSubsampledSamplers :: Word32+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceFragmentDensityMap2PropertiesEXT)+#endif+deriving instance Show PhysicalDeviceFragmentDensityMap2PropertiesEXT++instance ToCStruct PhysicalDeviceFragmentDensityMap2PropertiesEXT where+  withCStruct x f = allocaBytesAligned 32 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceFragmentDensityMap2PropertiesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (subsampledLoads))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (subsampledCoarseReconstructionEarlyAccess))+    poke ((p `plusPtr` 24 :: Ptr Word32)) (maxSubsampledArrayLayers)+    poke ((p `plusPtr` 28 :: Ptr Word32)) (maxDescriptorSetSubsampledSamplers)+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT)+    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 Word32)) (zero)+    poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)+    f++instance FromCStruct PhysicalDeviceFragmentDensityMap2PropertiesEXT where+  peekCStruct p = do+    subsampledLoads <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    subsampledCoarseReconstructionEarlyAccess <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+    maxSubsampledArrayLayers <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))+    maxDescriptorSetSubsampledSamplers <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))+    pure $ PhysicalDeviceFragmentDensityMap2PropertiesEXT+             (bool32ToBool subsampledLoads) (bool32ToBool subsampledCoarseReconstructionEarlyAccess) maxSubsampledArrayLayers maxDescriptorSetSubsampledSamplers++instance Storable PhysicalDeviceFragmentDensityMap2PropertiesEXT where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceFragmentDensityMap2PropertiesEXT where+  zero = PhysicalDeviceFragmentDensityMap2PropertiesEXT+           zero+           zero+           zero+           zero+++type EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION"+pattern EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION = 1+++type EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME = "VK_EXT_fragment_density_map2"++-- No documentation found for TopLevel "VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME"+pattern EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME = "VK_EXT_fragment_density_map2"+
+ src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs-boot view
@@ -0,0 +1,23 @@+{-# language CPP #-}+module Vulkan.Extensions.VK_EXT_fragment_density_map2  ( PhysicalDeviceFragmentDensityMap2FeaturesEXT+                                                       , PhysicalDeviceFragmentDensityMap2PropertiesEXT+                                                       ) where++import Data.Kind (Type)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+data PhysicalDeviceFragmentDensityMap2FeaturesEXT++instance ToCStruct PhysicalDeviceFragmentDensityMap2FeaturesEXT+instance Show PhysicalDeviceFragmentDensityMap2FeaturesEXT++instance FromCStruct PhysicalDeviceFragmentDensityMap2FeaturesEXT+++data PhysicalDeviceFragmentDensityMap2PropertiesEXT++instance ToCStruct PhysicalDeviceFragmentDensityMap2PropertiesEXT+instance Show PhysicalDeviceFragmentDensityMap2PropertiesEXT++instance FromCStruct PhysicalDeviceFragmentDensityMap2PropertiesEXT+
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs view
@@ -170,30 +170,27 @@ -- -- == Valid Usage ----- -   [[VUID-{refpage}-None-02690]] 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.ImageView' is sampled with+--     'Vulkan.Core10.Enums.Filter.FILTER_LINEAR' 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' ----- -   [[VUID-{refpage}-None-02691]] If a 'Vulkan.Core10.Handles.ImageView'---     is accessed using atomic operations as a result of this command,---     then the image view’s+-- -   If a 'Vulkan.Core10.Handles.ImageView' is accessed using atomic+--     operations 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_STORAGE_IMAGE_ATOMIC_BIT' ----- -   [[VUID-{refpage}-None-02692]] If a 'Vulkan.Core10.Handles.ImageView'---     is sampled with+-- -   If a 'Vulkan.Core10.Handles.ImageView' is sampled with --     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' 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.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT' ----- -   [[VUID-{refpage}-filterCubic-02694]] Any---     'Vulkan.Core10.Handles.ImageView' being sampled with+-- -   Any 'Vulkan.Core10.Handles.ImageView' being sampled with --     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' as a result --     of this command /must/ have a --     'Vulkan.Core10.Enums.ImageViewType.ImageViewType' and format that@@ -202,8 +199,7 @@ --     returned by --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' ----- -   [[VUID-{refpage}-filterCubicMinmax-02695]] Any---     'Vulkan.Core10.Handles.ImageView' being sampled with+-- -   Any 'Vulkan.Core10.Handles.ImageView' being sampled with --     'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT' with a --     reduction mode of either --     'Vulkan.Core12.Enums.SamplerReductionMode.SAMPLER_REDUCTION_MODE_MIN'@@ -217,58 +213,53 @@ --     returned by --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2' ----- -   [[VUID-{refpage}-flags-02696]] Any 'Vulkan.Core10.Handles.Image'---     created with a 'Vulkan.Core10.Image.ImageCreateInfo'::@flags@---     containing+-- -   Any 'Vulkan.Core10.Handles.Image' created with a+--     'Vulkan.Core10.Image.ImageCreateInfo'::@flags@ containing --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CORNER_SAMPLED_BIT_NV' --     sampled as a result of this command /must/ only be sampled using a --     'Vulkan.Core10.Enums.SamplerAddressMode.SamplerAddressMode' of --     'Vulkan.Core10.Enums.SamplerAddressMode.SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE' ----- -   [[VUID-{refpage}-None-02697]] For each set /n/ that is statically---     used by the 'Vulkan.Core10.Handles.Pipeline' bound to the pipeline---     bind point used by this command, a descriptor set /must/ have been---     bound to /n/ at the same pipeline bind point, with a+-- -   For each set /n/ that is statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command, a descriptor set /must/ have been bound to /n/+--     at the same pipeline bind point, with a --     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for set --     /n/, with the 'Vulkan.Core10.Handles.PipelineLayout' used to create --     the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   [[VUID-{refpage}-None-02698]] For each push constant that is---     statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to the---     pipeline bind point used by this command, a push constant value---     /must/ have been set for the same pipeline bind point, with a+-- -   For each push constant that is statically used by the+--     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point+--     used by this command, a push constant value /must/ have been set for+--     the same pipeline bind point, with a --     'Vulkan.Core10.Handles.PipelineLayout' that is compatible for push --     constants, with the 'Vulkan.Core10.Handles.PipelineLayout' used to --     create the current 'Vulkan.Core10.Handles.Pipeline', as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> ----- -   [[VUID-{refpage}-None-02699]] Descriptors in each bound descriptor---     set, specified via+-- -   Descriptors in each bound descriptor set, specified via --     'Vulkan.Core10.CommandBufferBuilding.cmdBindDescriptorSets', /must/ --     be valid if they are statically used by the --     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point --     used by this command ----- -   [[VUID-{refpage}-None-02700]] A valid pipeline /must/ be bound to---     the pipeline bind point used by this command------ -   [[VUID-{refpage}-commandBuffer-02701]] If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command requires any dynamic state, that state---     /must/ have been set for @commandBuffer@, and done so after any---     previously bound pipeline with the corresponding state not specified---     as dynamic+-- -   A valid pipeline /must/ be bound to the pipeline bind point used by+--     this command ----- -   [[VUID-{refpage}-None-02859]] There /must/ not have been any calls---     to dynamic state setting commands for any state not specified as---     dynamic in the 'Vulkan.Core10.Handles.Pipeline' object bound to the---     pipeline bind point used by this command, since that pipeline was---     bound+-- -   If the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+--     bind point used by this command requires any dynamic state, that+--     state /must/ have been set for @commandBuffer@, and done so after+--     any previously bound pipeline with the corresponding state not+--     specified as dynamic ----- -   [[VUID-{refpage}-None-02702]] If the+-- -   There /must/ not have been any calls to dynamic state setting+--     commands for any state not specified as dynamic in the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a+--     point used by this command, since that pipeline was bound+--+-- -   If the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+--     bind point used by this command accesses a --     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized --     coordinates, that sampler /must/ not be used to sample from any --     'Vulkan.Core10.Handles.Image' with a@@ -280,23 +271,21 @@ --     'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY', in --     any shader stage ----- -   [[VUID-{refpage}-None-02703]] If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a+-- -   If the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+--     bind point used by this command accesses a --     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized --     coordinates, that sampler /must/ not be used with any of the SPIR-V --     @OpImageSample*@ or @OpImageSparseSample*@ instructions with --     @ImplicitLod@, @Dref@ or @Proj@ in their name, in any shader stage ----- -   [[VUID-{refpage}-None-02704]] If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a+-- -   If the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+--     bind point used by this command accesses a --     'Vulkan.Core10.Handles.Sampler' object that uses unnormalized --     coordinates, that sampler /must/ not be used with any of the SPIR-V --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage ----- -   [[VUID-{refpage}-None-02705]] If the+-- -   If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access> --     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline' --     object bound to the pipeline bind point used by this command@@ -304,7 +293,7 @@ --     the range of the buffer as specified in the descriptor set bound to --     the same pipeline bind point ----- -   [[VUID-{refpage}-None-02706]] If the+-- -   If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robust buffer access> --     feature is not enabled, and if the 'Vulkan.Core10.Handles.Pipeline' --     object bound to the pipeline bind point used by this command@@ -312,18 +301,17 @@ --     the range of the buffer as specified in the descriptor set bound to --     the same pipeline bind point ----- -   [[VUID-{refpage}-commandBuffer-02707]] If @commandBuffer@ is an---     unprotected command buffer, any resource accessed by the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command /must/ not be a protected resource+-- -   If @commandBuffer@ is an unprotected command buffer, any resource+--     accessed by the 'Vulkan.Core10.Handles.Pipeline' object bound to the+--     pipeline bind point used by this command /must/ not be a protected+--     resource ----- -   [[VUID-{refpage}-None-04115]] If a 'Vulkan.Core10.Handles.ImageView'---     is accessed using @OpImageWrite@ as a result of this command, then---     the @Type@ of the @Texel@ operand of that instruction /must/ have at---     least as many components as the image view’s format.+-- -   If a 'Vulkan.Core10.Handles.ImageView' is accessed using+--     @OpImageWrite@ as a result of this command, then the @Type@ of the+--     @Texel@ operand of that instruction /must/ have at least as many+--     components as the image view’s format. ----- -   [[VUID-{refpage}-renderPass-02684]] The current render pass /must/---     be+-- -   The current render pass /must/ be --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-compatibility compatible> --     with the @renderPass@ member of the --     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure@@ -331,27 +319,25 @@ --     to --     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS' ----- -   [[VUID-{refpage}-subpass-02685]] The subpass index of the current---     render pass /must/ be equal to the @subpass@ member of the+-- -   The subpass index of the current render pass /must/ be equal to the+--     @subpass@ member of the --     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo' structure --     specified when creating the 'Vulkan.Core10.Handles.Pipeline' bound --     to --     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS' ----- -   [[VUID-{refpage}-None-02686]] Every input attachment used by the---     current subpass /must/ be bound to the pipeline via a descriptor set+-- -   Every input attachment used by the current subpass /must/ be bound+--     to the pipeline via a descriptor set ----- -   [[VUID-{refpage}-None-02687]] Image subresources used as attachments---     in the current render pass /must/ not be accessed in any way other---     than as an attachment by this command+-- -   Image subresources used as attachments in the current render pass+--     /must/ not be accessed in any way other than as an attachment by+--     this command ----- -   [[VUID-{refpage}-maxMultiviewInstanceIndex-02688]] If the draw is---     recorded in a render pass instance with multiview enabled, the---     maximum instance index /must/ be less than or equal to+-- -   If the draw is recorded in a render pass instance with multiview+--     enabled, the maximum instance index /must/ be less than or equal to --     'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties'::@maxMultiviewInstanceIndex@ ----- -   [[VUID-{refpage}-sampleLocationsEnable-02689]] If the bound graphics---     pipeline was created with+-- -   If the bound graphics pipeline was created with --     'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@ --     set to 'Vulkan.Core10.FundamentalTypes.TRUE' and the current subpass --     has a depth\/stencil attachment, then that attachment /must/ have@@ -359,8 +345,7 @@ --     'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT' --     bit set ----- -   [[VUID-{refpage}-viewportCount-03417]] If the bound graphics---     pipeline state was created with the+-- -   If the bound graphics pipeline state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT'@@ -373,8 +358,7 @@ --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@scissorCount@ --     of the pipeline ----- -   [[VUID-{refpage}-scissorCount-03418]] If the bound graphics pipeline---     state was created with the+-- -   If the bound graphics pipeline state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT' --     dynamic state enabled, but not the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'@@ -387,8 +371,7 @@ --     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'::@viewportCount@ --     of the pipeline ----- -   [[VUID-{refpage}-viewportCount-03419]] If the bound graphics---     pipeline state was created with both the+-- -   If the bound graphics pipeline state was created with both the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT' --     and --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT'@@ -402,8 +385,7 @@ --     /must/ match the @scissorCount@ parameter of --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetScissorWithCountEXT' ----- -   [[VUID-{refpage}-primitiveTopology-03420]] If the bound graphics---     pipeline state was created with the+-- -   If the bound graphics pipeline state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT' --     dynamic state enabled then --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopologyEXT'@@ -416,20 +398,20 @@ --     'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo'::@topology@ --     state ----- -   [[VUID-{refpage}-None-04007]] 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 bound+-- -   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+--     bound ----- -   [[VUID-{refpage}-None-04008]] If the+-- -   If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-nullDescriptor nullDescriptor> --     feature is not enabled, all vertex input bindings accessed via --     vertex input variables declared in the vertex shader entry point’s --     interface /must/ not be 'Vulkan.Core10.APIConstants.NULL_HANDLE' ----- -   [[VUID-{refpage}-None-02721]] For a given vertex buffer binding, any---     attribute data fetched /must/ be entirely contained within the---     corresponding vertex buffer binding, as described in+-- -   For a given vertex buffer binding, any attribute data fetched /must/+--     be entirely contained within the corresponding vertex buffer+--     binding, as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???> -- -- -   @commandBuffer@ /must/ not be a protected command buffer
src/Vulkan/Version.hs view
@@ -14,11 +14,11 @@ import Data.Word (Word32)  pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 145+pattern HEADER_VERSION = 146   pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 145+pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 146   pattern MAKE_VERSION :: Word32 -> Word32 -> Word32 -> Word32
vulkan.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 4abff3b0c093724ec1d3e755d652d1c7693cd3efe7d03bcbc523e4dba41414ca+-- hash: 5d8265056859e741eaa7e8b75c2a0912a2af1449556e077fc144ec532a2b3dc0  name:           vulkan-version:        3.5+version:        3.6 synopsis:       Bindings to the Vulkan graphics API. category:       Graphics homepage:       https://github.com/expipiplus1/vulkan#readme@@ -287,6 +287,7 @@       Vulkan.Extensions.VK_EXT_depth_range_unrestricted       Vulkan.Extensions.VK_EXT_descriptor_indexing       Vulkan.Extensions.VK_EXT_direct_mode_display+      Vulkan.Extensions.VK_EXT_directfb_surface       Vulkan.Extensions.VK_EXT_discard_rectangles       Vulkan.Extensions.VK_EXT_display_control       Vulkan.Extensions.VK_EXT_display_surface_counter@@ -295,6 +296,7 @@       Vulkan.Extensions.VK_EXT_external_memory_host       Vulkan.Extensions.VK_EXT_filter_cubic       Vulkan.Extensions.VK_EXT_fragment_density_map+      Vulkan.Extensions.VK_EXT_fragment_density_map2       Vulkan.Extensions.VK_EXT_fragment_shader_interlock       Vulkan.Extensions.VK_EXT_full_screen_exclusive       Vulkan.Extensions.VK_EXT_global_priority