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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.Device
       (VkDeviceCreateInfo, VkDeviceDiagnosticsConfigCreateInfoNV,
        VkDeviceEventInfoEXT, VkDeviceGroupBindSparseInfo,
        VkDeviceGroupBindSparseInfoKHR,
        VkDeviceGroupCommandBufferBeginInfo,
        VkDeviceGroupCommandBufferBeginInfoKHR,
        VkDeviceGroupDeviceCreateInfo, VkDeviceGroupDeviceCreateInfoKHR,
        VkDeviceGroupPresentCapabilitiesKHR, VkDeviceGroupPresentInfoKHR,
        VkDeviceGroupRenderPassBeginInfo,
        VkDeviceGroupRenderPassBeginInfoKHR, VkDeviceGroupSubmitInfo,
        VkDeviceGroupSubmitInfoKHR, VkDeviceGroupSwapchainCreateInfoKHR,
        VkDeviceMemoryOpaqueCaptureAddressInfo,
        VkDeviceMemoryOpaqueCaptureAddressInfoKHR,
        VkDeviceMemoryOverallocationCreateInfoAMD,
        VkDevicePrivateDataCreateInfoEXT, VkDeviceQueueCreateInfo,
        VkDeviceQueueGlobalPriorityCreateInfoEXT, VkDeviceQueueInfo2)
       where
import Graphics.Vulkan.Constants                           (VK_MAX_DEVICE_GROUP_SIZE)
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Internal
import Graphics.Vulkan.Types.Bitmasks                      (VkDeviceCreateFlags)
import Graphics.Vulkan.Types.Enum.Device                   (VkDeviceDiagnosticsConfigFlagsNV,
                                                            VkDeviceEventTypeEXT,
                                                            VkDeviceGroupPresentModeFlagBitsKHR,
                                                            VkDeviceGroupPresentModeFlagsKHR,
                                                            VkDeviceQueueCreateFlags)
import Graphics.Vulkan.Types.Enum.Memory                   (VkMemoryOverallocationBehaviorAMD)
import Graphics.Vulkan.Types.Enum.Queue                    (VkQueueGlobalPriorityEXT)
import Graphics.Vulkan.Types.Enum.StructureType            (VkStructureType)
import Graphics.Vulkan.Types.Handles                       (VkDeviceMemory,
                                                            VkPhysicalDevice)
import Graphics.Vulkan.Types.Struct.Bind                   (VkBindSparseInfo)
import Graphics.Vulkan.Types.Struct.Command                (VkCommandBufferBeginInfo)
import Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures (VkPhysicalDeviceFeatures)
import Graphics.Vulkan.Types.Struct.Present                (VkPresentInfoKHR)
import Graphics.Vulkan.Types.Struct.Rect                   (VkRect2D)
import Graphics.Vulkan.Types.Struct.RenderPass             (VkRenderPassBeginInfo)
import Graphics.Vulkan.Types.Struct.SubmitInfo             (VkSubmitInfo)
import Graphics.Vulkan.Types.Struct.Swapchain              (VkSwapchainCreateInfoKHR)

-- | > typedef struct VkDeviceCreateInfo {
--   >     VkStructureType sType;
--   >     const void*     pNext;
--   >     VkDeviceCreateFlags    flags;
--   >     uint32_t        queueCreateInfoCount;
--   >     const VkDeviceQueueCreateInfo* pQueueCreateInfos;
--   >     uint32_t               enabledLayerCount;
--   >     const char* const*      ppEnabledLayerNames;
--   >     uint32_t               enabledExtensionCount;
--   >     const char* const*      ppEnabledExtensionNames;
--   >     const VkPhysicalDeviceFeatures* pEnabledFeatures;
--   > } VkDeviceCreateInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDeviceCreateInfo VkDeviceCreateInfo registry at www.khronos.org>
type VkDeviceCreateInfo = VkStruct VkDeviceCreateInfo' -- ' closing tick for hsc2hs

data VkDeviceCreateInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDeviceCreateInfo where
    type StructRep VkDeviceCreateInfo =
         'StructMeta "VkDeviceCreateInfo" VkDeviceCreateInfo  -- ' closing tick for hsc2hs
                                                             (72)
{-# LINE 70 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           8
{-# LINE 71 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 73 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 78 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkDeviceCreateFlags 'True 
                                                           (16)
{-# LINE 83 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "queueCreateInfoCount" Word32 'False 
                                                              (20)
{-# LINE 88 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pQueueCreateInfos" (Ptr VkDeviceQueueCreateInfo) -- ' closing tick for hsc2hs
                'False -- ' closing tick for hsc2hs
                (24)
{-# LINE 94 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "enabledLayerCount" Word32 'True 
                                                          (32)
{-# LINE 99 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "ppEnabledLayerNames" (Ptr CString) 'False 
                                                                    (40)
{-# LINE 104 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "enabledExtensionCount" Word32 'True 
                                                              (48)
{-# LINE 109 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "ppEnabledExtensionNames" (Ptr CString) 'False
                (56)
{-# LINE 114 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pEnabledFeatures" (Ptr VkPhysicalDeviceFeatures) 'True
                (64)
{-# LINE 119 "src-gen/Graphics/Vulkan/Types/Struct/Device.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 VkDeviceDiagnosticsConfigCreateInfoNV {
--   >     VkStructureType sType;
--   >     const void*                                         pNext;
--   >     VkDeviceDiagnosticsConfigFlagsNV    flags;
--   > } VkDeviceDiagnosticsConfigCreateInfoNV;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDeviceDiagnosticsConfigCreateInfoNV VkDeviceDiagnosticsConfigCreateInfoNV registry at www.khronos.org>
type VkDeviceDiagnosticsConfigCreateInfoNV =
     VkStruct VkDeviceDiagnosticsConfigCreateInfoNV' -- ' closing tick for hsc2hs

data VkDeviceDiagnosticsConfigCreateInfoNV' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDeviceDiagnosticsConfigCreateInfoNV where
    type StructRep VkDeviceDiagnosticsConfigCreateInfoNV =
         'StructMeta "VkDeviceDiagnosticsConfigCreateInfoNV" -- ' closing tick for hsc2hs
           VkDeviceDiagnosticsConfigCreateInfoNV
           (24)
{-# LINE 143 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           8
{-# LINE 144 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 146 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 151 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkDeviceDiagnosticsConfigFlagsNV 'True
                (16)
{-# LINE 156 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkDeviceCreateInfo] -- ' closing tick for hsc2hs

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

data VkDeviceEventInfoEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDeviceEventInfoEXT where
    type StructRep VkDeviceEventInfoEXT =
         'StructMeta "VkDeviceEventInfoEXT" VkDeviceEventInfoEXT  -- ' closing tick for hsc2hs
                                                                 (24)
{-# LINE 178 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           8
{-# LINE 179 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 181 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 186 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "deviceEvent" VkDeviceEventTypeEXT 'False 
                                                                   (16)
{-# LINE 191 "src-gen/Graphics/Vulkan/Types/Struct/Device.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 VkDeviceGroupBindSparseInfo {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     uint32_t                         resourceDeviceIndex;
--   >     uint32_t                         memoryDeviceIndex;
--   > } VkDeviceGroupBindSparseInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfo registry at www.khronos.org>
type VkDeviceGroupBindSparseInfo =
     VkStruct VkDeviceGroupBindSparseInfo' -- ' closing tick for hsc2hs

data VkDeviceGroupBindSparseInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDeviceGroupBindSparseInfo where
    type StructRep VkDeviceGroupBindSparseInfo =
         'StructMeta "VkDeviceGroupBindSparseInfo" -- ' closing tick for hsc2hs
           VkDeviceGroupBindSparseInfo
           (24)
{-# LINE 216 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           8
{-# LINE 217 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 219 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 224 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "resourceDeviceIndex" Word32 'False 
                                                             (16)
{-# LINE 229 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "memoryDeviceIndex" Word32 'False 
                                                           (20)
{-# LINE 234 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkBindSparseInfo] -- ' closing tick for hsc2hs

-- | Alias for `VkDeviceGroupBindSparseInfo`
type VkDeviceGroupBindSparseInfoKHR = VkDeviceGroupBindSparseInfo

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

data VkDeviceGroupCommandBufferBeginInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDeviceGroupCommandBufferBeginInfo where
    type StructRep VkDeviceGroupCommandBufferBeginInfo =
         'StructMeta "VkDeviceGroupCommandBufferBeginInfo" -- ' closing tick for hsc2hs
           VkDeviceGroupCommandBufferBeginInfo
           (24)
{-# LINE 261 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           8
{-# LINE 262 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 264 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 269 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "deviceMask" Word32 'False 
                                                    (16)
{-# LINE 274 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkCommandBufferBeginInfo] -- ' closing tick for hsc2hs

-- | Alias for `VkDeviceGroupCommandBufferBeginInfo`
type VkDeviceGroupCommandBufferBeginInfoKHR =
     VkDeviceGroupCommandBufferBeginInfo

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

data VkDeviceGroupDeviceCreateInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDeviceGroupDeviceCreateInfo where
    type StructRep VkDeviceGroupDeviceCreateInfo =
         'StructMeta "VkDeviceGroupDeviceCreateInfo" -- ' closing tick for hsc2hs
           VkDeviceGroupDeviceCreateInfo
           (32)
{-# LINE 303 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           8
{-# LINE 304 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 306 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 311 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "physicalDeviceCount" Word32 'True 
                                                            (16)
{-# LINE 316 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pPhysicalDevices" (Ptr VkPhysicalDevice) 'False
                (24)
{-# LINE 321 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkDeviceCreateInfo] -- ' closing tick for hsc2hs

-- | Alias for `VkDeviceGroupDeviceCreateInfo`
type VkDeviceGroupDeviceCreateInfoKHR =
     VkDeviceGroupDeviceCreateInfo

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

data VkDeviceGroupPresentCapabilitiesKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDeviceGroupPresentCapabilitiesKHR where
    type StructRep VkDeviceGroupPresentCapabilitiesKHR =
         'StructMeta "VkDeviceGroupPresentCapabilitiesKHR" -- ' closing tick for hsc2hs
           VkDeviceGroupPresentCapabilitiesKHR
           (152)
{-# LINE 350 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           8
{-# LINE 351 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 353 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 358 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "presentMask" Word32 'False 
                                                     (16)
{-# LINE 363 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                VK_MAX_DEVICE_GROUP_SIZE
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "modes" VkDeviceGroupPresentModeFlagsKHR 'False
                (144)
{-# LINE 368 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'True -- ' closing tick for hsc2hs
           '[] -- ' closing tick for hsc2hs

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

data VkDeviceGroupPresentInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDeviceGroupPresentInfoKHR where
    type StructRep VkDeviceGroupPresentInfoKHR =
         'StructMeta "VkDeviceGroupPresentInfoKHR" -- ' closing tick for hsc2hs
           VkDeviceGroupPresentInfoKHR
           (40)
{-# LINE 394 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           8
{-# LINE 395 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 397 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 402 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "swapchainCount" Word32 'True 
                                                       (16)
{-# LINE 407 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pDeviceMasks" (Ptr Word32) 'False 
                                                            (24)
{-# LINE 412 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "mode" VkDeviceGroupPresentModeFlagBitsKHR 'False
                (32)
{-# LINE 417 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkPresentInfoKHR] -- ' closing tick for hsc2hs

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

data VkDeviceGroupRenderPassBeginInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDeviceGroupRenderPassBeginInfo where
    type StructRep VkDeviceGroupRenderPassBeginInfo =
         'StructMeta "VkDeviceGroupRenderPassBeginInfo" -- ' closing tick for hsc2hs
           VkDeviceGroupRenderPassBeginInfo
           (32)
{-# LINE 443 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           8
{-# LINE 444 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 446 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 451 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "deviceMask" Word32 'False 
                                                    (16)
{-# LINE 456 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "deviceRenderAreaCount" Word32 'True 
                                                              (20)
{-# LINE 461 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pDeviceRenderAreas" (Ptr VkRect2D) 'False 
                                                                    (24)
{-# LINE 466 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkRenderPassBeginInfo] -- ' closing tick for hsc2hs

-- | Alias for `VkDeviceGroupRenderPassBeginInfo`
type VkDeviceGroupRenderPassBeginInfoKHR =
     VkDeviceGroupRenderPassBeginInfo

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

data VkDeviceGroupSubmitInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDeviceGroupSubmitInfo where
    type StructRep VkDeviceGroupSubmitInfo =
         'StructMeta "VkDeviceGroupSubmitInfo" VkDeviceGroupSubmitInfo -- ' closing tick for hsc2hs
           (64)
{-# LINE 497 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           8
{-# LINE 498 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 500 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 505 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "waitSemaphoreCount" Word32 'True 
                                                           (16)
{-# LINE 510 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pWaitSemaphoreDeviceIndices" (Ptr Word32) 'False
                (24)
{-# LINE 515 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "commandBufferCount" Word32 'True 
                                                           (32)
{-# LINE 520 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pCommandBufferDeviceMasks" (Ptr Word32) 'False
                (40)
{-# LINE 525 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "signalSemaphoreCount" Word32 'True 
                                                             (48)
{-# LINE 530 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pSignalSemaphoreDeviceIndices" (Ptr Word32) 'False
                (56)
{-# LINE 535 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkSubmitInfo] -- ' closing tick for hsc2hs

-- | Alias for `VkDeviceGroupSubmitInfo`
type VkDeviceGroupSubmitInfoKHR = VkDeviceGroupSubmitInfo

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

data VkDeviceGroupSwapchainCreateInfoKHR' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDeviceGroupSwapchainCreateInfoKHR where
    type StructRep VkDeviceGroupSwapchainCreateInfoKHR =
         'StructMeta "VkDeviceGroupSwapchainCreateInfoKHR" -- ' closing tick for hsc2hs
           VkDeviceGroupSwapchainCreateInfoKHR
           (24)
{-# LINE 562 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           8
{-# LINE 563 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 565 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 570 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "modes" VkDeviceGroupPresentModeFlagsKHR 'False
                (16)
{-# LINE 575 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkSwapchainCreateInfoKHR] -- ' closing tick for hsc2hs

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

data VkDeviceMemoryOpaqueCaptureAddressInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDeviceMemoryOpaqueCaptureAddressInfo where
    type StructRep VkDeviceMemoryOpaqueCaptureAddressInfo =
         'StructMeta "VkDeviceMemoryOpaqueCaptureAddressInfo" -- ' closing tick for hsc2hs
           VkDeviceMemoryOpaqueCaptureAddressInfo
           (24)
{-# LINE 599 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           8
{-# LINE 600 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 602 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 607 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "memory" VkDeviceMemory 'False 
                                                        (16)
{-# LINE 612 "src-gen/Graphics/Vulkan/Types/Struct/Device.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 `VkDeviceMemoryOpaqueCaptureAddressInfo`
type VkDeviceMemoryOpaqueCaptureAddressInfoKHR =
     VkDeviceMemoryOpaqueCaptureAddressInfo

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

data VkDeviceMemoryOverallocationCreateInfoAMD' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDeviceMemoryOverallocationCreateInfoAMD
         where
    type StructRep VkDeviceMemoryOverallocationCreateInfoAMD =
         'StructMeta "VkDeviceMemoryOverallocationCreateInfoAMD" -- ' closing tick for hsc2hs
           VkDeviceMemoryOverallocationCreateInfoAMD
           (24)
{-# LINE 641 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           8
{-# LINE 642 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 644 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 649 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "overallocationBehavior" -- ' closing tick for hsc2hs
                VkMemoryOverallocationBehaviorAMD
                'False -- ' closing tick for hsc2hs
                (16)
{-# LINE 656 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkDeviceCreateInfo] -- ' closing tick for hsc2hs

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

data VkDevicePrivateDataCreateInfoEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDevicePrivateDataCreateInfoEXT where
    type StructRep VkDevicePrivateDataCreateInfoEXT =
         'StructMeta "VkDevicePrivateDataCreateInfoEXT" -- ' closing tick for hsc2hs
           VkDevicePrivateDataCreateInfoEXT
           (24)
{-# LINE 680 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           8
{-# LINE 681 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 683 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 688 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "privateDataSlotRequestCount" Word32 'False 
                                                                     (16)
{-# LINE 693 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkDeviceCreateInfo] -- ' closing tick for hsc2hs

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

data VkDeviceQueueCreateInfo' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDeviceQueueCreateInfo where
    type StructRep VkDeviceQueueCreateInfo =
         'StructMeta "VkDeviceQueueCreateInfo" VkDeviceQueueCreateInfo -- ' closing tick for hsc2hs
           (40)
{-# LINE 718 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           8
{-# LINE 719 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 721 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 726 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkDeviceQueueCreateFlags 'True 
                                                                (16)
{-# LINE 731 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "queueFamilyIndex" Word32 'False 
                                                          (20)
{-# LINE 736 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "queueCount" Word32 'False 
                                                    (24)
{-# LINE 741 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pQueuePriorities" (Ptr  -- ' closing tick for hsc2hs
                                                 Float)
{-# LINE 746 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                'False -- ' closing tick for hsc2hs
                (32)
{-# LINE 748 "src-gen/Graphics/Vulkan/Types/Struct/Device.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 VkDeviceQueueGlobalPriorityCreateInfoEXT {
--   >     VkStructureType sType;
--   >     const void*                    pNext;
--   >     VkQueueGlobalPriorityEXT       globalPriority;
--   > } VkDeviceQueueGlobalPriorityCreateInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkDeviceQueueGlobalPriorityCreateInfoEXT VkDeviceQueueGlobalPriorityCreateInfoEXT registry at www.khronos.org>
type VkDeviceQueueGlobalPriorityCreateInfoEXT =
     VkStruct VkDeviceQueueGlobalPriorityCreateInfoEXT' -- ' closing tick for hsc2hs

data VkDeviceQueueGlobalPriorityCreateInfoEXT' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDeviceQueueGlobalPriorityCreateInfoEXT
         where
    type StructRep VkDeviceQueueGlobalPriorityCreateInfoEXT =
         'StructMeta "VkDeviceQueueGlobalPriorityCreateInfoEXT" -- ' closing tick for hsc2hs
           VkDeviceQueueGlobalPriorityCreateInfoEXT
           (24)
{-# LINE 773 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           8
{-# LINE 774 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 776 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 781 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "globalPriority" VkQueueGlobalPriorityEXT 'False
                (16)
{-# LINE 786 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True)] -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           'False -- ' closing tick for hsc2hs
           '[VkDeviceQueueCreateInfo] -- ' closing tick for hsc2hs

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

data VkDeviceQueueInfo2' -- ' closing tick for hsc2hs

instance VulkanMarshal VkDeviceQueueInfo2 where
    type StructRep VkDeviceQueueInfo2 =
         'StructMeta "VkDeviceQueueInfo2" VkDeviceQueueInfo2  -- ' closing tick for hsc2hs
                                                             (32)
{-# LINE 810 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           8
{-# LINE 811 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
           '[('FieldMeta "sType" VkStructureType 'False  -- ' closing tick for hsc2hs
                                                        (0)
{-# LINE 813 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "pNext" (Ptr Void) 'False 
                                                   (8)
{-# LINE 818 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "flags" VkDeviceQueueCreateFlags 'True 
                                                                (16)
{-# LINE 823 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "queueFamilyIndex" Word32 'False 
                                                          (20)
{-# LINE 828 "src-gen/Graphics/Vulkan/Types/Struct/Device.hsc" #-}
                1
                'True -- ' closing tick for hsc2hs
                'True), -- ' closing tick for hsc2hs
             ('FieldMeta "queueIndex" Word32 'False 
                                                    (24)
{-# LINE 833 "src-gen/Graphics/Vulkan/Types/Struct/Device.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