{-# LINE 1 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}


{-# LANGUAGE CPP                   #-}
{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.Bind
       (

{-# LINE 12 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
        VkBindAccelerationStructureMemoryInfoNV,

{-# LINE 14 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
        VkBindBufferMemoryDeviceGroupInfo,
        VkBindBufferMemoryDeviceGroupInfoKHR, VkBindBufferMemoryInfo,
        VkBindBufferMemoryInfoKHR, VkBindImageMemoryDeviceGroupInfo,
        VkBindImageMemoryDeviceGroupInfoKHR, VkBindImageMemoryInfo,
        VkBindImageMemoryInfoKHR, VkBindImageMemorySwapchainInfoKHR,
        VkBindImagePlaneMemoryInfo, VkBindImagePlaneMemoryInfoKHR,
        VkBindIndexBufferIndirectCommandNV,
        VkBindShaderGroupIndirectCommandNV, VkBindSparseInfo,
        VkBindVertexBufferIndirectCommandNV)
       where
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.BaseTypes                   (VkDeviceAddress,
                                                          VkDeviceSize)
import Graphics.Vulkan.Types.Enum.Image                  (VkImageAspectFlagBits)
import Graphics.Vulkan.Types.Enum.IndexType              (VkIndexType)
import Graphics.Vulkan.Types.Enum.StructureType          (VkStructureType)
import Graphics.Vulkan.Types.Handles                     (VkBuffer,
                                                          VkDeviceMemory,
                                                          VkImage, VkSemaphore,
                                                          VkSwapchainKHR)

{-# LINE 36 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
import {-# SOURCE #-} Graphics.Vulkan.Types.Struct.EnableBetaExtensions (VkBindAccelerationStructureMemoryInfoKHR)

{-# LINE 38 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
import Graphics.Vulkan.Types.Struct.Rect                 (VkRect2D)
import Graphics.Vulkan.Types.Struct.Sparse               (VkSparseBufferMemoryBindInfo,
                                                          VkSparseImageMemoryBindInfo,
                                                          VkSparseImageOpaqueMemoryBindInfo)


{-# LINE 44 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
-- | Alias for `VkBindAccelerationStructureMemoryInfoKHR`
type VkBindAccelerationStructureMemoryInfoNV =
     VkBindAccelerationStructureMemoryInfoKHR

{-# LINE 48 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}


-- | > typedef struct VkBindBufferMemoryDeviceGroupInfo {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     uint32_t         deviceIndexCount;
--   >     const uint32_t*  pDeviceIndices;
--   > } VkBindBufferMemoryDeviceGroupInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfo registry at www.khronos.org>
type VkBindBufferMemoryDeviceGroupInfo =
     VkStruct VkBindBufferMemoryDeviceGroupInfo' -- ' closing tick for hsc2hs

data VkBindBufferMemoryDeviceGroupInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkBindBufferMemoryDeviceGroupInfo where
    type StructRep VkBindBufferMemoryDeviceGroupInfo =
         'StructMeta "VkBindBufferMemoryDeviceGroupInfo" -- ' closing tick for hsc2hs
           VkBindBufferMemoryDeviceGroupInfo
           (32)
{-# LINE 68 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
           8
{-# LINE 69 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 71 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 76 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "deviceIndexCount" Word32 'True
                                                         (16)
{-# LINE 81 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pDeviceIndices" (Ptr Word32) 'False
                                                              (24)
{-# LINE 86 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkBindBufferMemoryInfo] -- ' closing tick for hsc2hs

-- | Alias for `VkBindBufferMemoryDeviceGroupInfo`
type VkBindBufferMemoryDeviceGroupInfoKHR =
     VkBindBufferMemoryDeviceGroupInfo

-- | > typedef struct VkBindBufferMemoryInfo {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkBuffer                         buffer;
--   >     VkDeviceMemory                   memory;
--   >     VkDeviceSize                     memoryOffset;
--   > } VkBindBufferMemoryInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBindBufferMemoryInfo VkBindBufferMemoryInfo registry at www.khronos.org>
type VkBindBufferMemoryInfo = VkStruct VkBindBufferMemoryInfo' -- ' closing tick for hsc2hs

data VkBindBufferMemoryInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkBindBufferMemoryInfo where
    type StructRep VkBindBufferMemoryInfo =
         'StructMeta "VkBindBufferMemoryInfo" VkBindBufferMemoryInfo -- ' closing tick for hsc2hs
           (40)
{-# LINE 114 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
           8
{-# LINE 115 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 117 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 122 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "buffer" VkBuffer 'False
                                                  (16)
{-# LINE 127 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "memory" VkDeviceMemory 'False
                                                        (24)
{-# LINE 132 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "memoryOffset" VkDeviceSize 'False
                                                            (32)
{-# LINE 137 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | Alias for `VkBindBufferMemoryInfo`
type VkBindBufferMemoryInfoKHR = VkBindBufferMemoryInfo

-- | > typedef struct VkBindImageMemoryDeviceGroupInfo {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     uint32_t         deviceIndexCount;
--   >     const uint32_t*  pDeviceIndices;
--   >     uint32_t         splitInstanceBindRegionCount;
--   >     const VkRect2D*  pSplitInstanceBindRegions;
--   > } VkBindImageMemoryDeviceGroupInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfo registry at www.khronos.org>
type VkBindImageMemoryDeviceGroupInfo =
     VkStruct VkBindImageMemoryDeviceGroupInfo' -- ' closing tick for hsc2hs

data VkBindImageMemoryDeviceGroupInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkBindImageMemoryDeviceGroupInfo where
    type StructRep VkBindImageMemoryDeviceGroupInfo =
         'StructMeta "VkBindImageMemoryDeviceGroupInfo" -- ' closing tick for hsc2hs
           VkBindImageMemoryDeviceGroupInfo
           (48)
{-# LINE 167 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
           8
{-# LINE 168 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 170 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 175 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "deviceIndexCount" Word32 'True
                                                         (16)
{-# LINE 180 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pDeviceIndices" (Ptr Word32) 'False
                                                              (24)
{-# LINE 185 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "splitInstanceBindRegionCount" Word32 'True
                                                                     (32)
{-# LINE 190 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pSplitInstanceBindRegions" (Ptr VkRect2D) 'False
                (40)
{-# LINE 195 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkBindImageMemoryInfo] -- ' closing tick for hsc2hs

-- | Alias for `VkBindImageMemoryDeviceGroupInfo`
type VkBindImageMemoryDeviceGroupInfoKHR =
     VkBindImageMemoryDeviceGroupInfo

-- | > typedef struct VkBindImageMemoryInfo {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkImage                          image;
--   >     VkDeviceMemory                   memory;
--   >     VkDeviceSize                     memoryOffset;
--   > } VkBindImageMemoryInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBindImageMemoryInfo VkBindImageMemoryInfo registry at www.khronos.org>
type VkBindImageMemoryInfo = VkStruct VkBindImageMemoryInfo' -- ' closing tick for hsc2hs

data VkBindImageMemoryInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkBindImageMemoryInfo where
    type StructRep VkBindImageMemoryInfo =
         'StructMeta "VkBindImageMemoryInfo" VkBindImageMemoryInfo  -- ' closing tick for hsc2hs
                                                                   (40)
{-# LINE 223 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
           8
{-# LINE 224 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 226 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 231 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "image" VkImage 'False
                                                (16)
{-# LINE 236 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "memory" VkDeviceMemory 'False
                                                        (24)
{-# LINE 241 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "memoryOffset" VkDeviceSize 'False
                                                            (32)
{-# LINE 246 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | Alias for `VkBindImageMemoryInfo`
type VkBindImageMemoryInfoKHR = VkBindImageMemoryInfo

-- | > typedef struct VkBindImageMemorySwapchainInfoKHR {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkSwapchainKHR swapchain;
--   >     uint32_t                         imageIndex;
--   > } VkBindImageMemorySwapchainInfoKHR;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBindImageMemorySwapchainInfoKHR VkBindImageMemorySwapchainInfoKHR registry at www.khronos.org>
type VkBindImageMemorySwapchainInfoKHR =
     VkStruct VkBindImageMemorySwapchainInfoKHR' -- ' closing tick for hsc2hs

data VkBindImageMemorySwapchainInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkBindImageMemorySwapchainInfoKHR where
    type StructRep VkBindImageMemorySwapchainInfoKHR =
         'StructMeta "VkBindImageMemorySwapchainInfoKHR" -- ' closing tick for hsc2hs
           VkBindImageMemorySwapchainInfoKHR
           (32)
{-# LINE 274 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
           8
{-# LINE 275 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 277 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 282 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "swapchain" VkSwapchainKHR 'False
                                                           (16)
{-# LINE 287 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "imageIndex" Word32 'False
                                                    (24)
{-# LINE 292 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkBindImageMemoryInfo] -- ' closing tick for hsc2hs

-- | > typedef struct VkBindImagePlaneMemoryInfo {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     VkImageAspectFlagBits            planeAspect;
--   > } VkBindImagePlaneMemoryInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfo registry at www.khronos.org>
type VkBindImagePlaneMemoryInfo =
     VkStruct VkBindImagePlaneMemoryInfo' -- ' closing tick for hsc2hs

data VkBindImagePlaneMemoryInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkBindImagePlaneMemoryInfo where
    type StructRep VkBindImagePlaneMemoryInfo =
         'StructMeta "VkBindImagePlaneMemoryInfo" VkBindImagePlaneMemoryInfo -- ' closing tick for hsc2hs
           (24)
{-# LINE 315 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
           8
{-# LINE 316 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 318 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 323 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "planeAspect" VkImageAspectFlagBits 'False
                                                                    (16)
{-# LINE 328 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkBindImageMemoryInfo] -- ' closing tick for hsc2hs

-- | Alias for `VkBindImagePlaneMemoryInfo`
type VkBindImagePlaneMemoryInfoKHR = VkBindImagePlaneMemoryInfo

-- | > typedef struct VkBindIndexBufferIndirectCommandNV {
--   >     VkDeviceAddress  bufferAddress;
--   >     uint32_t         size;
--   >     VkIndexType      indexType;
--   > } VkBindIndexBufferIndirectCommandNV;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBindIndexBufferIndirectCommandNV VkBindIndexBufferIndirectCommandNV registry at www.khronos.org>
type VkBindIndexBufferIndirectCommandNV =
     VkStruct VkBindIndexBufferIndirectCommandNV' -- ' closing tick for hsc2hs

data VkBindIndexBufferIndirectCommandNV' -- ' closing tick for hsc2hs

instance VulkanMarshal VkBindIndexBufferIndirectCommandNV where
    type StructRep VkBindIndexBufferIndirectCommandNV =
         'StructMeta "VkBindIndexBufferIndirectCommandNV" -- ' closing tick for hsc2hs
           VkBindIndexBufferIndirectCommandNV
           (16)
{-# LINE 355 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
           8
{-# LINE 356 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
           '[('FieldMeta "bufferAddress" VkDeviceAddress 'False  -- ' closing tick for hsc2hs
                                                                (0)
{-# LINE 358 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "size" Word32 'False
                                              (8)
{-# LINE 363 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "indexType" VkIndexType 'False
                                                        (12)
{-# LINE 368 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkBindShaderGroupIndirectCommandNV {
--   >     uint32_t         groupIndex;
--   > } VkBindShaderGroupIndirectCommandNV;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBindShaderGroupIndirectCommandNV VkBindShaderGroupIndirectCommandNV registry at www.khronos.org>
type VkBindShaderGroupIndirectCommandNV =
     VkStruct VkBindShaderGroupIndirectCommandNV' -- ' closing tick for hsc2hs

data VkBindShaderGroupIndirectCommandNV' -- ' closing tick for hsc2hs

instance VulkanMarshal VkBindShaderGroupIndirectCommandNV where
    type StructRep VkBindShaderGroupIndirectCommandNV =
         'StructMeta "VkBindShaderGroupIndirectCommandNV" -- ' closing tick for hsc2hs
           VkBindShaderGroupIndirectCommandNV
           (4)
{-# LINE 390 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
           4
{-# LINE 391 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
           '[('FieldMeta "groupIndex" Word32 'False  -- ' closing tick for hsc2hs
                                                    (0)
{-# LINE 393 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkBindSparseInfo {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     uint32_t               waitSemaphoreCount;
--   >     const VkSemaphore*     pWaitSemaphores;
--   >     uint32_t               bufferBindCount;
--   >     const VkSparseBufferMemoryBindInfo* pBufferBinds;
--   >     uint32_t               imageOpaqueBindCount;
--   >     const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds;
--   >     uint32_t               imageBindCount;
--   >     const VkSparseImageMemoryBindInfo* pImageBinds;
--   >     uint32_t               signalSemaphoreCount;
--   >     const VkSemaphore*     pSignalSemaphores;
--   > } VkBindSparseInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBindSparseInfo VkBindSparseInfo registry at www.khronos.org>
type VkBindSparseInfo = VkStruct VkBindSparseInfo' -- ' closing tick for hsc2hs

data VkBindSparseInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkBindSparseInfo where
    type StructRep VkBindSparseInfo =
         'StructMeta "VkBindSparseInfo" VkBindSparseInfo  -- ' closing tick for hsc2hs
                                                         (96)
{-# LINE 424 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
           8
{-# LINE 425 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 427 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False
                                                   (8)
{-# LINE 432 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "waitSemaphoreCount" Word32 'True
                                                           (16)
{-# LINE 437 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pWaitSemaphores" (Ptr VkSemaphore) 'False
                                                                    (24)
{-# LINE 442 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "bufferBindCount" Word32 'True
                                                        (32)
{-# LINE 447 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pBufferBinds" (Ptr VkSparseBufferMemoryBindInfo) -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (40)
{-# LINE 453 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "imageOpaqueBindCount" Word32 'True
                                                             (48)
{-# LINE 458 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pImageOpaqueBinds" -- ' closing tick for hsc2hs
                (Ptr VkSparseImageOpaqueMemoryBindInfo)
                'False -- ' closing tick for hsc2hs
                (56)
{-# LINE 465 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "imageBindCount" Word32 'True
                                                       (64)
{-# LINE 470 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pImageBinds" (Ptr VkSparseImageMemoryBindInfo) 'False
                (72)
{-# LINE 475 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "signalSemaphoreCount" Word32 'True
                                                             (80)
{-# LINE 480 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pSignalSemaphores" (Ptr VkSemaphore) 'False
                                                                      (88)
{-# LINE 485 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

-- | > typedef struct VkBindVertexBufferIndirectCommandNV {
--   >     VkDeviceAddress  bufferAddress;
--   >     uint32_t         size;
--   >     uint32_t         stride;
--   > } VkBindVertexBufferIndirectCommandNV;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBindVertexBufferIndirectCommandNV VkBindVertexBufferIndirectCommandNV registry at www.khronos.org>
type VkBindVertexBufferIndirectCommandNV =
     VkStruct VkBindVertexBufferIndirectCommandNV' -- ' closing tick for hsc2hs

data VkBindVertexBufferIndirectCommandNV' -- ' closing tick for hsc2hs

instance VulkanMarshal VkBindVertexBufferIndirectCommandNV where
    type StructRep VkBindVertexBufferIndirectCommandNV =
         'StructMeta "VkBindVertexBufferIndirectCommandNV" -- ' closing tick for hsc2hs
           VkBindVertexBufferIndirectCommandNV
           (16)
{-# LINE 509 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
           8
{-# LINE 510 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
           '[('FieldMeta "bufferAddress" VkDeviceAddress 'False  -- ' closing tick for hsc2hs
                                                                (0)
{-# LINE 512 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "size" Word32 'False
                                              (8)
{-# LINE 517 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "stride" Word32 'False
                                                (12)
{-# LINE 522 "src-gen/Graphics/Vulkan/Types/Struct/Bind.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs