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

{-# LINE 2 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MagicHash             #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeApplications      #-}
{-# LANGUAGE TypeFamilies          #-}
module Graphics.Vulkan.Types.Struct.RenderPass
       (VkRenderPassBeginInfo(..), VkRenderPassCreateInfo(..),
        VkRenderPassInputAttachmentAspectCreateInfo(..),
        VkRenderPassInputAttachmentAspectCreateInfoKHR,
        VkRenderPassMultiviewCreateInfo(..),
        VkRenderPassMultiviewCreateInfoKHR,
        VkRenderPassSampleLocationsBeginInfoEXT(..))
       where
import           Foreign.Storable                                            (Storable (..))
import           GHC.Base                                                    (Addr#,
                                                                              ByteArray#,
                                                                              byteArrayContents#,
                                                                              plusAddr#)
import           Graphics.Vulkan.Marshal
import           Graphics.Vulkan.Marshal.Internal
import           Graphics.Vulkan.Types.Bitmasks                              (VkRenderPassCreateFlags)
import           Graphics.Vulkan.Types.Enum.StructureType                    (VkStructureType)
import           Graphics.Vulkan.Types.Handles                               (VkFramebuffer,
                                                                              VkRenderPass)
import           Graphics.Vulkan.Types.Struct.Attachment                     (VkAttachmentDescription,
                                                                              VkAttachmentSampleLocationsEXT)
import           Graphics.Vulkan.Types.Struct.Clear                          (VkClearValue)
import           Graphics.Vulkan.Types.Struct.InputAttachmentAspectReference (VkInputAttachmentAspectReference)
import           Graphics.Vulkan.Types.Struct.Rect                           (VkRect2D)
import           Graphics.Vulkan.Types.Struct.Subpass                        (VkSubpassDependency,
                                                                              VkSubpassDescription,
                                                                              VkSubpassSampleLocationsEXT)
import           System.IO.Unsafe                                            (unsafeDupablePerformIO)

-- | > typedef struct VkRenderPassBeginInfo {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     VkRenderPass           renderPass;
--   >     VkFramebuffer          framebuffer;
--   >     VkRect2D               renderArea;
--   >     uint32_t               clearValueCount;
--   >     const VkClearValue*    pClearValues;
--   > } VkRenderPassBeginInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkRenderPassBeginInfo VkRenderPassBeginInfo registry at www.khronos.org>
data VkRenderPassBeginInfo = VkRenderPassBeginInfo# Addr#
                                                    ByteArray#

instance Eq VkRenderPassBeginInfo where
        (VkRenderPassBeginInfo# a _) == x@(VkRenderPassBeginInfo# b _)
          = EQ == cmpBytes# (sizeOf x) a b

        {-# INLINE (==) #-}

instance Ord VkRenderPassBeginInfo where
        (VkRenderPassBeginInfo# a _) `compare`
          x@(VkRenderPassBeginInfo# b _) = cmpBytes# (sizeOf x) a b

        {-# INLINE compare #-}

instance Storable VkRenderPassBeginInfo where
        sizeOf ~_ = (64)
{-# LINE 67 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment ~_ = (8)
{-# LINE 70 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE alignment #-}
        peek = peekVkData#

        {-# INLINE peek #-}
        poke = pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkRenderPassBeginInfo where
        unsafeAddr (VkRenderPassBeginInfo# a _) = a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray (VkRenderPassBeginInfo# _ b) = b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset off b
          = VkRenderPassBeginInfo# (plusAddr# (byteArrayContents# b) off) b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkRenderPassBeginInfo where
        type StructFields VkRenderPassBeginInfo =
             '["sType", "pNext", "renderPass", "framebuffer", "renderArea", -- ' closing tick for hsc2hs
               "clearValueCount", "pClearValues"]
        type CUnionType VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
        type StructExtends VkRenderPassBeginInfo = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-} HasField "sType" VkRenderPassBeginInfo
         where
        type FieldType "sType" VkRenderPassBeginInfo = VkStructureType
        type FieldOptional "sType" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "sType" VkRenderPassBeginInfo =
             (0)
{-# LINE 105 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "sType" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset = (0)
{-# LINE 112 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkRenderPassBeginInfo where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (0))
{-# LINE 119 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (0)
{-# LINE 123 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkRenderPassBeginInfo where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (0)
{-# LINE 129 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-} HasField "pNext" VkRenderPassBeginInfo
         where
        type FieldType "pNext" VkRenderPassBeginInfo = Ptr Void
        type FieldOptional "pNext" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pNext" VkRenderPassBeginInfo =
             (8)
{-# LINE 136 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "pNext" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset = (8)
{-# LINE 143 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkRenderPassBeginInfo where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (8))
{-# LINE 150 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (8)
{-# LINE 154 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkRenderPassBeginInfo where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (8)
{-# LINE 160 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "renderPass" VkRenderPassBeginInfo where
        type FieldType "renderPass" VkRenderPassBeginInfo = VkRenderPass
        type FieldOptional "renderPass" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "renderPass" VkRenderPassBeginInfo =
             (16)
{-# LINE 167 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "renderPass" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (16)
{-# LINE 175 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "renderPass" VkRenderPassBeginInfo where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 182 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (16)
{-# LINE 186 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "renderPass" VkRenderPassBeginInfo where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 192 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "framebuffer" VkRenderPassBeginInfo where
        type FieldType "framebuffer" VkRenderPassBeginInfo = VkFramebuffer
        type FieldOptional "framebuffer" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "framebuffer" VkRenderPassBeginInfo =
             (24)
{-# LINE 199 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "framebuffer" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (24)
{-# LINE 207 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "framebuffer" VkRenderPassBeginInfo where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (24))
{-# LINE 214 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (24)
{-# LINE 218 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "framebuffer" VkRenderPassBeginInfo where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (24)
{-# LINE 224 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "renderArea" VkRenderPassBeginInfo where
        type FieldType "renderArea" VkRenderPassBeginInfo = VkRect2D
        type FieldOptional "renderArea" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "renderArea" VkRenderPassBeginInfo =
             (32)
{-# LINE 231 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "renderArea" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (32)
{-# LINE 239 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "renderArea" VkRenderPassBeginInfo where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (32))
{-# LINE 246 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (32)
{-# LINE 250 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "renderArea" VkRenderPassBeginInfo where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (32)
{-# LINE 256 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "clearValueCount" VkRenderPassBeginInfo where
        type FieldType "clearValueCount" VkRenderPassBeginInfo = Word32
        type FieldOptional "clearValueCount" VkRenderPassBeginInfo = 'True -- ' closing tick for hsc2hs
        type FieldOffset "clearValueCount" VkRenderPassBeginInfo =
             (48)
{-# LINE 263 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "clearValueCount" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (48)
{-# LINE 271 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "clearValueCount" VkRenderPassBeginInfo where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (48))
{-# LINE 278 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (48)
{-# LINE 282 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "clearValueCount" VkRenderPassBeginInfo where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (48)
{-# LINE 288 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pClearValues" VkRenderPassBeginInfo where
        type FieldType "pClearValues" VkRenderPassBeginInfo =
             Ptr VkClearValue
        type FieldOptional "pClearValues" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pClearValues" VkRenderPassBeginInfo =
             (56)
{-# LINE 296 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "pClearValues" VkRenderPassBeginInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (56)
{-# LINE 304 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pClearValues" VkRenderPassBeginInfo where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (56))
{-# LINE 311 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (56)
{-# LINE 315 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pClearValues" VkRenderPassBeginInfo where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (56)
{-# LINE 321 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance Show VkRenderPassBeginInfo where
        showsPrec d x
          = showString "VkRenderPassBeginInfo {" .
              showString "sType = " .
                showsPrec d (getField @"sType" x) .
                  showString ", " .
                    showString "pNext = " .
                      showsPrec d (getField @"pNext" x) .
                        showString ", " .
                          showString "renderPass = " .
                            showsPrec d (getField @"renderPass" x) .
                              showString ", " .
                                showString "framebuffer = " .
                                  showsPrec d (getField @"framebuffer" x) .
                                    showString ", " .
                                      showString "renderArea = " .
                                        showsPrec d (getField @"renderArea" x) .
                                          showString ", " .
                                            showString "clearValueCount = " .
                                              showsPrec d (getField @"clearValueCount" x) .
                                                showString ", " .
                                                  showString "pClearValues = " .
                                                    showsPrec d (getField @"pClearValues" x) .
                                                      showChar '}'

-- | > typedef struct VkRenderPassCreateInfo {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     VkRenderPassCreateFlags    flags;
--   >     uint32_t   attachmentCount;
--   >     const VkAttachmentDescription* pAttachments;
--   >     uint32_t               subpassCount;
--   >     const VkSubpassDescription* pSubpasses;
--   >     uint32_t       dependencyCount;
--   >     const VkSubpassDependency* pDependencies;
--   > } VkRenderPassCreateInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkRenderPassCreateInfo VkRenderPassCreateInfo registry at www.khronos.org>
data VkRenderPassCreateInfo = VkRenderPassCreateInfo# Addr#
                                                      ByteArray#

instance Eq VkRenderPassCreateInfo where
        (VkRenderPassCreateInfo# a _) == x@(VkRenderPassCreateInfo# b _)
          = EQ == cmpBytes# (sizeOf x) a b

        {-# INLINE (==) #-}

instance Ord VkRenderPassCreateInfo where
        (VkRenderPassCreateInfo# a _) `compare`
          x@(VkRenderPassCreateInfo# b _) = cmpBytes# (sizeOf x) a b

        {-# INLINE compare #-}

instance Storable VkRenderPassCreateInfo where
        sizeOf ~_ = (64)
{-# LINE 377 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment ~_ = (8)
{-# LINE 380 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE alignment #-}
        peek = peekVkData#

        {-# INLINE peek #-}
        poke = pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkRenderPassCreateInfo where
        unsafeAddr (VkRenderPassCreateInfo# a _) = a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray (VkRenderPassCreateInfo# _ b) = b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset off b
          = VkRenderPassCreateInfo# (plusAddr# (byteArrayContents# b) off) b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkRenderPassCreateInfo where
        type StructFields VkRenderPassCreateInfo =
             '["sType", "pNext", "flags", "attachmentCount", "pAttachments", -- ' closing tick for hsc2hs
               "subpassCount", "pSubpasses", "dependencyCount", "pDependencies"]
        type CUnionType VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
        type StructExtends VkRenderPassCreateInfo = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         HasField "sType" VkRenderPassCreateInfo where
        type FieldType "sType" VkRenderPassCreateInfo = VkStructureType
        type FieldOptional "sType" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "sType" VkRenderPassCreateInfo =
             (0)
{-# LINE 415 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "sType" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset = (0)
{-# LINE 422 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkRenderPassCreateInfo where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (0))
{-# LINE 429 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (0)
{-# LINE 433 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkRenderPassCreateInfo where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (0)
{-# LINE 439 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pNext" VkRenderPassCreateInfo where
        type FieldType "pNext" VkRenderPassCreateInfo = Ptr Void
        type FieldOptional "pNext" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pNext" VkRenderPassCreateInfo =
             (8)
{-# LINE 446 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "pNext" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset = (8)
{-# LINE 453 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkRenderPassCreateInfo where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (8))
{-# LINE 460 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (8)
{-# LINE 464 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkRenderPassCreateInfo where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (8)
{-# LINE 470 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "flags" VkRenderPassCreateInfo where
        type FieldType "flags" VkRenderPassCreateInfo =
             VkRenderPassCreateFlags
        type FieldOptional "flags" VkRenderPassCreateInfo = 'True -- ' closing tick for hsc2hs
        type FieldOffset "flags" VkRenderPassCreateInfo =
             (16)
{-# LINE 478 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "flags" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset = (16)
{-# LINE 485 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "flags" VkRenderPassCreateInfo where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 492 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (16)
{-# LINE 496 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "flags" VkRenderPassCreateInfo where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 502 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "attachmentCount" VkRenderPassCreateInfo where
        type FieldType "attachmentCount" VkRenderPassCreateInfo = Word32
        type FieldOptional "attachmentCount" VkRenderPassCreateInfo = 'True -- ' closing tick for hsc2hs
        type FieldOffset "attachmentCount" VkRenderPassCreateInfo =
             (20)
{-# LINE 509 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "attachmentCount" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (20)
{-# LINE 517 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "attachmentCount" VkRenderPassCreateInfo where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (20))
{-# LINE 524 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (20)
{-# LINE 528 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "attachmentCount" VkRenderPassCreateInfo where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (20)
{-# LINE 534 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pAttachments" VkRenderPassCreateInfo where
        type FieldType "pAttachments" VkRenderPassCreateInfo =
             Ptr VkAttachmentDescription
        type FieldOptional "pAttachments" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pAttachments" VkRenderPassCreateInfo =
             (24)
{-# LINE 542 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "pAttachments" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (24)
{-# LINE 550 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pAttachments" VkRenderPassCreateInfo where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (24))
{-# LINE 557 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (24)
{-# LINE 561 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pAttachments" VkRenderPassCreateInfo where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (24)
{-# LINE 567 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "subpassCount" VkRenderPassCreateInfo where
        type FieldType "subpassCount" VkRenderPassCreateInfo = Word32
        type FieldOptional "subpassCount" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "subpassCount" VkRenderPassCreateInfo =
             (32)
{-# LINE 574 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "subpassCount" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (32)
{-# LINE 582 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "subpassCount" VkRenderPassCreateInfo where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (32))
{-# LINE 589 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (32)
{-# LINE 593 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "subpassCount" VkRenderPassCreateInfo where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (32)
{-# LINE 599 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pSubpasses" VkRenderPassCreateInfo where
        type FieldType "pSubpasses" VkRenderPassCreateInfo =
             Ptr VkSubpassDescription
        type FieldOptional "pSubpasses" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pSubpasses" VkRenderPassCreateInfo =
             (40)
{-# LINE 607 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "pSubpasses" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (40)
{-# LINE 615 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pSubpasses" VkRenderPassCreateInfo where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (40))
{-# LINE 622 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (40)
{-# LINE 626 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pSubpasses" VkRenderPassCreateInfo where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (40)
{-# LINE 632 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "dependencyCount" VkRenderPassCreateInfo where
        type FieldType "dependencyCount" VkRenderPassCreateInfo = Word32
        type FieldOptional "dependencyCount" VkRenderPassCreateInfo = 'True -- ' closing tick for hsc2hs
        type FieldOffset "dependencyCount" VkRenderPassCreateInfo =
             (48)
{-# LINE 639 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "dependencyCount" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (48)
{-# LINE 647 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "dependencyCount" VkRenderPassCreateInfo where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (48))
{-# LINE 654 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (48)
{-# LINE 658 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "dependencyCount" VkRenderPassCreateInfo where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (48)
{-# LINE 664 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pDependencies" VkRenderPassCreateInfo where
        type FieldType "pDependencies" VkRenderPassCreateInfo =
             Ptr VkSubpassDependency
        type FieldOptional "pDependencies" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pDependencies" VkRenderPassCreateInfo =
             (56)
{-# LINE 672 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "pDependencies" VkRenderPassCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (56)
{-# LINE 680 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pDependencies" VkRenderPassCreateInfo where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (56))
{-# LINE 687 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (56)
{-# LINE 691 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pDependencies" VkRenderPassCreateInfo where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (56)
{-# LINE 697 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance Show VkRenderPassCreateInfo where
        showsPrec d x
          = showString "VkRenderPassCreateInfo {" .
              showString "sType = " .
                showsPrec d (getField @"sType" x) .
                  showString ", " .
                    showString "pNext = " .
                      showsPrec d (getField @"pNext" x) .
                        showString ", " .
                          showString "flags = " .
                            showsPrec d (getField @"flags" x) .
                              showString ", " .
                                showString "attachmentCount = " .
                                  showsPrec d (getField @"attachmentCount" x) .
                                    showString ", " .
                                      showString "pAttachments = " .
                                        showsPrec d (getField @"pAttachments" x) .
                                          showString ", " .
                                            showString "subpassCount = " .
                                              showsPrec d (getField @"subpassCount" x) .
                                                showString ", " .
                                                  showString "pSubpasses = " .
                                                    showsPrec d (getField @"pSubpasses" x) .
                                                      showString ", " .
                                                        showString "dependencyCount = " .
                                                          showsPrec d
                                                            (getField @"dependencyCount" x)
                                                            .
                                                            showString ", " .
                                                              showString "pDependencies = " .
                                                                showsPrec d
                                                                  (getField @"pDependencies" x)
                                                                  . showChar '}'

-- | > typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
--   >     VkStructureType sType;
--   >     const void*                     pNext;
--   >     uint32_t                        aspectReferenceCount;
--   >     const VkInputAttachmentAspectReference* pAspectReferences;
--   > } VkRenderPassInputAttachmentAspectCreateInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfo registry at www.khronos.org>
data VkRenderPassInputAttachmentAspectCreateInfo = VkRenderPassInputAttachmentAspectCreateInfo# Addr#
                                                                                                ByteArray#

instance Eq VkRenderPassInputAttachmentAspectCreateInfo where
        (VkRenderPassInputAttachmentAspectCreateInfo# a _) ==
          x@(VkRenderPassInputAttachmentAspectCreateInfo# b _)
          = EQ == cmpBytes# (sizeOf x) a b

        {-# INLINE (==) #-}

instance Ord VkRenderPassInputAttachmentAspectCreateInfo where
        (VkRenderPassInputAttachmentAspectCreateInfo# a _) `compare`
          x@(VkRenderPassInputAttachmentAspectCreateInfo# b _)
          = cmpBytes# (sizeOf x) a b

        {-# INLINE compare #-}

instance Storable VkRenderPassInputAttachmentAspectCreateInfo where
        sizeOf ~_
          = (32)
{-# LINE 760 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment ~_
          = (8)
{-# LINE 764 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE alignment #-}
        peek = peekVkData#

        {-# INLINE peek #-}
        poke = pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim
           VkRenderPassInputAttachmentAspectCreateInfo
         where
        unsafeAddr (VkRenderPassInputAttachmentAspectCreateInfo# a _) = a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray (VkRenderPassInputAttachmentAspectCreateInfo# _ b)
          = b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset off b
          = VkRenderPassInputAttachmentAspectCreateInfo#
              (plusAddr# (byteArrayContents# b) off)
              b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkRenderPassInputAttachmentAspectCreateInfo
         where
        type StructFields VkRenderPassInputAttachmentAspectCreateInfo =
             '["sType", "pNext", "aspectReferenceCount", "pAspectReferences"] -- ' closing tick for hsc2hs
        type CUnionType VkRenderPassInputAttachmentAspectCreateInfo =
             'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkRenderPassInputAttachmentAspectCreateInfo =
             'False -- ' closing tick for hsc2hs
        type StructExtends VkRenderPassInputAttachmentAspectCreateInfo =
             '[VkRenderPassCreateInfo] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         HasField "sType" VkRenderPassInputAttachmentAspectCreateInfo where
        type FieldType "sType" VkRenderPassInputAttachmentAspectCreateInfo
             = VkStructureType
        type FieldOptional "sType"
               VkRenderPassInputAttachmentAspectCreateInfo
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "sType"
               VkRenderPassInputAttachmentAspectCreateInfo
             =
             (0)
{-# LINE 812 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "sType"
               VkRenderPassInputAttachmentAspectCreateInfo
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (0)
{-# LINE 822 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkRenderPassInputAttachmentAspectCreateInfo
         where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (0))
{-# LINE 830 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (0)
{-# LINE 834 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkRenderPassInputAttachmentAspectCreateInfo
         where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (0)
{-# LINE 841 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pNext" VkRenderPassInputAttachmentAspectCreateInfo where
        type FieldType "pNext" VkRenderPassInputAttachmentAspectCreateInfo
             = Ptr Void
        type FieldOptional "pNext"
               VkRenderPassInputAttachmentAspectCreateInfo
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pNext"
               VkRenderPassInputAttachmentAspectCreateInfo
             =
             (8)
{-# LINE 853 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "pNext"
               VkRenderPassInputAttachmentAspectCreateInfo
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (8)
{-# LINE 863 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkRenderPassInputAttachmentAspectCreateInfo
         where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (8))
{-# LINE 871 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (8)
{-# LINE 875 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkRenderPassInputAttachmentAspectCreateInfo
         where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (8)
{-# LINE 882 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "aspectReferenceCount"
           VkRenderPassInputAttachmentAspectCreateInfo
         where
        type FieldType "aspectReferenceCount"
               VkRenderPassInputAttachmentAspectCreateInfo
             = Word32
        type FieldOptional "aspectReferenceCount"
               VkRenderPassInputAttachmentAspectCreateInfo
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "aspectReferenceCount"
               VkRenderPassInputAttachmentAspectCreateInfo
             =
             (16)
{-# LINE 897 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "aspectReferenceCount"
               VkRenderPassInputAttachmentAspectCreateInfo
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (16)
{-# LINE 907 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "aspectReferenceCount"
           VkRenderPassInputAttachmentAspectCreateInfo
         where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 916 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (16)
{-# LINE 920 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "aspectReferenceCount"
           VkRenderPassInputAttachmentAspectCreateInfo
         where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 928 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pAspectReferences"
           VkRenderPassInputAttachmentAspectCreateInfo
         where
        type FieldType "pAspectReferences"
               VkRenderPassInputAttachmentAspectCreateInfo
             = Ptr VkInputAttachmentAspectReference
        type FieldOptional "pAspectReferences"
               VkRenderPassInputAttachmentAspectCreateInfo
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pAspectReferences"
               VkRenderPassInputAttachmentAspectCreateInfo
             =
             (24)
{-# LINE 943 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "pAspectReferences"
               VkRenderPassInputAttachmentAspectCreateInfo
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (24)
{-# LINE 953 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pAspectReferences"
           VkRenderPassInputAttachmentAspectCreateInfo
         where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (24))
{-# LINE 962 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (24)
{-# LINE 966 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pAspectReferences"
           VkRenderPassInputAttachmentAspectCreateInfo
         where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (24)
{-# LINE 974 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance Show VkRenderPassInputAttachmentAspectCreateInfo where
        showsPrec d x
          = showString "VkRenderPassInputAttachmentAspectCreateInfo {" .
              showString "sType = " .
                showsPrec d (getField @"sType" x) .
                  showString ", " .
                    showString "pNext = " .
                      showsPrec d (getField @"pNext" x) .
                        showString ", " .
                          showString "aspectReferenceCount = " .
                            showsPrec d (getField @"aspectReferenceCount" x) .
                              showString ", " .
                                showString "pAspectReferences = " .
                                  showsPrec d (getField @"pAspectReferences" x) . showChar '}'

-- | Alias for `VkRenderPassInputAttachmentAspectCreateInfo`
type VkRenderPassInputAttachmentAspectCreateInfoKHR =
     VkRenderPassInputAttachmentAspectCreateInfo

-- | > typedef struct VkRenderPassMultiviewCreateInfo {
--   >     VkStructureType        sType;
--   >     const void*            pNext;
--   >     uint32_t               subpassCount;
--   >     const uint32_t*     pViewMasks;
--   >     uint32_t               dependencyCount;
--   >     const int32_t*   pViewOffsets;
--   >     uint32_t               correlationMaskCount;
--   >     const uint32_t* pCorrelationMasks;
--   > } VkRenderPassMultiviewCreateInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfo registry at www.khronos.org>
data VkRenderPassMultiviewCreateInfo = VkRenderPassMultiviewCreateInfo# Addr#
                                                                        ByteArray#

instance Eq VkRenderPassMultiviewCreateInfo where
        (VkRenderPassMultiviewCreateInfo# a _) ==
          x@(VkRenderPassMultiviewCreateInfo# b _)
          = EQ == cmpBytes# (sizeOf x) a b

        {-# INLINE (==) #-}

instance Ord VkRenderPassMultiviewCreateInfo where
        (VkRenderPassMultiviewCreateInfo# a _) `compare`
          x@(VkRenderPassMultiviewCreateInfo# b _) = cmpBytes# (sizeOf x) a b

        {-# INLINE compare #-}

instance Storable VkRenderPassMultiviewCreateInfo where
        sizeOf ~_ = (64)
{-# LINE 1024 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment ~_
          = (8)
{-# LINE 1028 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE alignment #-}
        peek = peekVkData#

        {-# INLINE peek #-}
        poke = pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkRenderPassMultiviewCreateInfo where
        unsafeAddr (VkRenderPassMultiviewCreateInfo# a _) = a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray (VkRenderPassMultiviewCreateInfo# _ b) = b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset off b
          = VkRenderPassMultiviewCreateInfo#
              (plusAddr# (byteArrayContents# b) off)
              b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkRenderPassMultiviewCreateInfo where
        type StructFields VkRenderPassMultiviewCreateInfo =
             '["sType", "pNext", "subpassCount", "pViewMasks", -- ' closing tick for hsc2hs
               "dependencyCount", "pViewOffsets", "correlationMaskCount",
               "pCorrelationMasks"]
        type CUnionType VkRenderPassMultiviewCreateInfo = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkRenderPassMultiviewCreateInfo = 'False -- ' closing tick for hsc2hs
        type StructExtends VkRenderPassMultiviewCreateInfo =
             '[VkRenderPassCreateInfo] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         HasField "sType" VkRenderPassMultiviewCreateInfo where
        type FieldType "sType" VkRenderPassMultiviewCreateInfo =
             VkStructureType
        type FieldOptional "sType" VkRenderPassMultiviewCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "sType" VkRenderPassMultiviewCreateInfo =
             (0)
{-# LINE 1068 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "sType" VkRenderPassMultiviewCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (0)
{-# LINE 1076 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkRenderPassMultiviewCreateInfo where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (0))
{-# LINE 1083 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (0)
{-# LINE 1087 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkRenderPassMultiviewCreateInfo where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (0)
{-# LINE 1093 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pNext" VkRenderPassMultiviewCreateInfo where
        type FieldType "pNext" VkRenderPassMultiviewCreateInfo = Ptr Void
        type FieldOptional "pNext" VkRenderPassMultiviewCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pNext" VkRenderPassMultiviewCreateInfo =
             (8)
{-# LINE 1100 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "pNext" VkRenderPassMultiviewCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (8)
{-# LINE 1108 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkRenderPassMultiviewCreateInfo where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (8))
{-# LINE 1115 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (8)
{-# LINE 1119 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkRenderPassMultiviewCreateInfo where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (8)
{-# LINE 1125 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "subpassCount" VkRenderPassMultiviewCreateInfo where
        type FieldType "subpassCount" VkRenderPassMultiviewCreateInfo =
             Word32
        type FieldOptional "subpassCount" VkRenderPassMultiviewCreateInfo =
             'True -- ' closing tick for hsc2hs
        type FieldOffset "subpassCount" VkRenderPassMultiviewCreateInfo =
             (16)
{-# LINE 1134 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "subpassCount" VkRenderPassMultiviewCreateInfo =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (16)
{-# LINE 1143 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "subpassCount" VkRenderPassMultiviewCreateInfo where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 1150 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (16)
{-# LINE 1154 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "subpassCount" VkRenderPassMultiviewCreateInfo where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 1160 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pViewMasks" VkRenderPassMultiviewCreateInfo where
        type FieldType "pViewMasks" VkRenderPassMultiviewCreateInfo =
             Ptr Word32
        type FieldOptional "pViewMasks" VkRenderPassMultiviewCreateInfo =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "pViewMasks" VkRenderPassMultiviewCreateInfo =
             (24)
{-# LINE 1169 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "pViewMasks" VkRenderPassMultiviewCreateInfo =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (24)
{-# LINE 1178 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pViewMasks" VkRenderPassMultiviewCreateInfo where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (24))
{-# LINE 1185 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (24)
{-# LINE 1189 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pViewMasks" VkRenderPassMultiviewCreateInfo where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (24)
{-# LINE 1195 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "dependencyCount" VkRenderPassMultiviewCreateInfo where
        type FieldType "dependencyCount" VkRenderPassMultiviewCreateInfo =
             Word32
        type FieldOptional "dependencyCount"
               VkRenderPassMultiviewCreateInfo
             = 'True -- ' closing tick for hsc2hs
        type FieldOffset "dependencyCount" VkRenderPassMultiviewCreateInfo
             =
             (32)
{-# LINE 1206 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "dependencyCount" VkRenderPassMultiviewCreateInfo
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (32)
{-# LINE 1215 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "dependencyCount" VkRenderPassMultiviewCreateInfo
         where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (32))
{-# LINE 1223 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (32)
{-# LINE 1227 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "dependencyCount" VkRenderPassMultiviewCreateInfo
         where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (32)
{-# LINE 1234 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pViewOffsets" VkRenderPassMultiviewCreateInfo where
        type FieldType "pViewOffsets" VkRenderPassMultiviewCreateInfo =
             Ptr Int32
        type FieldOptional "pViewOffsets" VkRenderPassMultiviewCreateInfo =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "pViewOffsets" VkRenderPassMultiviewCreateInfo =
             (40)
{-# LINE 1243 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "pViewOffsets" VkRenderPassMultiviewCreateInfo =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (40)
{-# LINE 1252 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pViewOffsets" VkRenderPassMultiviewCreateInfo where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (40))
{-# LINE 1259 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (40)
{-# LINE 1263 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pViewOffsets" VkRenderPassMultiviewCreateInfo where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (40)
{-# LINE 1269 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "correlationMaskCount" VkRenderPassMultiviewCreateInfo
         where
        type FieldType "correlationMaskCount"
               VkRenderPassMultiviewCreateInfo
             = Word32
        type FieldOptional "correlationMaskCount"
               VkRenderPassMultiviewCreateInfo
             = 'True -- ' closing tick for hsc2hs
        type FieldOffset "correlationMaskCount"
               VkRenderPassMultiviewCreateInfo
             =
             (48)
{-# LINE 1283 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "correlationMaskCount"
               VkRenderPassMultiviewCreateInfo
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (48)
{-# LINE 1293 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "correlationMaskCount" VkRenderPassMultiviewCreateInfo
         where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (48))
{-# LINE 1301 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (48)
{-# LINE 1305 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "correlationMaskCount"
           VkRenderPassMultiviewCreateInfo
         where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (48)
{-# LINE 1313 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pCorrelationMasks" VkRenderPassMultiviewCreateInfo where
        type FieldType "pCorrelationMasks" VkRenderPassMultiviewCreateInfo
             = Ptr Word32
        type FieldOptional "pCorrelationMasks"
               VkRenderPassMultiviewCreateInfo
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pCorrelationMasks"
               VkRenderPassMultiviewCreateInfo
             =
             (56)
{-# LINE 1325 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "pCorrelationMasks"
               VkRenderPassMultiviewCreateInfo
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (56)
{-# LINE 1335 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pCorrelationMasks" VkRenderPassMultiviewCreateInfo
         where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (56))
{-# LINE 1343 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (56)
{-# LINE 1347 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pCorrelationMasks" VkRenderPassMultiviewCreateInfo
         where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (56)
{-# LINE 1354 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance Show VkRenderPassMultiviewCreateInfo where
        showsPrec d x
          = showString "VkRenderPassMultiviewCreateInfo {" .
              showString "sType = " .
                showsPrec d (getField @"sType" x) .
                  showString ", " .
                    showString "pNext = " .
                      showsPrec d (getField @"pNext" x) .
                        showString ", " .
                          showString "subpassCount = " .
                            showsPrec d (getField @"subpassCount" x) .
                              showString ", " .
                                showString "pViewMasks = " .
                                  showsPrec d (getField @"pViewMasks" x) .
                                    showString ", " .
                                      showString "dependencyCount = " .
                                        showsPrec d (getField @"dependencyCount" x) .
                                          showString ", " .
                                            showString "pViewOffsets = " .
                                              showsPrec d (getField @"pViewOffsets" x) .
                                                showString ", " .
                                                  showString "correlationMaskCount = " .
                                                    showsPrec d (getField @"correlationMaskCount" x)
                                                      .
                                                      showString ", " .
                                                        showString "pCorrelationMasks = " .
                                                          showsPrec d
                                                            (getField @"pCorrelationMasks" x)
                                                            . showChar '}'

-- | Alias for `VkRenderPassMultiviewCreateInfo`
type VkRenderPassMultiviewCreateInfoKHR =
     VkRenderPassMultiviewCreateInfo

-- | > typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
--   >     VkStructureType sType;
--   >     const void*                      pNext;
--   >     uint32_t         attachmentInitialSampleLocationsCount;
--   >     const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations;
--   >     uint32_t         postSubpassSampleLocationsCount;
--   >     const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations;
--   > } VkRenderPassSampleLocationsBeginInfoEXT;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkRenderPassSampleLocationsBeginInfoEXT VkRenderPassSampleLocationsBeginInfoEXT registry at www.khronos.org>
data VkRenderPassSampleLocationsBeginInfoEXT = VkRenderPassSampleLocationsBeginInfoEXT# Addr#
                                                                                        ByteArray#

instance Eq VkRenderPassSampleLocationsBeginInfoEXT where
        (VkRenderPassSampleLocationsBeginInfoEXT# a _) ==
          x@(VkRenderPassSampleLocationsBeginInfoEXT# b _)
          = EQ == cmpBytes# (sizeOf x) a b

        {-# INLINE (==) #-}

instance Ord VkRenderPassSampleLocationsBeginInfoEXT where
        (VkRenderPassSampleLocationsBeginInfoEXT# a _) `compare`
          x@(VkRenderPassSampleLocationsBeginInfoEXT# b _)
          = cmpBytes# (sizeOf x) a b

        {-# INLINE compare #-}

instance Storable VkRenderPassSampleLocationsBeginInfoEXT where
        sizeOf ~_
          = (48)
{-# LINE 1419 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment ~_
          = (8)
{-# LINE 1423 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE alignment #-}
        peek = peekVkData#

        {-# INLINE peek #-}
        poke = pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkRenderPassSampleLocationsBeginInfoEXT
         where
        unsafeAddr (VkRenderPassSampleLocationsBeginInfoEXT# a _) = a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray (VkRenderPassSampleLocationsBeginInfoEXT# _ b) = b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset off b
          = VkRenderPassSampleLocationsBeginInfoEXT#
              (plusAddr# (byteArrayContents# b) off)
              b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkRenderPassSampleLocationsBeginInfoEXT
         where
        type StructFields VkRenderPassSampleLocationsBeginInfoEXT =
             '["sType", "pNext", "attachmentInitialSampleLocationsCount", -- ' closing tick for hsc2hs
               "pAttachmentInitialSampleLocations",
               "postSubpassSampleLocationsCount", "pPostSubpassSampleLocations"]
        type CUnionType VkRenderPassSampleLocationsBeginInfoEXT = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkRenderPassSampleLocationsBeginInfoEXT = 'False -- ' closing tick for hsc2hs
        type StructExtends VkRenderPassSampleLocationsBeginInfoEXT =
             '[VkRenderPassBeginInfo] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         HasField "sType" VkRenderPassSampleLocationsBeginInfoEXT where
        type FieldType "sType" VkRenderPassSampleLocationsBeginInfoEXT =
             VkStructureType
        type FieldOptional "sType" VkRenderPassSampleLocationsBeginInfoEXT
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "sType" VkRenderPassSampleLocationsBeginInfoEXT =
             (0)
{-# LINE 1466 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "sType" VkRenderPassSampleLocationsBeginInfoEXT =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (0)
{-# LINE 1475 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkRenderPassSampleLocationsBeginInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (0))
{-# LINE 1482 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (0)
{-# LINE 1486 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkRenderPassSampleLocationsBeginInfoEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (0)
{-# LINE 1492 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pNext" VkRenderPassSampleLocationsBeginInfoEXT where
        type FieldType "pNext" VkRenderPassSampleLocationsBeginInfoEXT =
             Ptr Void
        type FieldOptional "pNext" VkRenderPassSampleLocationsBeginInfoEXT
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pNext" VkRenderPassSampleLocationsBeginInfoEXT =
             (8)
{-# LINE 1501 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "pNext" VkRenderPassSampleLocationsBeginInfoEXT =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (8)
{-# LINE 1510 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkRenderPassSampleLocationsBeginInfoEXT where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (8))
{-# LINE 1517 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (8)
{-# LINE 1521 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkRenderPassSampleLocationsBeginInfoEXT where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (8)
{-# LINE 1527 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "attachmentInitialSampleLocationsCount"
           VkRenderPassSampleLocationsBeginInfoEXT
         where
        type FieldType "attachmentInitialSampleLocationsCount"
               VkRenderPassSampleLocationsBeginInfoEXT
             = Word32
        type FieldOptional "attachmentInitialSampleLocationsCount"
               VkRenderPassSampleLocationsBeginInfoEXT
             = 'True -- ' closing tick for hsc2hs
        type FieldOffset "attachmentInitialSampleLocationsCount"
               VkRenderPassSampleLocationsBeginInfoEXT
             =
             (16)
{-# LINE 1542 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "attachmentInitialSampleLocationsCount"
               VkRenderPassSampleLocationsBeginInfoEXT
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (16)
{-# LINE 1552 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "attachmentInitialSampleLocationsCount"
           VkRenderPassSampleLocationsBeginInfoEXT
         where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (16))
{-# LINE 1561 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (16)
{-# LINE 1565 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "attachmentInitialSampleLocationsCount"
           VkRenderPassSampleLocationsBeginInfoEXT
         where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (16)
{-# LINE 1573 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pAttachmentInitialSampleLocations"
           VkRenderPassSampleLocationsBeginInfoEXT
         where
        type FieldType "pAttachmentInitialSampleLocations"
               VkRenderPassSampleLocationsBeginInfoEXT
             = Ptr VkAttachmentSampleLocationsEXT
        type FieldOptional "pAttachmentInitialSampleLocations"
               VkRenderPassSampleLocationsBeginInfoEXT
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pAttachmentInitialSampleLocations"
               VkRenderPassSampleLocationsBeginInfoEXT
             =
             (24)
{-# LINE 1588 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "pAttachmentInitialSampleLocations"
               VkRenderPassSampleLocationsBeginInfoEXT
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (24)
{-# LINE 1598 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pAttachmentInitialSampleLocations"
           VkRenderPassSampleLocationsBeginInfoEXT
         where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (24))
{-# LINE 1607 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (24)
{-# LINE 1611 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pAttachmentInitialSampleLocations"
           VkRenderPassSampleLocationsBeginInfoEXT
         where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (24)
{-# LINE 1619 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "postSubpassSampleLocationsCount"
           VkRenderPassSampleLocationsBeginInfoEXT
         where
        type FieldType "postSubpassSampleLocationsCount"
               VkRenderPassSampleLocationsBeginInfoEXT
             = Word32
        type FieldOptional "postSubpassSampleLocationsCount"
               VkRenderPassSampleLocationsBeginInfoEXT
             = 'True -- ' closing tick for hsc2hs
        type FieldOffset "postSubpassSampleLocationsCount"
               VkRenderPassSampleLocationsBeginInfoEXT
             =
             (32)
{-# LINE 1634 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "postSubpassSampleLocationsCount"
               VkRenderPassSampleLocationsBeginInfoEXT
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = True

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (32)
{-# LINE 1644 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "postSubpassSampleLocationsCount"
           VkRenderPassSampleLocationsBeginInfoEXT
         where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (32))
{-# LINE 1653 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (32)
{-# LINE 1657 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "postSubpassSampleLocationsCount"
           VkRenderPassSampleLocationsBeginInfoEXT
         where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (32)
{-# LINE 1665 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pPostSubpassSampleLocations"
           VkRenderPassSampleLocationsBeginInfoEXT
         where
        type FieldType "pPostSubpassSampleLocations"
               VkRenderPassSampleLocationsBeginInfoEXT
             = Ptr VkSubpassSampleLocationsEXT
        type FieldOptional "pPostSubpassSampleLocations"
               VkRenderPassSampleLocationsBeginInfoEXT
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pPostSubpassSampleLocations"
               VkRenderPassSampleLocationsBeginInfoEXT
             =
             (40)
{-# LINE 1680 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}
        type FieldIsArray "pPostSubpassSampleLocations"
               VkRenderPassSampleLocationsBeginInfoEXT
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional = False

        {-# INLINE fieldOffset #-}
        fieldOffset
          = (40)
{-# LINE 1690 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pPostSubpassSampleLocations"
           VkRenderPassSampleLocationsBeginInfoEXT
         where
        {-# NOINLINE getField #-}
        getField x
          = unsafeDupablePerformIO
              (peekByteOff (unsafePtr x) (40))
{-# LINE 1699 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

        {-# INLINE readField #-}
        readField p
          = peekByteOff p (40)
{-# LINE 1703 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pPostSubpassSampleLocations"
           VkRenderPassSampleLocationsBeginInfoEXT
         where
        {-# INLINE writeField #-}
        writeField p
          = pokeByteOff p (40)
{-# LINE 1711 "src-gen/Graphics/Vulkan/Types/Struct/RenderPass.hsc" #-}

instance Show VkRenderPassSampleLocationsBeginInfoEXT where
        showsPrec d x
          = showString "VkRenderPassSampleLocationsBeginInfoEXT {" .
              showString "sType = " .
                showsPrec d (getField @"sType" x) .
                  showString ", " .
                    showString "pNext = " .
                      showsPrec d (getField @"pNext" x) .
                        showString ", " .
                          showString "attachmentInitialSampleLocationsCount = " .
                            showsPrec d (getField @"attachmentInitialSampleLocationsCount" x) .
                              showString ", " .
                                showString "pAttachmentInitialSampleLocations = " .
                                  showsPrec d (getField @"pAttachmentInitialSampleLocations" x) .
                                    showString ", " .
                                      showString "postSubpassSampleLocationsCount = " .
                                        showsPrec d (getField @"postSubpassSampleLocationsCount" x)
                                          .
                                          showString ", " .
                                            showString "pPostSubpassSampleLocations = " .
                                              showsPrec d
                                                (getField @"pPostSubpassSampleLocations" x)
                                                . showChar '}'