vulkan 3.5 → 3.6
raw patch · 33 files changed
+940/−178 lines, 33 files
Files
- changelog.md +3/−0
- readme.md +66/−0
- src/Vulkan/CStruct/Extends.hs +10/−0
- src/Vulkan/Core10/AllocationCallbacks.hs +1/−0
- src/Vulkan/Core10/CommandBufferBuilding.hs +1/−1
- src/Vulkan/Core10/Device.hs +3/−0
- src/Vulkan/Core10/DeviceInitialization.hs +28/−16
- src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs +14/−2
- src/Vulkan/Core10/Enums/ImageViewCreateFlagBits.hs +13/−6
- src/Vulkan/Core10/Enums/ObjectType.hs +1/−1
- src/Vulkan/Core10/Enums/StructureType.hs +21/−0
- src/Vulkan/Core10/FundamentalTypes.hs +2/−0
- src/Vulkan/Core10/Handles.hs +2/−0
- src/Vulkan/Core10/ImageView.hs +20/−4
- src/Vulkan/Core10/Pass.hs +0/−6
- src/Vulkan/Core10/PipelineLayout.hs +9/−0
- src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs +24/−0
- src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs +5/−0
- src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs +17/−36
- src/Vulkan/Dynamic.hs +10/−1
- src/Vulkan/Extensions.hs +4/−0
- src/Vulkan/Extensions/Handles.hs +1/−0
- src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs +6/−1
- src/Vulkan/Extensions/VK_EXT_debug_utils.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_directfb_surface.hs +316/−0
- src/Vulkan/Extensions/VK_EXT_directfb_surface.hs-boot +18/−0
- src/Vulkan/Extensions/VK_EXT_display_control.hs +18/−4
- src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs +20/−7
- src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs +207/−0
- src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs-boot +23/−0
- src/Vulkan/Extensions/VK_NV_device_generated_commands.hs +69/−87
- src/Vulkan/Version.hs +2/−2
- vulkan.cabal +4/−2
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