packages feed

vulkan 3.6.11.1 → 3.6.12

raw patch · 25 files changed

+603/−211 lines, 25 files

Files

changelog.md view
@@ -2,6 +2,12 @@  ## WIP +## [3.6.12] - 2020-11-03++  - Bump API version to v1.2.159+  - Include enum aliases defined in `<enums>` sections, until now only those+    enum aliases in `features` or `extensions` were used.+ ## [3.6.11.1] - 2020-11-01  - Raise bound on base
package.yaml view
@@ -1,5 +1,5 @@ name: vulkan-version: "3.6.11.1"+version: "3.6.12" synopsis: Bindings to the Vulkan graphics API. category: Graphics maintainer: Joe Hermaszewski <live.long.and.prosper@monoid.al>
readme.md view
@@ -368,37 +368,79 @@ 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+### Building on Windows with Cabal  - Clone this repo-- Install stack-  - https://docs.haskellstack.org/en/stable/install_and_upgrade/#windows+- Install GHC and Cabal+  - I downloaded the GHC binary package from+    [here](https://www.haskell.org/ghc/download_ghc_8_8_4.html), extracted it+    and added the `bin` directory to `PATH`.+  - I downloaded the cabal-install binary package from [here](https://www.haskell.org/cabal/download.html) - Make sure your graphics driver has installed `vulkan-1.dll` in `C:/windows/system32` - Install the LunarG Vulkan SDK   - https://vulkan.lunarg.com/sdk/home#windows   - Remember the installation directory, use in place of `C:/VulkanSDK/1.2.135.0` below   - We will link against `vulkan-1.lib` from this installation   - We will use the `glslangValidator` from this installation, make sure it's-    in your `PATH` or otherwise made available to `stack`-- Install the system dependencies via stack-  - pkg-config-  - SDL2-  - `stack exec -- pacman -S mingw-w64-x86_64-pkg-config mingw-w64-x86_64-SDL2`-  - Note that the above command will also install mingw's `libvulkan-1.dll`.-    Make sure that the Vulkan DLL linked by GHC is the same one that SDL-    loads at runtime. By default SDL will load-    `vulkan-1.dll`<sup>[1](#sdl-load)</sup>, so if you intend to use mingw's-    `libvulkan-1.dll` make sure to either set the `SDL_VULKAN_LIBRARY`-    environment variable to `"libvulkan-1.dll"` or pass `Just-    "libvulkan-1.dll"` to [SDL's-    `vkLoadLibrary`](https://hackage.haskell.org/package/sdl2-2.5.0.0/docs/SDL-Video-Vulkan.html#v:vkLoadLibrary)-    before creating a window.-- Build the packages-  - `stack --extra-lib-dirs C:/VulkanSDK/1.2.135.0/Lib build`-  - You can add `extra-lib-dirs: [ C:/VulkanSDK/1.2.135.0/Lib ]` to your `stack.yaml` -    instead of using the command line option here.-- Run an example program-  - `stack --extra-lib-dirs C:/VulkanSDK/1.2.135.0/Lib run resize`+    in your `PATH` or otherwise made available to `ghc`+- Install `pkg-config` or `pkg-config-lite` (for the `sdl2` package), perform any one of:+  - Install using chocolatey: `choco install pkgconfiglite`+  - Install from SourceForge: Download from+    [here](https://sourceforge.net/projects/pkgconfiglite/files/) and put the+    binary in your `PATH`+  - Install by following the instructions+    [here](https://stackoverflow.com/questions/1710922/how-to-install-pkg-config-in-windows)+  - Patch SDL2 to not require pkg-config with [this+    patch](https://gist.github.com/anonymous/9d1060281ed7127a54d2)+- Install SDL2 (condensed instructions from+  [here](https://gist.github.com/anonymous/9d1060281ed7127a54d2)):+  - Navigate to <https://www.libsdl.org/download-2.0.php>+  - Download the Mingw64 development library+  - Extract the `x86_64-w64-mingw32` directory somwhere, I installed it as `~/AppData/Roaming/local/SDL2`+  - Copy the `lib/pkgconfig/sdl2.pc` file to `~/AppData/Roaming/local/lib/pkgconfig/sdl2.pc`+- Inform Cabal about header and library locations by adding the following to+  `cabal.project.local`, changed accodingly for your install paths for SDL2 and+  the Vulkan SDK.+  +    ```+    package sdl2+      extra-lib-dirs: C:/Users/ms/AppData/Roaming/local/SDL2/lib/+      extra-include-dirs: C:/Users/ms/AppData/Roaming/local/SDL2/include/SDL2/++    package vulkan+      extra-lib-dirs: C:/VulkanSDK/1.2.135.0/lib/++    package vulkan-utils+      extra-include-dirs: C:/VulkanSDK/1.2.135.0/Include/++    package VulkanMemoryAllocator+      extra-include-dirs: C:/VulkanSDK/1.2.135.0/Include/+    ```++- Run `cabal build examples` to build the examples+- Run `cabal run resize` to run the `resize` example.++### Building on Windows with Stack++Stack is currently (2020-11-02) bundled with an msys2 installation which is+too old to use the package repositories (see+https://github.com/commercialhaskell/stack/issues/5300) so installing the+Vulkan SDK, `SDL2` and `pkg-config` is not possible with the bundled package+manager.++Nevertheless, it should be possible to use Stack by adding the following to+`stack.yaml` (changed appropriately according to SDL2 and VulkanSDK install+locations) and building after following the instructions above.++```yaml+extra-lib-dirs:+- C:/Users/ms/AppData/Roaming/local/SDL2/lib/+- C:/VulkanSDK/1.2.135.0/lib/++extra-include-dirs:+- C:/Users/ms/AppData/Roaming/local/SDL2/include/SDL2/+- C:/VulkanSDK/1.2.135.0/Include/+```  ## Examples 
src/Vulkan/CStruct/Extends.hs view
@@ -119,6 +119,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing (CopyAccelerationStructureToMemoryInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyBufferInfo2KHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyBufferToImageInfo2KHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_rotated_copy_commands (CopyCommandTransformInfoQCOM) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (CopyDescriptorSet) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageInfo2KHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageToBufferInfo2KHR)@@ -741,6 +742,7 @@   Extends BufferCreateInfo ExternalMemoryBufferCreateInfo = ()   Extends BufferCreateInfo BufferOpaqueCaptureAddressCreateInfo = ()   Extends BufferCreateInfo BufferDeviceAddressCreateInfoEXT = ()+  Extends BufferImageCopy2KHR CopyCommandTransformInfoQCOM = ()   Extends CommandBufferBeginInfo DeviceGroupCommandBufferBeginInfo = ()   Extends CommandBufferInheritanceInfo CommandBufferInheritanceConditionalRenderingInfoEXT = ()   Extends CommandBufferInheritanceInfo CommandBufferInheritanceRenderPassTransformInfoQCOM = ()@@ -843,6 +845,7 @@   Extends GraphicsPipelineCreateInfo PipelineCreationFeedbackCreateInfoEXT = ()   Extends GraphicsPipelineCreateInfo PipelineCompilerControlCreateInfoAMD = ()   Extends GraphicsPipelineCreateInfo PipelineFragmentShadingRateStateCreateInfoKHR = ()+  Extends ImageBlit2KHR CopyCommandTransformInfoQCOM = ()   Extends ImageCreateInfo DedicatedAllocationImageCreateInfoNV = ()   Extends ImageCreateInfo ExternalMemoryImageCreateInfoNV = ()   Extends ImageCreateInfo ExternalMemoryImageCreateInfo = ()@@ -1415,6 +1418,7 @@   STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR -> go @DeferredOperationInfoKHR   STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT -> go @PhysicalDeviceExtendedDynamicStateFeaturesEXT   STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM -> go @RenderPassTransformBeginInfoQCOM+  STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM -> go @CopyCommandTransformInfoQCOM   STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM -> go @CommandBufferInheritanceRenderPassTransformInfoQCOM   STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV -> go @PhysicalDeviceDiagnosticsConfigFeaturesNV   STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV -> go @DeviceDiagnosticsConfigCreateInfoNV@@ -1722,6 +1726,7 @@ {-# complete (::&) :: DeferredOperationInfoKHR #-} {-# complete (::&) :: PhysicalDeviceExtendedDynamicStateFeaturesEXT #-} {-# complete (::&) :: RenderPassTransformBeginInfoQCOM #-}+{-# complete (::&) :: CopyCommandTransformInfoQCOM #-} {-# complete (::&) :: CommandBufferInheritanceRenderPassTransformInfoQCOM #-} {-# complete (::&) :: PhysicalDeviceDiagnosticsConfigFeaturesNV #-} {-# complete (::&) :: DeviceDiagnosticsConfigCreateInfoNV #-}
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -5187,11 +5187,6 @@ -- -   If @commandBuffer@ is a protected command buffer, then @dstImage@ --     /must/ not be an unprotected image ----- -   @srcBuffer@ /must/ be large enough to contain all buffer locations---     that are accessed according to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,---     for each element of @pRegions@--- -- -   The image region specified by each element of @pRegions@ /must/ be a --     region that is contained within @dstImage@ if the @dstImage@’s --     'Vulkan.Core10.Enums.Format.Format' is not a@@ -5200,6 +5195,11 @@ --     copied to if the @dstImage@’s 'Vulkan.Core10.Enums.Format.Format' is --     a multi-planar format --+-- -   @srcBuffer@ /must/ be large enough to contain all buffer locations+--     that are accessed according to+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,+--     for each element of @pRegions@+-- -- -   The union of all source regions, and the union of all destination --     regions, specified by the elements of @pRegions@, /must/ not overlap --     in memory@@ -5273,18 +5273,6 @@ --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'. ----- -   If @dstImage@ does not have either a depth\/stencil or a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the format’s texel block size------ -   If @dstImage@ has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the element size of the compatible format for the format---     and the @aspectMask@ of the @imageSubresource@ as defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>--- -- -   For each element of @pRegions@, @imageOffset.x@ and --     (@imageExtent.width@ + @imageOffset.x@) /must/ both be greater than --     or equal to @0@ and less than or equal to the width of the specified@@ -5300,6 +5288,18 @@ --     of a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format> --+-- -   If @dstImage@ does not have either a depth\/stencil or a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @bufferOffset@ /must/ be a+--     multiple of the format’s texel block size+--+-- -   If @dstImage@ has a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @bufferOffset@ /must/ be a+--     multiple of the element size of the compatible format for the format+--     and the @aspectMask@ of the @imageSubresource@ as defined in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>+-- -- -   If @dstImage@ is of type --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element --     of @pRegions@, @imageOffset.y@ /must/ be @0@ and@@ -5501,11 +5501,6 @@ -- -   If @commandBuffer@ is a protected command buffer, then @dstBuffer@ --     /must/ not be an unprotected buffer ----- -   @dstBuffer@ /must/ be large enough to contain all buffer locations---     that are accessed according to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,---     for each element of @pRegions@--- -- -   The image region specified by each element of @pRegions@ /must/ be a --     region that is contained within @srcImage@ if the @srcImage@’s --     'Vulkan.Core10.Enums.Format.Format' is not a@@ -5514,6 +5509,11 @@ --     copied if the @srcImage@’s 'Vulkan.Core10.Enums.Format.Format' is a --     multi-planar format --+-- -   @dstBuffer@ /must/ be large enough to contain all buffer locations+--     that are accessed according to+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,+--     for each element of @pRegions@+-- -- -   The union of all source regions, and the union of all destination --     regions, specified by the elements of @pRegions@, /must/ not overlap --     in memory@@ -5578,32 +5578,32 @@ -- -   If @srcImage@ has a depth\/stencil format, the @bufferOffset@ member --     of any element of @pRegions@ /must/ be a multiple of @4@ ----- -   If @srcImage@ does not have either a depth\/stencil or a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the format’s texel block size------ -   If @srcImage@ has a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,---     then for each element of @pRegions@, @bufferOffset@ /must/ be a---     multiple of the element size of the compatible format for the format---     and the @aspectMask@ of the @imageSubresource@ as defined in---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>------ -   For each element of @pRegions@, @imageOffset.x@ and+-- -   For each element of @pRegions@ , @imageOffset.x@ and --     (@imageExtent.width@ + @imageOffset.x@) /must/ both be greater than --     or equal to @0@ and less than or equal to the width of the specified --     @imageSubresource@ of @srcImage@ where this refers to the width of --     the /plane/ of the image involved in the copy in the case of a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format> ----- -   For each element of @pRegions@, @imageOffset.y@ and+-- -   For each element of @pRegions@ , @imageOffset.y@ and --     (imageExtent.height + @imageOffset.y@) /must/ both be greater than --     or equal to @0@ and less than or equal to the height of the --     specified @imageSubresource@ of @srcImage@ where this refers to the --     height of the /plane/ of the image involved in the copy in the case --     of a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+--+-- -   If @srcImage@ does not have either a depth\/stencil or a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @bufferOffset@ /must/ be a+--     multiple of the format’s texel block size+--+-- -   If @srcImage@ has a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+--     then for each element of @pRegions@, @bufferOffset@ /must/ be a+--     multiple of the element size of the compatible format for the format+--     and the @aspectMask@ of the @imageSubresource@ as defined in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???> -- -- -   If @srcImage@ is of type --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element
src/Vulkan/Core10/Enums/StencilFaceFlagBits.hs view
@@ -1,5 +1,6 @@ {-# language CPP #-}-module Vulkan.Core10.Enums.StencilFaceFlagBits  ( StencilFaceFlagBits( STENCIL_FACE_FRONT_BIT+module Vulkan.Core10.Enums.StencilFaceFlagBits  ( pattern STENCIL_FRONT_AND_BACK+                                                , StencilFaceFlagBits( STENCIL_FACE_FRONT_BIT                                                                      , STENCIL_FACE_BACK_BIT                                                                      , STENCIL_FACE_FRONT_AND_BACK                                                                      , ..@@ -22,6 +23,10 @@ import Text.Read.Lex (Lexeme(Ident)) import Vulkan.Core10.FundamentalTypes (Flags) import Vulkan.Zero (Zero)+-- No documentation found for TopLevel "VK_STENCIL_FRONT_AND_BACK"+pattern STENCIL_FRONT_AND_BACK = STENCIL_FACE_FRONT_AND_BACK++ -- | VkStencilFaceFlagBits - Bitmask specifying sets of stencil state for -- which to update the compare mask --
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -62,6 +62,7 @@                                                         , STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR                                                         , STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT+                                                        , STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM                                                         , 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@@ -561,6 +562,7 @@ -- 'Vulkan.Extensions.VK_KHR_ray_tracing.CopyAccelerationStructureToMemoryInfoKHR', -- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyBufferInfo2KHR', -- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyBufferToImageInfo2KHR',+-- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM', -- 'Vulkan.Core10.DescriptorSet.CopyDescriptorSet', -- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageInfo2KHR', -- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageToBufferInfo2KHR',@@ -1096,6 +1098,8 @@ pattern STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = StructureType 1000337000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = StructureType 1000335000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM"+pattern STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = StructureType 1000333000 -- 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"@@ -1963,6 +1967,7 @@              STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR,              STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR,              STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT,+             STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM,              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,@@ -2431,6 +2436,7 @@     STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR -> showString "STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR"     STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR -> showString "STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR"     STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT"+    STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM -> showString "STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM"     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"@@ -2899,6 +2905,7 @@                             , ("STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR", pure STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR)                             , ("STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR", pure STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR)                             , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT)+                            , ("STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM", pure STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM)                             , ("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)
src/Vulkan/Core11/Enums/ExternalSemaphoreHandleTypeFlagBits.hs view
@@ -1,5 +1,6 @@ {-# language CPP #-}-module Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits  ( ExternalSemaphoreHandleTypeFlagBits( EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT+module Vulkan.Core11.Enums.ExternalSemaphoreHandleTypeFlagBits  ( pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT+                                                                , ExternalSemaphoreHandleTypeFlagBits( EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT                                                                                                      , EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT                                                                                                      , EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT                                                                                                      , EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT@@ -24,6 +25,10 @@ import Text.Read.Lex (Lexeme(Ident)) import Vulkan.Core10.FundamentalTypes (Flags) import Vulkan.Zero (Zero)+-- No documentation found for TopLevel "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT"+pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT++ -- | VkExternalSemaphoreHandleTypeFlagBits - Bitmask of valid external -- semaphore handle types --
src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs view
@@ -743,6 +743,12 @@ -- -   @sType@ /must/ be --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2' --+-- -   @pNext@ /must/ be @NULL@ or a pointer to a valid instance of+--     'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout'+--+-- -   The @sType@ value of each struct in the @pNext@ chain /must/ be+--     unique+-- -- -   @flags@ /must/ be a valid combination of --     'Vulkan.Core10.Enums.AttachmentDescriptionFlagBits.AttachmentDescriptionFlagBits' --     values@@ -1004,6 +1010,12 @@ -- -   @sType@ /must/ be --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2' --+-- -   @pNext@ /must/ be @NULL@ or a pointer to a valid instance of+--     'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentReferenceStencilLayout'+--+-- -   The @sType@ value of each struct in the @pNext@ chain /must/ be+--     unique+-- -- -   @layout@ /must/ be a valid --     'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value --@@ -1220,6 +1232,11 @@ --     @aspectMask@ member /must/ not include --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_METADATA_BIT' --+-- -   If the @attachment@ member of any element of @pInputAttachments@ is+--     not 'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED', then the+--     @aspectMask@ member /must/ not include+--     @VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT@ for any index @i@+-- -- -   An attachment /must/ not be used in both @pDepthStencilAttachment@ --     and @pColorAttachments@ --@@ -1235,6 +1252,16 @@ -- -   @sType@ /must/ be --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2' --+-- -   Each @pNext@ member of any structure (including this one) in the+--     @pNext@ chain /must/ be either @NULL@ or a pointer to a valid+--     instance of+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.FragmentShadingRateAttachmentInfoKHR'+--     or+--     'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve'+--+-- -   The @sType@ value of each struct in the @pNext@ chain /must/ be+--     unique+-- -- -   @flags@ /must/ be a valid combination of --     'Vulkan.Core10.Enums.SubpassDescriptionFlagBits.SubpassDescriptionFlagBits' --     values@@ -1526,6 +1553,8 @@ -- -- -   @sType@ /must/ be --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2'+--+-- -   @pNext@ /must/ be @NULL@ -- -- -   @srcStageMask@ /must/ be a valid combination of --     'Vulkan.Core10.Enums.PipelineStageFlagBits.PipelineStageFlagBits'
src/Vulkan/Extensions.hs view
@@ -217,6 +217,7 @@                           , module Vulkan.Extensions.VK_QCOM_render_pass_shader_resolve                           , module Vulkan.Extensions.VK_QCOM_render_pass_store_ops                           , module Vulkan.Extensions.VK_QCOM_render_pass_transform+                          , module Vulkan.Extensions.VK_QCOM_rotated_copy_commands                           ) where import Vulkan.Extensions.Handles import Vulkan.Extensions.VK_AMD_buffer_marker@@ -436,4 +437,5 @@ import Vulkan.Extensions.VK_QCOM_render_pass_shader_resolve import Vulkan.Extensions.VK_QCOM_render_pass_store_ops import Vulkan.Extensions.VK_QCOM_render_pass_transform+import Vulkan.Extensions.VK_QCOM_rotated_copy_commands 
src/Vulkan/Extensions/VK_EXT_debug_report.hs view
@@ -4,6 +4,8 @@                                               , destroyDebugReportCallbackEXT                                               , debugReportMessageEXT                                               , pattern STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT+                                              , pattern DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT+                                              , pattern DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT                                               , DebugReportCallbackCreateInfoEXT(..)                                               , DebugReportFlagBitsEXT( DEBUG_REPORT_INFORMATION_BIT_EXT                                                                       , DEBUG_REPORT_WARNING_BIT_EXT@@ -366,6 +368,14 @@  -- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT" pattern STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT+++-- No documentation found for TopLevel "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT"+pattern DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT+++-- No documentation found for TopLevel "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT"+pattern DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT   -- | VkDebugReportCallbackCreateInfoEXT - Structure specifying parameters of
src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs view
@@ -1,8 +1,9 @@ {-# language CPP #-} module Vulkan.Extensions.VK_EXT_display_surface_counter  ( getPhysicalDeviceSurfaceCapabilities2EXT                                                          , pattern STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT+                                                         , pattern SURFACE_COUNTER_VBLANK_EXT                                                          , SurfaceCapabilities2EXT(..)-                                                         , SurfaceCounterFlagBitsEXT( SURFACE_COUNTER_VBLANK_EXT+                                                         , SurfaceCounterFlagBitsEXT( SURFACE_COUNTER_VBLANK_BIT_EXT                                                                                     , ..                                                                                     )                                                          , SurfaceCounterFlagsEXT@@ -156,6 +157,10 @@ pattern STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT  +-- No documentation found for TopLevel "VK_SURFACE_COUNTER_VBLANK_EXT"+pattern SURFACE_COUNTER_VBLANK_EXT = SURFACE_COUNTER_VBLANK_BIT_EXT++ -- | VkSurfaceCapabilities2EXT - Structure describing capabilities of a -- surface --@@ -203,7 +208,7 @@     -- indicating the supported surface counter types.     --     -- @supportedSurfaceCounters@ /must/ not include-    -- 'SURFACE_COUNTER_VBLANK_EXT' unless the surface queried is a+    -- 'SURFACE_COUNTER_VBLANK_BIT_EXT' unless the surface queried is a     -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#wsi-display-surfaces display surface>     supportedSurfaceCounters :: SurfaceCounterFlagsEXT   }@@ -284,20 +289,20 @@ newtype SurfaceCounterFlagBitsEXT = SurfaceCounterFlagBitsEXT Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits) --- | 'SURFACE_COUNTER_VBLANK_EXT' specifies a counter incrementing once every--- time a vertical blanking period occurs on the display associated with--- the surface.-pattern SURFACE_COUNTER_VBLANK_EXT = SurfaceCounterFlagBitsEXT 0x00000001+-- | 'SURFACE_COUNTER_VBLANK_BIT_EXT' specifies a counter incrementing once+-- every time a vertical blanking period occurs on the display associated+-- with the surface.+pattern SURFACE_COUNTER_VBLANK_BIT_EXT = SurfaceCounterFlagBitsEXT 0x00000001  type SurfaceCounterFlagsEXT = SurfaceCounterFlagBitsEXT  instance Show SurfaceCounterFlagBitsEXT where   showsPrec p = \case-    SURFACE_COUNTER_VBLANK_EXT -> showString "SURFACE_COUNTER_VBLANK_EXT"+    SURFACE_COUNTER_VBLANK_BIT_EXT -> showString "SURFACE_COUNTER_VBLANK_BIT_EXT"     SurfaceCounterFlagBitsEXT x -> showParen (p >= 11) (showString "SurfaceCounterFlagBitsEXT 0x" . showHex x)  instance Read SurfaceCounterFlagBitsEXT where-  readPrec = parens (choose [("SURFACE_COUNTER_VBLANK_EXT", pure SURFACE_COUNTER_VBLANK_EXT)]+  readPrec = parens (choose [("SURFACE_COUNTER_VBLANK_BIT_EXT", pure SURFACE_COUNTER_VBLANK_BIT_EXT)]                      +++                      prec 10 (do                        expectP (Ident "SurfaceCounterFlagBitsEXT")
src/Vulkan/Extensions/VK_EXT_private_data.hs view
@@ -98,6 +98,12 @@  -- | vkCreatePrivateDataSlotEXT - Create a slot for private data storage --+-- == Valid Usage+--+-- -   The+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-privateData privateData>+--     feature /must/ be enabled+-- -- == Valid Usage (Implicit) -- -- -   @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs view
@@ -55,7 +55,7 @@ -- 'Vulkan.Core10.Enums.StructureType.StructureType' data PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL   { -- | @shaderIntegerFunctions2@ indicates that the implementation supports the-    -- @ShaderIntegerFunctions2INTEL@ SPIR-V capability.+    -- @IntegerFunctions2INTEL@ SPIR-V capability.     shaderIntegerFunctions2 :: Bool }   deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)
src/Vulkan/Extensions/VK_KHR_copy_commands2.hs view
@@ -25,8 +25,10 @@ import Vulkan.CStruct.Utils (FixedArray) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)+import Data.Typeable (eqT) import Foreign.Marshal.Alloc (allocaBytesAligned) import GHC.IO (throwIO)+import GHC.Ptr (castPtr) import GHC.Ptr (nullFunPtr) import Foreign.Ptr (nullPtr) import Foreign.Ptr (plusPtr)@@ -37,6 +39,7 @@ import qualified Data.Vector (length) import Control.Monad.IO.Class (MonadIO) import Data.String (IsString)+import Data.Type.Equality ((:~:)(Refl)) import Data.Typeable (Typeable) import Foreign.Storable (Storable) import Foreign.Storable (Storable(peek))@@ -52,11 +55,16 @@ import Control.Monad.Trans.Cont (ContT(..)) import Data.Vector (Vector) import Vulkan.CStruct.Utils (advancePtrBytes)+import Vulkan.CStruct.Extends (forgetExtensions) import Vulkan.CStruct.Utils (lowerArrayPtr)+import Vulkan.CStruct.Extends (peekSomeCStruct)+import Vulkan.CStruct.Extends (pokeSomeCStruct) import Vulkan.Core10.Handles (Buffer)+import Vulkan.CStruct.Extends (Chain) import Vulkan.Core10.Handles (CommandBuffer) import Vulkan.Core10.Handles (CommandBuffer(..)) import Vulkan.Core10.Handles (CommandBuffer_T)+import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_rotated_copy_commands (CopyCommandTransformInfoQCOM) import Vulkan.Dynamic (DeviceCmds(pVkCmdBlitImage2KHR)) import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyBuffer2KHR)) import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyBufferToImage2KHR))@@ -64,6 +72,9 @@ import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyImageToBuffer2KHR)) import Vulkan.Dynamic (DeviceCmds(pVkCmdResolveImage2KHR)) import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.CStruct.Extends (Extends)+import Vulkan.CStruct.Extends (Extendss)+import Vulkan.CStruct.Extends (Extensible(..)) import Vulkan.Core10.FundamentalTypes (Extent3D) import Vulkan.Core10.Enums.Filter (Filter) import Vulkan.CStruct (FromCStruct)@@ -72,6 +83,11 @@ import Vulkan.Core10.Enums.ImageLayout (ImageLayout) import Vulkan.Core10.CommandBufferBuilding (ImageSubresourceLayers) import Vulkan.Core10.FundamentalTypes (Offset3D)+import Vulkan.CStruct.Extends (PeekChain)+import Vulkan.CStruct.Extends (PeekChain(..))+import Vulkan.CStruct.Extends (PokeChain)+import Vulkan.CStruct.Extends (PokeChain(..))+import Vulkan.CStruct.Extends (SomeStruct) import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.CStruct (ToCStruct) import Vulkan.CStruct (ToCStruct(..))@@ -781,8 +797,12 @@ -- -   @sType@ /must/ be --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_BLIT_2_KHR' ----- -   @pNext@ /must/ be @NULL@+-- -   @pNext@ /must/ be @NULL@ or a pointer to a valid instance of+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM' --+-- -   The @sType@ value of each struct in the @pNext@ chain /must/ be+--     unique+-- -- -   @srcSubresource@ /must/ be a valid --     'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers' --     structure@@ -797,8 +817,10 @@ -- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers', -- 'Vulkan.Core10.FundamentalTypes.Offset3D', -- 'Vulkan.Core10.Enums.StructureType.StructureType'-data ImageBlit2KHR = ImageBlit2KHR-  { -- | @srcSubresource@ is the subresource to blit from.+data ImageBlit2KHR (es :: [Type]) = ImageBlit2KHR+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+    next :: Chain es+  , -- | @srcSubresource@ is the subresource to blit from.     srcSubresource :: ImageSubresourceLayers   , -- | @srcOffsets@ is a pointer to an array of two     -- 'Vulkan.Core10.FundamentalTypes.Offset3D' structures specifying the@@ -813,15 +835,25 @@   }   deriving (Typeable) #if defined(GENERIC_INSTANCES)-deriving instance Generic (ImageBlit2KHR)+deriving instance Generic (ImageBlit2KHR (es :: [Type])) #endif-deriving instance Show ImageBlit2KHR+deriving instance Show (Chain es) => Show (ImageBlit2KHR es) -instance ToCStruct ImageBlit2KHR where+instance Extensible ImageBlit2KHR where+  extensibleType = STRUCTURE_TYPE_IMAGE_BLIT_2_KHR+  setNext x next = x{next = next}+  getNext ImageBlit2KHR{..} = next+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageBlit2KHR e => b) -> Maybe b+  extends _ f+    | Just Refl <- eqT @e @CopyCommandTransformInfoQCOM = Just f+    | otherwise = Nothing++instance (Extendss ImageBlit2KHR es, PokeChain es) => ToCStruct (ImageBlit2KHR es) where   withCStruct x f = allocaBytesAligned 96 8 $ \p -> pokeCStruct p x (f p)   pokeCStruct p ImageBlit2KHR{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_BLIT_2_KHR)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    pNext'' <- fmap castPtr . ContT $ withChain (next)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''     ContT $ pokeCStruct ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (srcSubresource) . ($ ())     let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 32 :: Ptr (FixedArray 2 Offset3D)))     case (srcOffsets) of@@ -839,7 +871,8 @@   cStructAlignment = 8   pokeZeroCStruct p f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_BLIT_2_KHR)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    pNext' <- fmap castPtr . ContT $ withZeroChain @es+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'     ContT $ pokeCStruct ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero) . ($ ())     let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 32 :: Ptr (FixedArray 2 Offset3D)))     case ((zero, zero)) of@@ -854,8 +887,10 @@         ContT $ pokeCStruct (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1) . ($ ())     lift $ f -instance FromCStruct ImageBlit2KHR where+instance (Extendss ImageBlit2KHR es, PeekChain es) => FromCStruct (ImageBlit2KHR es) where   peekCStruct p = do+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+    next <- peekChain (castPtr pNext)     srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))     let psrcOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 32 :: Ptr (FixedArray 2 Offset3D)))     srcOffsets0 <- peekCStruct @Offset3D ((psrcOffsets `advancePtrBytes` 0 :: Ptr Offset3D))@@ -865,10 +900,11 @@     dstOffsets0 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 0 :: Ptr Offset3D))     dstOffsets1 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 12 :: Ptr Offset3D))     pure $ ImageBlit2KHR-             srcSubresource ((srcOffsets0, srcOffsets1)) dstSubresource ((dstOffsets0, dstOffsets1))+             next srcSubresource ((srcOffsets0, srcOffsets1)) dstSubresource ((dstOffsets0, dstOffsets1)) -instance Zero ImageBlit2KHR where+instance es ~ '[] => Zero (ImageBlit2KHR es) where   zero = ImageBlit2KHR+           ()            zero            (zero, zero)            zero@@ -900,8 +936,12 @@ -- -   @sType@ /must/ be --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR' ----- -   @pNext@ /must/ be @NULL@+-- -   @pNext@ /must/ be @NULL@ or a pointer to a valid instance of+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM' --+-- -   The @sType@ value of each struct in the @pNext@ chain /must/ be+--     unique+-- -- -   @imageSubresource@ /must/ be a valid --     'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers' --     structure@@ -914,8 +954,10 @@ -- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers', -- 'Vulkan.Core10.FundamentalTypes.Offset3D', -- 'Vulkan.Core10.Enums.StructureType.StructureType'-data BufferImageCopy2KHR = BufferImageCopy2KHR-  { -- | @bufferOffset@ is the offset in bytes from the start of the buffer+data BufferImageCopy2KHR (es :: [Type]) = BufferImageCopy2KHR+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+    next :: Chain es+  , -- | @bufferOffset@ is the offset in bytes from the start of the buffer     -- object where the image data is copied from or to.     bufferOffset :: DeviceSize   , -- | @bufferRowLength@ and @bufferImageHeight@ specify in texels a subregion@@ -940,15 +982,25 @@   }   deriving (Typeable) #if defined(GENERIC_INSTANCES)-deriving instance Generic (BufferImageCopy2KHR)+deriving instance Generic (BufferImageCopy2KHR (es :: [Type])) #endif-deriving instance Show BufferImageCopy2KHR+deriving instance Show (Chain es) => Show (BufferImageCopy2KHR es) -instance ToCStruct BufferImageCopy2KHR where+instance Extensible BufferImageCopy2KHR where+  extensibleType = STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR+  setNext x next = x{next = next}+  getNext BufferImageCopy2KHR{..} = next+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends BufferImageCopy2KHR e => b) -> Maybe b+  extends _ f+    | Just Refl <- eqT @e @CopyCommandTransformInfoQCOM = Just f+    | otherwise = Nothing++instance (Extendss BufferImageCopy2KHR es, PokeChain es) => ToCStruct (BufferImageCopy2KHR es) where   withCStruct x f = allocaBytesAligned 72 8 $ \p -> pokeCStruct p x (f p)   pokeCStruct p BufferImageCopy2KHR{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    pNext'' <- fmap castPtr . ContT $ withChain (next)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''     lift $ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (bufferOffset)     lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (bufferRowLength)     lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (bufferImageHeight)@@ -960,7 +1012,8 @@   cStructAlignment = 8   pokeZeroCStruct p f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    pNext' <- fmap castPtr . ContT $ withZeroChain @es+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'     lift $ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)     lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)     lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)@@ -969,8 +1022,10 @@     ContT $ pokeCStruct ((p `plusPtr` 60 :: Ptr Extent3D)) (zero) . ($ ())     lift $ f -instance FromCStruct BufferImageCopy2KHR where+instance (Extendss BufferImageCopy2KHR es, PeekChain es) => FromCStruct (BufferImageCopy2KHR es) where   peekCStruct p = do+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+    next <- peekChain (castPtr pNext)     bufferOffset <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))     bufferRowLength <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))     bufferImageHeight <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))@@ -978,10 +1033,11 @@     imageOffset <- peekCStruct @Offset3D ((p `plusPtr` 48 :: Ptr Offset3D))     imageExtent <- peekCStruct @Extent3D ((p `plusPtr` 60 :: Ptr Extent3D))     pure $ BufferImageCopy2KHR-             bufferOffset bufferRowLength bufferImageHeight imageSubresource imageOffset imageExtent+             next bufferOffset bufferRowLength bufferImageHeight imageSubresource imageOffset imageExtent -instance Zero BufferImageCopy2KHR where+instance es ~ '[] => Zero (BufferImageCopy2KHR es) where   zero = BufferImageCopy2KHR+           ()            zero            zero            zero@@ -1814,6 +1870,17 @@ --     of @pRegions@, @dstOffset@[0].z /must/ be @0@ and @dstOffset@[1].z --     /must/ be @1@ --+-- -   If any element of @pRegions@ contains+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, then @srcImage@ and @dstImage@ /must/ not be a+--     block-compressed image.+--+-- -   If any element of @pRegions@ contains+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, then the @srcImage@ /must/ be of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and /must/ not be a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>.+-- -- == Valid Usage (Implicit) -- -- -   @sType@ /must/ be@@ -1859,7 +1926,7 @@     dstImageLayout :: ImageLayout   , -- | @pRegions@ is a pointer to an array of 'ImageBlit2KHR' structures     -- specifying the regions to blit.-    regions :: Vector ImageBlit2KHR+    regions :: Vector (SomeStruct ImageBlit2KHR)   , -- | @filter@ is a 'Vulkan.Core10.Enums.Filter.Filter' specifying the filter     -- to apply if the blits require scaling.     filter' :: Filter@@ -1880,9 +1947,9 @@     lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (dstImage)     lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (dstImageLayout)     lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))-    pPRegions' <- ContT $ allocaBytesAligned @ImageBlit2KHR ((Data.Vector.length (regions)) * 96) 8-    Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPRegions' `plusPtr` (96 * (i)) :: Ptr ImageBlit2KHR) (e) . ($ ())) (regions)-    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr ImageBlit2KHR))) (pPRegions')+    pPRegions' <- ContT $ allocaBytesAligned @(ImageBlit2KHR _) ((Data.Vector.length (regions)) * 96) 8+    Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPRegions' `plusPtr` (96 * (i)) :: Ptr (ImageBlit2KHR _))) (e) . ($ ())) (regions)+    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr (ImageBlit2KHR _)))) (pPRegions')     lift $ poke ((p `plusPtr` 56 :: Ptr Filter)) (filter')     lift $ f   cStructSize = 64@@ -1894,9 +1961,9 @@     lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)     lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (zero)     lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero)-    pPRegions' <- ContT $ allocaBytesAligned @ImageBlit2KHR ((Data.Vector.length (mempty)) * 96) 8-    Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPRegions' `plusPtr` (96 * (i)) :: Ptr ImageBlit2KHR) (e) . ($ ())) (mempty)-    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr ImageBlit2KHR))) (pPRegions')+    pPRegions' <- ContT $ allocaBytesAligned @(ImageBlit2KHR _) ((Data.Vector.length (mempty)) * 96) 8+    Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPRegions' `plusPtr` (96 * (i)) :: Ptr (ImageBlit2KHR _))) (e) . ($ ())) (mempty)+    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr (ImageBlit2KHR _)))) (pPRegions')     lift $ poke ((p `plusPtr` 56 :: Ptr Filter)) (zero)     lift $ f @@ -1907,8 +1974,8 @@     dstImage <- peek @Image ((p `plusPtr` 32 :: Ptr Image))     dstImageLayout <- peek @ImageLayout ((p `plusPtr` 40 :: Ptr ImageLayout))     regionCount <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))-    pRegions <- peek @(Ptr ImageBlit2KHR) ((p `plusPtr` 48 :: Ptr (Ptr ImageBlit2KHR)))-    pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @ImageBlit2KHR ((pRegions `advancePtrBytes` (96 * (i)) :: Ptr ImageBlit2KHR)))+    pRegions <- peek @(Ptr (ImageBlit2KHR _)) ((p `plusPtr` 48 :: Ptr (Ptr (ImageBlit2KHR a))))+    pRegions' <- generateM (fromIntegral regionCount) (\i -> peekSomeCStruct (forgetExtensions ((pRegions `advancePtrBytes` (96 * (i)) :: Ptr (ImageBlit2KHR _)))))     filter' <- peek @Filter ((p `plusPtr` 56 :: Ptr Filter))     pure $ BlitImageInfo2KHR              srcImage srcImageLayout dstImage dstImageLayout pRegions' filter'@@ -1928,19 +1995,40 @@ -- -- == Valid Usage ----- -   @srcBuffer@ /must/ be large enough to contain all buffer locations---     that are accessed according to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,---     for each element of @pRegions@------ -   The image region specified by each element of @pRegions@ /must/ be a---     region that is contained within @dstImage@ if the @dstImage@’s---     'Vulkan.Core10.Enums.Format.Format' is not a+-- -   If the image region specified by each element of @pRegions@ does not+--     contain+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, it /must/ be a region that is contained within+--     @dstImage@ if the @dstImage@’s 'Vulkan.Core10.Enums.Format.Format'+--     is not a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>, --     and /must/ be a region that is contained within the plane being --     copied to if the @dstImage@’s 'Vulkan.Core10.Enums.Format.Format' is --     a multi-planar format --+-- -   If the image region specified by each element of @pRegions@ does+--     contain+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, the rotated destination region as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-rotation-addressing>+--     /must/ be contained within @dstImage@.+--+-- -   If any element of @pRegions@ contains+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, then the @dstImage@ /must/ not be a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>.+--+-- -   If any element of @pRegions@ contains+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, then the @dstImage@ /must/ be of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' and /must/ not be a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>.+--+-- -   @srcBuffer@ /must/ be large enough to contain all buffer locations+--     that are accessed according to+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,+--     for each element of @pRegions@+-- -- -   The union of all source regions, and the union of all destination --     regions, specified by the elements of @pRegions@, /must/ not overlap --     in memory@@ -2014,6 +2102,24 @@ --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'. --+-- -   For each element of @pRegions@ not containing+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, , @imageOffset.x@ and (@imageExtent.width@ ++--     @imageOffset.x@) /must/ both be greater than or equal to @0@ and+--     less than or equal to the width of the specified @imageSubresource@+--     of @dstImage@ where this refers to the width of the /plane/ of the+--     image involved in the copy in the case of a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+--+-- -   For each element of @pRegions@ not containing+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, , @imageOffset.y@ and (imageExtent.height ++--     @imageOffset.y@) /must/ both be greater than or equal to @0@ and+--     less than or equal to the height of the specified @imageSubresource@+--     of @dstImage@ where this refers to the height of the /plane/ of the+--     image involved in the copy in the case of a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+-- -- -   If @dstImage@ does not have either a depth\/stencil or a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>, --     then for each element of @pRegions@, @bufferOffset@ /must/ be a@@ -2026,21 +2132,6 @@ --     and the @aspectMask@ of the @imageSubresource@ as defined in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???> ----- -   For each element of @pRegions@, @imageOffset.x@ and---     (@imageExtent.width@ + @imageOffset.x@) /must/ both be greater than---     or equal to @0@ and less than or equal to the width of the specified---     @imageSubresource@ of @dstImage@ where this refers to the width of---     the /plane/ of the image involved in the copy in the case of a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>------ -   For each element of @pRegions@, @imageOffset.y@ and---     (imageExtent.height + @imageOffset.y@) /must/ both be greater than---     or equal to @0@ and less than or equal to the height of the---     specified @imageSubresource@ of @dstImage@ where this refers to the---     height of the /plane/ of the image involved in the copy in the case---     of a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>--- -- -   If @dstImage@ is of type --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element --     of @pRegions@, @imageOffset.y@ /must/ be @0@ and@@ -2158,7 +2249,7 @@     dstImageLayout :: ImageLayout   , -- | @pRegions@ is a pointer to an array of 'BufferImageCopy2KHR' structures     -- specifying the regions to copy.-    regions :: Vector BufferImageCopy2KHR+    regions :: Vector (SomeStruct BufferImageCopy2KHR)   }   deriving (Typeable) #if defined(GENERIC_INSTANCES)@@ -2175,9 +2266,9 @@     lift $ poke ((p `plusPtr` 24 :: Ptr Image)) (dstImage)     lift $ poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (dstImageLayout)     lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))-    pPRegions' <- ContT $ allocaBytesAligned @BufferImageCopy2KHR ((Data.Vector.length (regions)) * 72) 8-    Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPRegions' `plusPtr` (72 * (i)) :: Ptr BufferImageCopy2KHR) (e) . ($ ())) (regions)-    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr BufferImageCopy2KHR))) (pPRegions')+    pPRegions' <- ContT $ allocaBytesAligned @(BufferImageCopy2KHR _) ((Data.Vector.length (regions)) * 72) 8+    Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPRegions' `plusPtr` (72 * (i)) :: Ptr (BufferImageCopy2KHR _))) (e) . ($ ())) (regions)+    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr (BufferImageCopy2KHR _)))) (pPRegions')     lift $ f   cStructSize = 48   cStructAlignment = 8@@ -2187,9 +2278,9 @@     lift $ poke ((p `plusPtr` 16 :: Ptr Buffer)) (zero)     lift $ poke ((p `plusPtr` 24 :: Ptr Image)) (zero)     lift $ poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (zero)-    pPRegions' <- ContT $ allocaBytesAligned @BufferImageCopy2KHR ((Data.Vector.length (mempty)) * 72) 8-    Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPRegions' `plusPtr` (72 * (i)) :: Ptr BufferImageCopy2KHR) (e) . ($ ())) (mempty)-    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr BufferImageCopy2KHR))) (pPRegions')+    pPRegions' <- ContT $ allocaBytesAligned @(BufferImageCopy2KHR _) ((Data.Vector.length (mempty)) * 72) 8+    Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPRegions' `plusPtr` (72 * (i)) :: Ptr (BufferImageCopy2KHR _))) (e) . ($ ())) (mempty)+    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr (BufferImageCopy2KHR _)))) (pPRegions')     lift $ f  instance FromCStruct CopyBufferToImageInfo2KHR where@@ -2198,8 +2289,8 @@     dstImage <- peek @Image ((p `plusPtr` 24 :: Ptr Image))     dstImageLayout <- peek @ImageLayout ((p `plusPtr` 32 :: Ptr ImageLayout))     regionCount <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))-    pRegions <- peek @(Ptr BufferImageCopy2KHR) ((p `plusPtr` 40 :: Ptr (Ptr BufferImageCopy2KHR)))-    pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @BufferImageCopy2KHR ((pRegions `advancePtrBytes` (72 * (i)) :: Ptr BufferImageCopy2KHR)))+    pRegions <- peek @(Ptr (BufferImageCopy2KHR _)) ((p `plusPtr` 40 :: Ptr (Ptr (BufferImageCopy2KHR a))))+    pRegions' <- generateM (fromIntegral regionCount) (\i -> peekSomeCStruct (forgetExtensions ((pRegions `advancePtrBytes` (72 * (i)) :: Ptr (BufferImageCopy2KHR _)))))     pure $ CopyBufferToImageInfo2KHR              srcBuffer dstImage dstImageLayout pRegions' @@ -2216,19 +2307,40 @@ -- -- == Valid Usage ----- -   @dstBuffer@ /must/ be large enough to contain all buffer locations---     that are accessed according to---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,---     for each element of @pRegions@------ -   The image region specified by each element of @pRegions@ /must/ be a---     region that is contained within @srcImage@ if the @srcImage@’s---     'Vulkan.Core10.Enums.Format.Format' is not a+-- -   If the image region specified by each element of @pRegions@ does not+--     contain+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, it /must/ be a region that is contained within+--     @srcImage@ if the @srcImage@’s 'Vulkan.Core10.Enums.Format.Format'+--     is not a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>, --     and /must/ be a region that is contained within the plane being --     copied if the @srcImage@’s 'Vulkan.Core10.Enums.Format.Format' is a --     multi-planar format --+-- -   If the image region specified by each element of @pRegions@ does+--     contain+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, the rotated source region as described in+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-rotation-addressing>+--     /must/ be contained within @srcImage@.+--+-- -   If any element of @pRegions@ contains+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, then the @srcImage@ /must/ not be a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>+--+-- -   If any element of @pRegions@ contains+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, then the @srcImage@ /must/ be of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and /must/ not be a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>.+--+-- -   @dstBuffer@ /must/ be large enough to contain all buffer locations+--     that are accessed according to+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,+--     for each element of @pRegions@+-- -- -   The union of all source regions, and the union of all destination --     regions, specified by the elements of @pRegions@, /must/ not overlap --     in memory@@ -2293,6 +2405,24 @@ -- -   If @srcImage@ has a depth\/stencil format, the @bufferOffset@ member --     of any element of @pRegions@ /must/ be a multiple of @4@ --+-- -   For each element of @pRegions@ not containing+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, , @imageOffset.x@ and (@imageExtent.width@ ++--     @imageOffset.x@) /must/ both be greater than or equal to @0@ and+--     less than or equal to the width of the specified @imageSubresource@+--     of @srcImage@ where this refers to the width of the /plane/ of the+--     image involved in the copy in the case of a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+--+-- -   For each element of @pRegions@ not containing+--     'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM'+--     in its @pNext@ chain, , @imageOffset.y@ and (imageExtent.height ++--     @imageOffset.y@) /must/ both be greater than or equal to @0@ and+--     less than or equal to the height of the specified @imageSubresource@+--     of @srcImage@ where this refers to the height of the /plane/ of the+--     image involved in the copy in the case of a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+-- -- -   If {imageparam} does not have either a depth\/stencil or a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>, --     then for each element of @pRegions@, @bufferOffset@ /must/ be a@@ -2305,21 +2435,6 @@ --     and the @aspectMask@ of the @imageSubresource@ as defined in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???> ----- -   For each element of @pRegions@, @imageOffset.x@ and---     (@imageExtent.width@ + @imageOffset.x@) /must/ both be greater than---     or equal to @0@ and less than or equal to the width of the specified---     @imageSubresource@ of {imageparam} where this refers to the width of---     the /plane/ of the image involved in the copy in the case of a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>------ -   For each element of @pRegions@, @imageOffset.y@ and---     (imageExtent.height + @imageOffset.y@) /must/ both be greater than---     or equal to @0@ and less than or equal to the height of the---     specified @imageSubresource@ of {imageparam} where this refers to---     the height of the /plane/ of the image involved in the copy in the---     case of a---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>--- -- -   If {imageparam} is of type --     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element --     of @pRegions@, @imageOffset.y@ /must/ be @0@ and@@ -2437,7 +2552,7 @@     dstBuffer :: Buffer   , -- | @pRegions@ is a pointer to an array of 'BufferImageCopy2KHR' structures     -- specifying the regions to copy.-    regions :: Vector BufferImageCopy2KHR+    regions :: Vector (SomeStruct BufferImageCopy2KHR)   }   deriving (Typeable) #if defined(GENERIC_INSTANCES)@@ -2454,9 +2569,9 @@     lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (srcImageLayout)     lift $ poke ((p `plusPtr` 32 :: Ptr Buffer)) (dstBuffer)     lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))-    pPRegions' <- ContT $ allocaBytesAligned @BufferImageCopy2KHR ((Data.Vector.length (regions)) * 72) 8-    Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPRegions' `plusPtr` (72 * (i)) :: Ptr BufferImageCopy2KHR) (e) . ($ ())) (regions)-    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr BufferImageCopy2KHR))) (pPRegions')+    pPRegions' <- ContT $ allocaBytesAligned @(BufferImageCopy2KHR _) ((Data.Vector.length (regions)) * 72) 8+    Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPRegions' `plusPtr` (72 * (i)) :: Ptr (BufferImageCopy2KHR _))) (e) . ($ ())) (regions)+    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr (BufferImageCopy2KHR _)))) (pPRegions')     lift $ f   cStructSize = 56   cStructAlignment = 8@@ -2466,9 +2581,9 @@     lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (zero)     lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)     lift $ poke ((p `plusPtr` 32 :: Ptr Buffer)) (zero)-    pPRegions' <- ContT $ allocaBytesAligned @BufferImageCopy2KHR ((Data.Vector.length (mempty)) * 72) 8-    Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPRegions' `plusPtr` (72 * (i)) :: Ptr BufferImageCopy2KHR) (e) . ($ ())) (mempty)-    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr BufferImageCopy2KHR))) (pPRegions')+    pPRegions' <- ContT $ allocaBytesAligned @(BufferImageCopy2KHR _) ((Data.Vector.length (mempty)) * 72) 8+    Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPRegions' `plusPtr` (72 * (i)) :: Ptr (BufferImageCopy2KHR _))) (e) . ($ ())) (mempty)+    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr (BufferImageCopy2KHR _)))) (pPRegions')     lift $ f  instance FromCStruct CopyImageToBufferInfo2KHR where@@ -2477,8 +2592,8 @@     srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))     dstBuffer <- peek @Buffer ((p `plusPtr` 32 :: Ptr Buffer))     regionCount <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))-    pRegions <- peek @(Ptr BufferImageCopy2KHR) ((p `plusPtr` 48 :: Ptr (Ptr BufferImageCopy2KHR)))-    pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @BufferImageCopy2KHR ((pRegions `advancePtrBytes` (72 * (i)) :: Ptr BufferImageCopy2KHR)))+    pRegions <- peek @(Ptr (BufferImageCopy2KHR _)) ((p `plusPtr` 48 :: Ptr (Ptr (BufferImageCopy2KHR a))))+    pRegions' <- generateM (fromIntegral regionCount) (\i -> peekSomeCStruct (forgetExtensions ((pRegions `advancePtrBytes` (72 * (i)) :: Ptr (BufferImageCopy2KHR _)))))     pure $ CopyImageToBufferInfo2KHR              srcImage srcImageLayout dstBuffer pRegions' 
src/Vulkan/Extensions/VK_KHR_copy_commands2.hs-boot view
@@ -13,7 +13,11 @@                                                 ) where  import Data.Kind (Type)+import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)+import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss) import Vulkan.CStruct (FromCStruct)+import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)+import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain) import Vulkan.CStruct (ToCStruct) data BlitImageInfo2KHR @@ -31,12 +35,13 @@ instance FromCStruct BufferCopy2KHR  -data BufferImageCopy2KHR+type role BufferImageCopy2KHR nominal+data BufferImageCopy2KHR (es :: [Type]) -instance ToCStruct BufferImageCopy2KHR-instance Show BufferImageCopy2KHR+instance (Extendss BufferImageCopy2KHR es, PokeChain es) => ToCStruct (BufferImageCopy2KHR es)+instance Show (Chain es) => Show (BufferImageCopy2KHR es) -instance FromCStruct BufferImageCopy2KHR+instance (Extendss BufferImageCopy2KHR es, PeekChain es) => FromCStruct (BufferImageCopy2KHR es)   data CopyBufferInfo2KHR@@ -71,12 +76,13 @@ instance FromCStruct CopyImageToBufferInfo2KHR  -data ImageBlit2KHR+type role ImageBlit2KHR nominal+data ImageBlit2KHR (es :: [Type]) -instance ToCStruct ImageBlit2KHR-instance Show ImageBlit2KHR+instance (Extendss ImageBlit2KHR es, PokeChain es) => ToCStruct (ImageBlit2KHR es)+instance Show (Chain es) => Show (ImageBlit2KHR es) -instance FromCStruct ImageBlit2KHR+instance (Extendss ImageBlit2KHR es, PeekChain es) => FromCStruct (ImageBlit2KHR es)   data ImageCopy2KHR
src/Vulkan/Extensions/VK_KHR_device_group_creation.hs view
@@ -2,8 +2,8 @@ module Vulkan.Extensions.VK_KHR_device_group_creation  ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR                                                        , pattern STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR                                                        , pattern MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR-                                                       , enumeratePhysicalDeviceGroupsKHR                                                        , pattern MAX_DEVICE_GROUP_SIZE_KHR+                                                       , enumeratePhysicalDeviceGroupsKHR                                                        , PhysicalDeviceGroupPropertiesKHR                                                        , DeviceGroupDeviceCreateInfoKHR                                                        , KHR_DEVICE_GROUP_CREATION_SPEC_VERSION@@ -33,12 +33,12 @@ pattern MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = MEMORY_HEAP_MULTI_INSTANCE_BIT  --- No documentation found for TopLevel "vkEnumeratePhysicalDeviceGroupsKHR"-enumeratePhysicalDeviceGroupsKHR = enumeratePhysicalDeviceGroups-- -- No documentation found for TopLevel "VK_MAX_DEVICE_GROUP_SIZE_KHR" pattern MAX_DEVICE_GROUP_SIZE_KHR = MAX_DEVICE_GROUP_SIZE+++-- No documentation found for TopLevel "vkEnumeratePhysicalDeviceGroupsKHR"+enumeratePhysicalDeviceGroupsKHR = enumeratePhysicalDeviceGroups   -- No documentation found for TopLevel "VkPhysicalDeviceGroupPropertiesKHR"
src/Vulkan/Extensions/VK_KHR_external_memory_capabilities.hs view
@@ -14,8 +14,8 @@                                                               , pattern EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR                                                               , pattern EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR                                                               , pattern EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR-                                                              , getPhysicalDeviceExternalBufferPropertiesKHR                                                               , pattern LUID_SIZE_KHR+                                                              , getPhysicalDeviceExternalBufferPropertiesKHR                                                               , ExternalMemoryHandleTypeFlagsKHR                                                               , ExternalMemoryFeatureFlagsKHR                                                               , ExternalMemoryHandleTypeFlagBitsKHR@@ -130,12 +130,12 @@ pattern EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT  --- No documentation found for TopLevel "vkGetPhysicalDeviceExternalBufferPropertiesKHR"-getPhysicalDeviceExternalBufferPropertiesKHR = getPhysicalDeviceExternalBufferProperties-- -- No documentation found for TopLevel "VK_LUID_SIZE_KHR" pattern LUID_SIZE_KHR = LUID_SIZE+++-- No documentation found for TopLevel "vkGetPhysicalDeviceExternalBufferPropertiesKHR"+getPhysicalDeviceExternalBufferPropertiesKHR = getPhysicalDeviceExternalBufferProperties   -- No documentation found for TopLevel "VkExternalMemoryHandleTypeFlagsKHR"
src/Vulkan/Extensions/VK_KHR_performance_query.hs view
@@ -3,6 +3,11 @@                                                    , getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR                                                    , acquireProfilingLockKHR                                                    , releaseProfilingLockKHR+                                                   , pattern QUERY_SCOPE_COMMAND_BUFFER_KHR+                                                   , pattern QUERY_SCOPE_RENDER_PASS_KHR+                                                   , pattern QUERY_SCOPE_COMMAND_KHR+                                                   , pattern PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR+                                                   , pattern PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR                                                    , PhysicalDevicePerformanceQueryFeaturesKHR(..)                                                    , PhysicalDevicePerformanceQueryPropertiesKHR(..)                                                    , PerformanceCounterKHR(..)@@ -37,8 +42,8 @@                                                                                  , PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR                                                                                  , ..                                                                                  )-                                                   , PerformanceCounterDescriptionFlagBitsKHR( PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR-                                                                                             , PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR+                                                   , PerformanceCounterDescriptionFlagBitsKHR( PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR+                                                                                             , PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR                                                                                              , ..                                                                                              )                                                    , PerformanceCounterDescriptionFlagsKHR@@ -380,6 +385,26 @@   pure $ ()  +-- No documentation found for TopLevel "VK_QUERY_SCOPE_COMMAND_BUFFER_KHR"+pattern QUERY_SCOPE_COMMAND_BUFFER_KHR = PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR+++-- No documentation found for TopLevel "VK_QUERY_SCOPE_RENDER_PASS_KHR"+pattern QUERY_SCOPE_RENDER_PASS_KHR = PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR+++-- No documentation found for TopLevel "VK_QUERY_SCOPE_COMMAND_KHR"+pattern QUERY_SCOPE_COMMAND_KHR = PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR+++-- No documentation found for TopLevel "VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR"+pattern PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR+++-- No documentation found for TopLevel "VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR"+pattern PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR++ -- | VkPhysicalDevicePerformanceQueryFeaturesKHR - Structure describing -- performance query support for an implementation --@@ -1082,25 +1107,26 @@ newtype PerformanceCounterDescriptionFlagBitsKHR = PerformanceCounterDescriptionFlagBitsKHR Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits) --- | 'PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR' specifies--- that recording the counter /may/ have a noticeable performance impact.-pattern PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = PerformanceCounterDescriptionFlagBitsKHR 0x00000001--- | 'PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR' specifies--- that concurrently recording the counter while other submitted command--- buffers are running /may/ impact the accuracy of the recording.-pattern PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = PerformanceCounterDescriptionFlagBitsKHR 0x00000002+-- | 'PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR'+-- specifies that recording the counter /may/ have a noticeable performance+-- impact.+pattern PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = PerformanceCounterDescriptionFlagBitsKHR 0x00000001+-- | 'PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR'+-- specifies that concurrently recording the counter while other submitted+-- command buffers are running /may/ impact the accuracy of the recording.+pattern PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = PerformanceCounterDescriptionFlagBitsKHR 0x00000002  type PerformanceCounterDescriptionFlagsKHR = PerformanceCounterDescriptionFlagBitsKHR  instance Show PerformanceCounterDescriptionFlagBitsKHR where   showsPrec p = \case-    PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR -> showString "PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR"-    PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR -> showString "PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR"+    PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR -> showString "PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR"+    PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR -> showString "PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR"     PerformanceCounterDescriptionFlagBitsKHR x -> showParen (p >= 11) (showString "PerformanceCounterDescriptionFlagBitsKHR 0x" . showHex x)  instance Read PerformanceCounterDescriptionFlagBitsKHR where-  readPrec = parens (choose [("PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR", pure PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR)-                            , ("PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR", pure PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR)]+  readPrec = parens (choose [("PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR", pure PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR)+                            , ("PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR", pure PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR)]                      +++                      prec 10 (do                        expectP (Ident "PerformanceCounterDescriptionFlagBitsKHR")
src/Vulkan/Extensions/VK_KHR_surface.hs view
@@ -4,6 +4,7 @@                                          , getPhysicalDeviceSurfaceCapabilitiesKHR                                          , getPhysicalDeviceSurfaceFormatsKHR                                          , getPhysicalDeviceSurfacePresentModesKHR+                                         , pattern COLORSPACE_SRGB_NONLINEAR_KHR                                          , SurfaceCapabilitiesKHR(..)                                          , SurfaceFormatKHR(..)                                          , PresentModeKHR( PRESENT_MODE_IMMEDIATE_KHR@@ -547,6 +548,10 @@   pure $ ((r'), pPresentModes')  +-- No documentation found for TopLevel "VK_COLORSPACE_SRGB_NONLINEAR_KHR"+pattern COLORSPACE_SRGB_NONLINEAR_KHR = COLOR_SPACE_SRGB_NONLINEAR_KHR++ -- | VkSurfaceCapabilitiesKHR - Structure describing capabilities of a -- surface --@@ -891,12 +896,11 @@ -- Note -- -- In the initial release of the @VK_KHR_surface@ and @VK_KHR_swapchain@--- extensions, the token @VK_COLORSPACE_SRGB_NONLINEAR_KHR@ was used.--- Starting in the 2016-05-13 updates to the extension branches, matching--- release 1.0.13 of the core API specification,--- 'COLOR_SPACE_SRGB_NONLINEAR_KHR' is used instead for consistency with--- Vulkan naming rules. The older enum is still available for backwards--- compatibility.+-- extensions, the token 'COLORSPACE_SRGB_NONLINEAR_KHR' was used. Starting+-- in the 2016-05-13 updates to the extension branches, matching release+-- 1.0.13 of the core API specification, 'COLOR_SPACE_SRGB_NONLINEAR_KHR'+-- is used instead for consistency with Vulkan naming rules. The older enum+-- is still available for backwards compatibility. -- -- Note --@@ -1168,6 +1172,7 @@ -- = See Also -- -- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM',+-- 'Vulkan.Extensions.VK_QCOM_rotated_copy_commands.CopyCommandTransformInfoQCOM', -- 'Vulkan.Extensions.VK_KHR_display.DisplaySurfaceCreateInfoKHR', -- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM', -- 'Vulkan.Extensions.VK_EXT_display_surface_counter.SurfaceCapabilities2EXT',
src/Vulkan/Extensions/VK_NV_ray_tracing.hs view
@@ -49,11 +49,11 @@                                             , pattern ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV                                             , pattern ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV                                             , pattern ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV+                                            , pattern SHADER_UNUSED_NV                                             , destroyAccelerationStructureNV                                             , bindAccelerationStructureMemoryNV                                             , cmdWriteAccelerationStructuresPropertiesNV                                             , getRayTracingShaderGroupHandlesNV-                                            , pattern SHADER_UNUSED_NV                                             , RayTracingShaderGroupCreateInfoNV(..)                                             , RayTracingPipelineCreateInfoNV(..)                                             , GeometryTrianglesNV(..)@@ -1538,6 +1538,10 @@ pattern ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR  +-- No documentation found for TopLevel "VK_SHADER_UNUSED_NV"+pattern SHADER_UNUSED_NV = SHADER_UNUSED_KHR++ -- No documentation found for TopLevel "vkDestroyAccelerationStructureNV" destroyAccelerationStructureNV = destroyAccelerationStructureKHR @@ -1552,10 +1556,6 @@  -- No documentation found for TopLevel "vkGetRayTracingShaderGroupHandlesNV" getRayTracingShaderGroupHandlesNV = getRayTracingShaderGroupHandlesKHR----- No documentation found for TopLevel "VK_SHADER_UNUSED_NV"-pattern SHADER_UNUSED_NV = SHADER_UNUSED_KHR   -- | VkRayTracingShaderGroupCreateInfoNV - Structure specifying shaders in a
+ src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs view
@@ -0,0 +1,104 @@+{-# language CPP #-}+module Vulkan.Extensions.VK_QCOM_rotated_copy_commands  ( CopyCommandTransformInfoQCOM(..)+                                                        , QCOM_rotated_copy_commands_SPEC_VERSION+                                                        , pattern QCOM_rotated_copy_commands_SPEC_VERSION+                                                        , QCOM_rotated_copy_commands_EXTENSION_NAME+                                                        , pattern QCOM_rotated_copy_commands_EXTENSION_NAME+                                                        , SurfaceTransformFlagBitsKHR(..)+                                                        , SurfaceTransformFlagsKHR+                                                        ) where++import Foreign.Marshal.Alloc (allocaBytesAligned)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Extensions.VK_KHR_surface (SurfaceTransformFlagBitsKHR)+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM))+import Vulkan.Extensions.VK_KHR_surface (SurfaceTransformFlagBitsKHR(..))+import Vulkan.Extensions.VK_KHR_surface (SurfaceTransformFlagsKHR)+-- | VkCopyCommandTransformInfoQCOM - Structure describing transform+-- parameters of rotated copy command+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'Vulkan.Extensions.VK_KHR_surface.SurfaceTransformFlagBitsKHR'+data CopyCommandTransformInfoQCOM = CopyCommandTransformInfoQCOM+  { -- | @transform@ is a+    -- 'Vulkan.Extensions.VK_KHR_surface.SurfaceTransformFlagBitsKHR' value+    -- describing the transform to be applied.+    --+    -- @transform@ /must/ be+    -- 'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_IDENTITY_BIT_KHR',+    -- 'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_90_BIT_KHR',+    -- 'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_180_BIT_KHR',+    -- or+    -- 'Vulkan.Extensions.VK_KHR_surface.SURFACE_TRANSFORM_ROTATE_270_BIT_KHR'+    transform :: SurfaceTransformFlagBitsKHR }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CopyCommandTransformInfoQCOM)+#endif+deriving instance Show CopyCommandTransformInfoQCOM++instance ToCStruct CopyCommandTransformInfoQCOM where+  withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p CopyCommandTransformInfoQCOM{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr SurfaceTransformFlagBitsKHR)) (transform)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr SurfaceTransformFlagBitsKHR)) (zero)+    f++instance FromCStruct CopyCommandTransformInfoQCOM where+  peekCStruct p = do+    transform <- peek @SurfaceTransformFlagBitsKHR ((p `plusPtr` 16 :: Ptr SurfaceTransformFlagBitsKHR))+    pure $ CopyCommandTransformInfoQCOM+             transform++instance Storable CopyCommandTransformInfoQCOM where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero CopyCommandTransformInfoQCOM where+  zero = CopyCommandTransformInfoQCOM+           zero+++type QCOM_rotated_copy_commands_SPEC_VERSION = 0++-- No documentation found for TopLevel "VK_QCOM_rotated_copy_commands_SPEC_VERSION"+pattern QCOM_rotated_copy_commands_SPEC_VERSION :: forall a . Integral a => a+pattern QCOM_rotated_copy_commands_SPEC_VERSION = 0+++type QCOM_rotated_copy_commands_EXTENSION_NAME = "VK_QCOM_rotated_copy_commands"++-- No documentation found for TopLevel "VK_QCOM_rotated_copy_commands_EXTENSION_NAME"+pattern QCOM_rotated_copy_commands_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern QCOM_rotated_copy_commands_EXTENSION_NAME = "VK_QCOM_rotated_copy_commands"+
+ src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot view
@@ -0,0 +1,13 @@+{-# language CPP #-}+module Vulkan.Extensions.VK_QCOM_rotated_copy_commands  (CopyCommandTransformInfoQCOM) where++import Data.Kind (Type)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+data CopyCommandTransformInfoQCOM++instance ToCStruct CopyCommandTransformInfoQCOM+instance Show CopyCommandTransformInfoQCOM++instance FromCStruct CopyCommandTransformInfoQCOM+
src/Vulkan/Version.hs view
@@ -14,11 +14,11 @@ import Data.Word (Word32)  pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 158+pattern HEADER_VERSION = 159   pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 158+pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 159   pattern MAKE_VERSION :: Word32 -> Word32 -> Word32 -> Word32
vulkan.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           vulkan-version:        3.6.11.1+version:        3.6.12 synopsis:       Bindings to the Vulkan graphics API. category:       Graphics homepage:       https://github.com/expipiplus1/vulkan#readme@@ -465,6 +465,7 @@       Vulkan.Extensions.VK_QCOM_render_pass_shader_resolve       Vulkan.Extensions.VK_QCOM_render_pass_store_ops       Vulkan.Extensions.VK_QCOM_render_pass_transform+      Vulkan.Extensions.VK_QCOM_rotated_copy_commands       Vulkan.NamedType       Vulkan.Version       Vulkan.Zero