vulkan 3.6.11.1 → 3.6.12
raw patch · 25 files changed
+603/−211 lines, 25 files
Files
- changelog.md +6/−0
- package.yaml +1/−1
- readme.md +65/−23
- src/Vulkan/CStruct/Extends.hs +5/−0
- src/Vulkan/Core10/CommandBufferBuilding.hs +36/−36
- src/Vulkan/Core10/Enums/StencilFaceFlagBits.hs +6/−1
- src/Vulkan/Core10/Enums/StructureType.hs +7/−0
- src/Vulkan/Core11/Enums/ExternalSemaphoreHandleTypeFlagBits.hs +6/−1
- src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs +29/−0
- src/Vulkan/Extensions.hs +2/−0
- src/Vulkan/Extensions/VK_EXT_debug_report.hs +10/−0
- src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs +13/−8
- src/Vulkan/Extensions/VK_EXT_private_data.hs +6/−0
- src/Vulkan/Extensions/VK_INTEL_shader_integer_functions2.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_copy_commands2.hs +210/−95
- src/Vulkan/Extensions/VK_KHR_copy_commands2.hs-boot +14/−8
- src/Vulkan/Extensions/VK_KHR_device_group_creation.hs +5/−5
- src/Vulkan/Extensions/VK_KHR_external_memory_capabilities.hs +5/−5
- src/Vulkan/Extensions/VK_KHR_performance_query.hs +39/−13
- src/Vulkan/Extensions/VK_KHR_surface.hs +11/−6
- src/Vulkan/Extensions/VK_NV_ray_tracing.hs +5/−5
- src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs +104/−0
- src/Vulkan/Extensions/VK_QCOM_rotated_copy_commands.hs-boot +13/−0
- src/Vulkan/Version.hs +2/−2
- vulkan.cabal +2/−1
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