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


{-# LANGUAGE DataKinds             #-}
{-# LANGUAGE FlexibleContexts      #-}
{-# LANGUAGE FlexibleInstances     #-}
{-# LANGUAGE MagicHash             #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE PatternSynonyms       #-}
{-# LANGUAGE ScopedTypeVariables   #-}
{-# LANGUAGE Strict                #-}
{-# LANGUAGE TypeApplications      #-}
{-# LANGUAGE TypeFamilies          #-}
{-# LANGUAGE UndecidableInstances  #-}
module Graphics.Vulkan.Types.Struct.Shader
       (VkShaderModuleCreateInfo(..),
        VkShaderModuleValidationCacheCreateInfoEXT(..),
        VkShaderResourceUsageAMD(..), VkShaderStatisticsInfoAMD(..))
       where
import           Foreign.Storable                         (Storable (..))
import           GHC.Base                                 (Addr#, ByteArray#,
                                                           Proxy#,
                                                           byteArrayContents#,
                                                           plusAddr#, proxy#)
import           GHC.TypeLits                             (KnownNat, natVal') -- ' closing tick for hsc2hs
import           Graphics.Vulkan.Marshal
import           Graphics.Vulkan.Marshal.Internal
import           Graphics.Vulkan.Types.Bitmasks           (VkShaderModuleCreateFlags)
import           Graphics.Vulkan.Types.Enum.Shader        (VkShaderStageFlags)
import           Graphics.Vulkan.Types.Enum.StructureType (VkStructureType)
import           Graphics.Vulkan.Types.Handles            (VkValidationCacheEXT)
import           System.IO.Unsafe                         (unsafeDupablePerformIO)

-- | > typedef struct VkShaderModuleCreateInfo {
--   >     VkStructureType sType;
--   >     const void*            pNext;
--   >     VkShaderModuleCreateFlags flags;
--   >     size_t                 codeSize;
--   >     const uint32_t*            pCode;
--   > } VkShaderModuleCreateInfo;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkShaderModuleCreateInfo VkShaderModuleCreateInfo registry at www.khronos.org>
data VkShaderModuleCreateInfo = VkShaderModuleCreateInfo# Addr#
                                                          ByteArray#

instance Eq VkShaderModuleCreateInfo where
        (VkShaderModuleCreateInfo# Addr#
a ByteArray#
_) == :: VkShaderModuleCreateInfo -> VkShaderModuleCreateInfo -> Bool
==
          x :: VkShaderModuleCreateInfo
x@(VkShaderModuleCreateInfo# Addr#
b ByteArray#
_) = Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
== Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkShaderModuleCreateInfo -> Int
forall a. Storable a => a -> Int
sizeOf VkShaderModuleCreateInfo
x) Addr#
a Addr#
b

        {-# INLINE (==) #-}

instance Ord VkShaderModuleCreateInfo where
        (VkShaderModuleCreateInfo# Addr#
a ByteArray#
_) compare :: VkShaderModuleCreateInfo -> VkShaderModuleCreateInfo -> Ordering
`compare`
          x :: VkShaderModuleCreateInfo
x@(VkShaderModuleCreateInfo# Addr#
b ByteArray#
_) = Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkShaderModuleCreateInfo -> Int
forall a. Storable a => a -> Int
sizeOf VkShaderModuleCreateInfo
x) Addr#
a Addr#
b

        {-# INLINE compare #-}

instance Storable VkShaderModuleCreateInfo where
        sizeOf :: VkShaderModuleCreateInfo -> Int
sizeOf ~VkShaderModuleCreateInfo
_ = (Int
40)
{-# LINE 59 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment :: VkShaderModuleCreateInfo -> Int
alignment ~VkShaderModuleCreateInfo
_ = Int
8
{-# LINE 62 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE alignment #-}
        peek :: Ptr VkShaderModuleCreateInfo -> IO VkShaderModuleCreateInfo
peek = Ptr VkShaderModuleCreateInfo -> IO VkShaderModuleCreateInfo
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> IO a
peekVkData#

        {-# INLINE peek #-}
        poke :: Ptr VkShaderModuleCreateInfo -> VkShaderModuleCreateInfo -> IO ()
poke = Ptr VkShaderModuleCreateInfo -> VkShaderModuleCreateInfo -> IO ()
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> a -> IO ()
pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkShaderModuleCreateInfo where
        unsafeAddr :: VkShaderModuleCreateInfo -> Addr#
unsafeAddr (VkShaderModuleCreateInfo# Addr#
a ByteArray#
_) = Addr#
a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray :: VkShaderModuleCreateInfo -> ByteArray#
unsafeByteArray (VkShaderModuleCreateInfo# Addr#
_ ByteArray#
b) = ByteArray#
b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset :: Int# -> ByteArray# -> VkShaderModuleCreateInfo
unsafeFromByteArrayOffset Int#
off ByteArray#
b
          = Addr# -> ByteArray# -> VkShaderModuleCreateInfo
VkShaderModuleCreateInfo# (Addr# -> Int# -> Addr#
plusAddr# (ByteArray# -> Addr#
byteArrayContents# ByteArray#
b) Int#
off)
              ByteArray#
b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkShaderModuleCreateInfo where
        type StructFields VkShaderModuleCreateInfo =
             '["sType", "pNext", "flags", "codeSize", "pCode"] -- ' closing tick for hsc2hs
        type CUnionType VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
        type StructExtends VkShaderModuleCreateInfo = '[] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
0)
{-# LINE 104 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkShaderModuleCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkShaderModuleCreateInfo
-> FieldType "sType" VkShaderModuleCreateInfo
getField VkShaderModuleCreateInfo
x
          = IO VkStructureType -> VkStructureType
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkShaderModuleCreateInfo -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkShaderModuleCreateInfo -> Ptr VkShaderModuleCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkShaderModuleCreateInfo
x) (Int
0))
{-# LINE 111 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkShaderModuleCreateInfo
-> IO (FieldType "sType" VkShaderModuleCreateInfo)
readField Ptr VkShaderModuleCreateInfo
p
          = Ptr VkShaderModuleCreateInfo -> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkShaderModuleCreateInfo
p (Int
0)
{-# LINE 115 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkShaderModuleCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkShaderModuleCreateInfo
-> FieldType "sType" VkShaderModuleCreateInfo -> IO ()
writeField Ptr VkShaderModuleCreateInfo
p
          = Ptr VkShaderModuleCreateInfo -> Int -> VkStructureType -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkShaderModuleCreateInfo
p (Int
0)
{-# LINE 121 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

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

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
8)
{-# LINE 135 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkShaderModuleCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkShaderModuleCreateInfo
-> FieldType "pNext" VkShaderModuleCreateInfo
getField VkShaderModuleCreateInfo
x
          = IO (Ptr Void) -> Ptr Void
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkShaderModuleCreateInfo -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkShaderModuleCreateInfo -> Ptr VkShaderModuleCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkShaderModuleCreateInfo
x) (Int
8))
{-# LINE 142 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkShaderModuleCreateInfo
-> IO (FieldType "pNext" VkShaderModuleCreateInfo)
readField Ptr VkShaderModuleCreateInfo
p
          = Ptr VkShaderModuleCreateInfo -> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkShaderModuleCreateInfo
p (Int
8)
{-# LINE 146 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkShaderModuleCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkShaderModuleCreateInfo
-> FieldType "pNext" VkShaderModuleCreateInfo -> IO ()
writeField Ptr VkShaderModuleCreateInfo
p
          = Ptr VkShaderModuleCreateInfo -> Int -> Ptr Void -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkShaderModuleCreateInfo
p (Int
8)
{-# LINE 152 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

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

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
True

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
16)
{-# LINE 167 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "flags" VkShaderModuleCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkShaderModuleCreateInfo
-> FieldType "flags" VkShaderModuleCreateInfo
getField VkShaderModuleCreateInfo
x
          = IO VkShaderModuleCreateFlags -> VkShaderModuleCreateFlags
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkShaderModuleCreateInfo -> Int -> IO VkShaderModuleCreateFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkShaderModuleCreateInfo -> Ptr VkShaderModuleCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkShaderModuleCreateInfo
x) (Int
16))
{-# LINE 174 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkShaderModuleCreateInfo
-> IO (FieldType "flags" VkShaderModuleCreateInfo)
readField Ptr VkShaderModuleCreateInfo
p
          = Ptr VkShaderModuleCreateInfo -> Int -> IO VkShaderModuleCreateFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkShaderModuleCreateInfo
p (Int
16)
{-# LINE 178 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "flags" VkShaderModuleCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkShaderModuleCreateInfo
-> FieldType "flags" VkShaderModuleCreateInfo -> IO ()
writeField Ptr VkShaderModuleCreateInfo
p
          = Ptr VkShaderModuleCreateInfo
-> Int -> VkShaderModuleCreateFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkShaderModuleCreateInfo
p (Int
16)
{-# LINE 184 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "codeSize" VkShaderModuleCreateInfo where
        type FieldType "codeSize" VkShaderModuleCreateInfo = CSize
        type FieldOptional "codeSize" VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "codeSize" VkShaderModuleCreateInfo =
             (24)
{-# LINE 191 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}
        type FieldIsArray "codeSize" VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
24)
{-# LINE 199 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "codeSize" VkShaderModuleCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkShaderModuleCreateInfo
-> FieldType "codeSize" VkShaderModuleCreateInfo
getField VkShaderModuleCreateInfo
x
          = IO CSize -> CSize
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkShaderModuleCreateInfo -> Int -> IO CSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkShaderModuleCreateInfo -> Ptr VkShaderModuleCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkShaderModuleCreateInfo
x) (Int
24))
{-# LINE 206 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkShaderModuleCreateInfo
-> IO (FieldType "codeSize" VkShaderModuleCreateInfo)
readField Ptr VkShaderModuleCreateInfo
p
          = Ptr VkShaderModuleCreateInfo -> Int -> IO CSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkShaderModuleCreateInfo
p (Int
24)
{-# LINE 210 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "codeSize" VkShaderModuleCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkShaderModuleCreateInfo
-> FieldType "codeSize" VkShaderModuleCreateInfo -> IO ()
writeField Ptr VkShaderModuleCreateInfo
p
          = Ptr VkShaderModuleCreateInfo -> Int -> CSize -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkShaderModuleCreateInfo
p (Int
24)
{-# LINE 216 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "pCode" VkShaderModuleCreateInfo where
        type FieldType "pCode" VkShaderModuleCreateInfo = Ptr Word32
        type FieldOptional "pCode" VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs
        type FieldOffset "pCode" VkShaderModuleCreateInfo =
             (32)
{-# LINE 223 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}
        type FieldIsArray "pCode" VkShaderModuleCreateInfo = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset = (Int
32)
{-# LINE 230 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pCode" VkShaderModuleCreateInfo where
        {-# NOINLINE getField #-}
        getField :: VkShaderModuleCreateInfo
-> FieldType "pCode" VkShaderModuleCreateInfo
getField VkShaderModuleCreateInfo
x
          = IO (Ptr Word32) -> Ptr Word32
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkShaderModuleCreateInfo -> Int -> IO (Ptr Word32)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkShaderModuleCreateInfo -> Ptr VkShaderModuleCreateInfo
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkShaderModuleCreateInfo
x) (Int
32))
{-# LINE 237 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkShaderModuleCreateInfo
-> IO (FieldType "pCode" VkShaderModuleCreateInfo)
readField Ptr VkShaderModuleCreateInfo
p
          = Ptr VkShaderModuleCreateInfo -> Int -> IO (Ptr Word32)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkShaderModuleCreateInfo
p (Int
32)
{-# LINE 241 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pCode" VkShaderModuleCreateInfo where
        {-# INLINE writeField #-}
        writeField :: Ptr VkShaderModuleCreateInfo
-> FieldType "pCode" VkShaderModuleCreateInfo -> IO ()
writeField Ptr VkShaderModuleCreateInfo
p
          = Ptr VkShaderModuleCreateInfo -> Int -> Ptr Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkShaderModuleCreateInfo
p (Int
32)
{-# LINE 247 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance Show VkShaderModuleCreateInfo where
        showsPrec :: Int -> VkShaderModuleCreateInfo -> ShowS
showsPrec Int
d VkShaderModuleCreateInfo
x
          = String -> ShowS
showString String
"VkShaderModuleCreateInfo {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"sType = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkStructureType -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkShaderModuleCreateInfo
-> FieldType "sType" VkShaderModuleCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkShaderModuleCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                  String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                    String -> ShowS
showString String
"pNext = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> Ptr Void -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkShaderModuleCreateInfo
-> FieldType "pNext" VkShaderModuleCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkShaderModuleCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                        String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                          String -> ShowS
showString String
"flags = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkShaderModuleCreateFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkShaderModuleCreateInfo
-> FieldType "flags" VkShaderModuleCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"flags" VkShaderModuleCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                              String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                String -> ShowS
showString String
"codeSize = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                  Int -> CSize -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkShaderModuleCreateInfo
-> FieldType "codeSize" VkShaderModuleCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"codeSize" VkShaderModuleCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                    String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                      String -> ShowS
showString String
"pCode = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                        Int -> Ptr Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkShaderModuleCreateInfo
-> FieldType "pCode" VkShaderModuleCreateInfo
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pCode" VkShaderModuleCreateInfo
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

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

instance Eq VkShaderModuleValidationCacheCreateInfoEXT where
        (VkShaderModuleValidationCacheCreateInfoEXT# Addr#
a ByteArray#
_) == :: VkShaderModuleValidationCacheCreateInfoEXT
-> VkShaderModuleValidationCacheCreateInfoEXT -> Bool
==
          x :: VkShaderModuleValidationCacheCreateInfoEXT
x@(VkShaderModuleValidationCacheCreateInfoEXT# Addr#
b ByteArray#
_)
          = Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
== Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkShaderModuleValidationCacheCreateInfoEXT -> Int
forall a. Storable a => a -> Int
sizeOf VkShaderModuleValidationCacheCreateInfoEXT
x) Addr#
a Addr#
b

        {-# INLINE (==) #-}

instance Ord VkShaderModuleValidationCacheCreateInfoEXT where
        (VkShaderModuleValidationCacheCreateInfoEXT# Addr#
a ByteArray#
_) compare :: VkShaderModuleValidationCacheCreateInfoEXT
-> VkShaderModuleValidationCacheCreateInfoEXT -> Ordering
`compare`
          x :: VkShaderModuleValidationCacheCreateInfoEXT
x@(VkShaderModuleValidationCacheCreateInfoEXT# Addr#
b ByteArray#
_)
          = Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkShaderModuleValidationCacheCreateInfoEXT -> Int
forall a. Storable a => a -> Int
sizeOf VkShaderModuleValidationCacheCreateInfoEXT
x) Addr#
a Addr#
b

        {-# INLINE compare #-}

instance Storable VkShaderModuleValidationCacheCreateInfoEXT where
        sizeOf :: VkShaderModuleValidationCacheCreateInfoEXT -> Int
sizeOf ~VkShaderModuleValidationCacheCreateInfoEXT
_
          = (Int
24)
{-# LINE 293 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment :: VkShaderModuleValidationCacheCreateInfoEXT -> Int
alignment ~VkShaderModuleValidationCacheCreateInfoEXT
_
          = Int
8
{-# LINE 297 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE alignment #-}
        peek :: Ptr VkShaderModuleValidationCacheCreateInfoEXT
-> IO VkShaderModuleValidationCacheCreateInfoEXT
peek = Ptr VkShaderModuleValidationCacheCreateInfoEXT
-> IO VkShaderModuleValidationCacheCreateInfoEXT
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> IO a
peekVkData#

        {-# INLINE peek #-}
        poke :: Ptr VkShaderModuleValidationCacheCreateInfoEXT
-> VkShaderModuleValidationCacheCreateInfoEXT -> IO ()
poke = Ptr VkShaderModuleValidationCacheCreateInfoEXT
-> VkShaderModuleValidationCacheCreateInfoEXT -> IO ()
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> a -> IO ()
pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim
           VkShaderModuleValidationCacheCreateInfoEXT
         where
        unsafeAddr :: VkShaderModuleValidationCacheCreateInfoEXT -> Addr#
unsafeAddr (VkShaderModuleValidationCacheCreateInfoEXT# Addr#
a ByteArray#
_) = Addr#
a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray :: VkShaderModuleValidationCacheCreateInfoEXT -> ByteArray#
unsafeByteArray (VkShaderModuleValidationCacheCreateInfoEXT# Addr#
_ ByteArray#
b)
          = ByteArray#
b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset :: Int# -> ByteArray# -> VkShaderModuleValidationCacheCreateInfoEXT
unsafeFromByteArrayOffset Int#
off ByteArray#
b
          = Addr# -> ByteArray# -> VkShaderModuleValidationCacheCreateInfoEXT
VkShaderModuleValidationCacheCreateInfoEXT#
              (Addr# -> Int# -> Addr#
plusAddr# (ByteArray# -> Addr#
byteArrayContents# ByteArray#
b) Int#
off)
              ByteArray#
b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkShaderModuleValidationCacheCreateInfoEXT
         where
        type StructFields VkShaderModuleValidationCacheCreateInfoEXT =
             '["sType", "pNext", "validationCache"] -- ' closing tick for hsc2hs
        type CUnionType VkShaderModuleValidationCacheCreateInfoEXT = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkShaderModuleValidationCacheCreateInfoEXT =
             'False -- ' closing tick for hsc2hs
        type StructExtends VkShaderModuleValidationCacheCreateInfoEXT =
             '[VkShaderModuleCreateInfo] -- ' closing tick for hsc2hs

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

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
0)
{-# LINE 353 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "sType" VkShaderModuleValidationCacheCreateInfoEXT
         where
        {-# NOINLINE getField #-}
        getField :: VkShaderModuleValidationCacheCreateInfoEXT
-> FieldType "sType" VkShaderModuleValidationCacheCreateInfoEXT
getField VkShaderModuleValidationCacheCreateInfoEXT
x
          = IO VkStructureType -> VkStructureType
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkShaderModuleValidationCacheCreateInfoEXT
-> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkShaderModuleValidationCacheCreateInfoEXT
-> Ptr VkShaderModuleValidationCacheCreateInfoEXT
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkShaderModuleValidationCacheCreateInfoEXT
x) (Int
0))
{-# LINE 361 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkShaderModuleValidationCacheCreateInfoEXT
-> IO
     (FieldType "sType" VkShaderModuleValidationCacheCreateInfoEXT)
readField Ptr VkShaderModuleValidationCacheCreateInfoEXT
p
          = Ptr VkShaderModuleValidationCacheCreateInfoEXT
-> Int -> IO VkStructureType
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkShaderModuleValidationCacheCreateInfoEXT
p (Int
0)
{-# LINE 365 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "sType" VkShaderModuleValidationCacheCreateInfoEXT
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkShaderModuleValidationCacheCreateInfoEXT
-> FieldType "sType" VkShaderModuleValidationCacheCreateInfoEXT
-> IO ()
writeField Ptr VkShaderModuleValidationCacheCreateInfoEXT
p
          = Ptr VkShaderModuleValidationCacheCreateInfoEXT
-> Int -> VkStructureType -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkShaderModuleValidationCacheCreateInfoEXT
p (Int
0)
{-# LINE 372 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

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

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
8)
{-# LINE 393 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "pNext" VkShaderModuleValidationCacheCreateInfoEXT
         where
        {-# NOINLINE getField #-}
        getField :: VkShaderModuleValidationCacheCreateInfoEXT
-> FieldType "pNext" VkShaderModuleValidationCacheCreateInfoEXT
getField VkShaderModuleValidationCacheCreateInfoEXT
x
          = IO (Ptr Void) -> Ptr Void
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkShaderModuleValidationCacheCreateInfoEXT
-> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkShaderModuleValidationCacheCreateInfoEXT
-> Ptr VkShaderModuleValidationCacheCreateInfoEXT
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkShaderModuleValidationCacheCreateInfoEXT
x) (Int
8))
{-# LINE 401 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkShaderModuleValidationCacheCreateInfoEXT
-> IO
     (FieldType "pNext" VkShaderModuleValidationCacheCreateInfoEXT)
readField Ptr VkShaderModuleValidationCacheCreateInfoEXT
p
          = Ptr VkShaderModuleValidationCacheCreateInfoEXT
-> Int -> IO (Ptr Void)
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkShaderModuleValidationCacheCreateInfoEXT
p (Int
8)
{-# LINE 405 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "pNext" VkShaderModuleValidationCacheCreateInfoEXT
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkShaderModuleValidationCacheCreateInfoEXT
-> FieldType "pNext" VkShaderModuleValidationCacheCreateInfoEXT
-> IO ()
writeField Ptr VkShaderModuleValidationCacheCreateInfoEXT
p
          = Ptr VkShaderModuleValidationCacheCreateInfoEXT
-> Int -> Ptr Void -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkShaderModuleValidationCacheCreateInfoEXT
p (Int
8)
{-# LINE 412 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "validationCache"
           VkShaderModuleValidationCacheCreateInfoEXT
         where
        type FieldType "validationCache"
               VkShaderModuleValidationCacheCreateInfoEXT
             = VkValidationCacheEXT
        type FieldOptional "validationCache"
               VkShaderModuleValidationCacheCreateInfoEXT
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "validationCache"
               VkShaderModuleValidationCacheCreateInfoEXT
             =
             (16)
{-# LINE 427 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}
        type FieldIsArray "validationCache"
               VkShaderModuleValidationCacheCreateInfoEXT
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
16)
{-# LINE 437 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "validationCache"
           VkShaderModuleValidationCacheCreateInfoEXT
         where
        {-# NOINLINE getField #-}
        getField :: VkShaderModuleValidationCacheCreateInfoEXT
-> FieldType
     "validationCache" VkShaderModuleValidationCacheCreateInfoEXT
getField VkShaderModuleValidationCacheCreateInfoEXT
x
          = IO VkValidationCacheEXT -> VkValidationCacheEXT
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkShaderModuleValidationCacheCreateInfoEXT
-> Int -> IO VkValidationCacheEXT
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkShaderModuleValidationCacheCreateInfoEXT
-> Ptr VkShaderModuleValidationCacheCreateInfoEXT
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkShaderModuleValidationCacheCreateInfoEXT
x) (Int
16))
{-# LINE 446 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkShaderModuleValidationCacheCreateInfoEXT
-> IO
     (FieldType
        "validationCache" VkShaderModuleValidationCacheCreateInfoEXT)
readField Ptr VkShaderModuleValidationCacheCreateInfoEXT
p
          = Ptr VkShaderModuleValidationCacheCreateInfoEXT
-> Int -> IO VkValidationCacheEXT
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkShaderModuleValidationCacheCreateInfoEXT
p (Int
16)
{-# LINE 450 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "validationCache"
           VkShaderModuleValidationCacheCreateInfoEXT
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkShaderModuleValidationCacheCreateInfoEXT
-> FieldType
     "validationCache" VkShaderModuleValidationCacheCreateInfoEXT
-> IO ()
writeField Ptr VkShaderModuleValidationCacheCreateInfoEXT
p
          = Ptr VkShaderModuleValidationCacheCreateInfoEXT
-> Int -> VkValidationCacheEXT -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkShaderModuleValidationCacheCreateInfoEXT
p (Int
16)
{-# LINE 458 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance Show VkShaderModuleValidationCacheCreateInfoEXT where
        showsPrec :: Int -> VkShaderModuleValidationCacheCreateInfoEXT -> ShowS
showsPrec Int
d VkShaderModuleValidationCacheCreateInfoEXT
x
          = String -> ShowS
showString String
"VkShaderModuleValidationCacheCreateInfoEXT {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"sType = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkStructureType -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkShaderModuleValidationCacheCreateInfoEXT
-> FieldType "sType" VkShaderModuleValidationCacheCreateInfoEXT
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"sType" VkShaderModuleValidationCacheCreateInfoEXT
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                  String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                    String -> ShowS
showString String
"pNext = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> Ptr Void -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkShaderModuleValidationCacheCreateInfoEXT
-> FieldType "pNext" VkShaderModuleValidationCacheCreateInfoEXT
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"pNext" VkShaderModuleValidationCacheCreateInfoEXT
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                        String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                          String -> ShowS
showString String
"validationCache = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> VkValidationCacheEXT -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkShaderModuleValidationCacheCreateInfoEXT
-> FieldType
     "validationCache" VkShaderModuleValidationCacheCreateInfoEXT
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"validationCache" VkShaderModuleValidationCacheCreateInfoEXT
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'

-- | > typedef struct VkShaderResourceUsageAMD {
--   >     uint32_t numUsedVgprs;
--   >     uint32_t numUsedSgprs;
--   >     uint32_t ldsSizePerLocalWorkGroup;
--   >     size_t ldsUsageSizeInBytes;
--   >     size_t scratchMemUsageInBytes;
--   > } VkShaderResourceUsageAMD;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkShaderResourceUsageAMD VkShaderResourceUsageAMD registry at www.khronos.org>
data VkShaderResourceUsageAMD = VkShaderResourceUsageAMD# Addr#
                                                          ByteArray#

instance Eq VkShaderResourceUsageAMD where
        (VkShaderResourceUsageAMD# Addr#
a ByteArray#
_) == :: VkShaderResourceUsageAMD -> VkShaderResourceUsageAMD -> Bool
==
          x :: VkShaderResourceUsageAMD
x@(VkShaderResourceUsageAMD# Addr#
b ByteArray#
_) = Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
== Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkShaderResourceUsageAMD -> Int
forall a. Storable a => a -> Int
sizeOf VkShaderResourceUsageAMD
x) Addr#
a Addr#
b

        {-# INLINE (==) #-}

instance Ord VkShaderResourceUsageAMD where
        (VkShaderResourceUsageAMD# Addr#
a ByteArray#
_) compare :: VkShaderResourceUsageAMD -> VkShaderResourceUsageAMD -> Ordering
`compare`
          x :: VkShaderResourceUsageAMD
x@(VkShaderResourceUsageAMD# Addr#
b ByteArray#
_) = Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkShaderResourceUsageAMD -> Int
forall a. Storable a => a -> Int
sizeOf VkShaderResourceUsageAMD
x) Addr#
a Addr#
b

        {-# INLINE compare #-}

instance Storable VkShaderResourceUsageAMD where
        sizeOf :: VkShaderResourceUsageAMD -> Int
sizeOf ~VkShaderResourceUsageAMD
_ = (Int
32)
{-# LINE 497 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment :: VkShaderResourceUsageAMD -> Int
alignment ~VkShaderResourceUsageAMD
_ = Int
8
{-# LINE 500 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE alignment #-}
        peek :: Ptr VkShaderResourceUsageAMD -> IO VkShaderResourceUsageAMD
peek = Ptr VkShaderResourceUsageAMD -> IO VkShaderResourceUsageAMD
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> IO a
peekVkData#

        {-# INLINE peek #-}
        poke :: Ptr VkShaderResourceUsageAMD -> VkShaderResourceUsageAMD -> IO ()
poke = Ptr VkShaderResourceUsageAMD -> VkShaderResourceUsageAMD -> IO ()
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> a -> IO ()
pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkShaderResourceUsageAMD where
        unsafeAddr :: VkShaderResourceUsageAMD -> Addr#
unsafeAddr (VkShaderResourceUsageAMD# Addr#
a ByteArray#
_) = Addr#
a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray :: VkShaderResourceUsageAMD -> ByteArray#
unsafeByteArray (VkShaderResourceUsageAMD# Addr#
_ ByteArray#
b) = ByteArray#
b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset :: Int# -> ByteArray# -> VkShaderResourceUsageAMD
unsafeFromByteArrayOffset Int#
off ByteArray#
b
          = Addr# -> ByteArray# -> VkShaderResourceUsageAMD
VkShaderResourceUsageAMD# (Addr# -> Int# -> Addr#
plusAddr# (ByteArray# -> Addr#
byteArrayContents# ByteArray#
b) Int#
off)
              ByteArray#
b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkShaderResourceUsageAMD where
        type StructFields VkShaderResourceUsageAMD =
             '["numUsedVgprs", "numUsedSgprs", "ldsSizePerLocalWorkGroup", -- ' closing tick for hsc2hs
               "ldsUsageSizeInBytes", "scratchMemUsageInBytes"]
        type CUnionType VkShaderResourceUsageAMD = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkShaderResourceUsageAMD = 'True -- ' closing tick for hsc2hs
        type StructExtends VkShaderResourceUsageAMD = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         HasField "numUsedVgprs" VkShaderResourceUsageAMD where
        type FieldType "numUsedVgprs" VkShaderResourceUsageAMD = Word32
        type FieldOptional "numUsedVgprs" VkShaderResourceUsageAMD = 'False -- ' closing tick for hsc2hs
        type FieldOffset "numUsedVgprs" VkShaderResourceUsageAMD =
             (0)
{-# LINE 536 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}
        type FieldIsArray "numUsedVgprs" VkShaderResourceUsageAMD = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
0)
{-# LINE 544 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "numUsedVgprs" VkShaderResourceUsageAMD where
        {-# NOINLINE getField #-}
        getField :: VkShaderResourceUsageAMD
-> FieldType "numUsedVgprs" VkShaderResourceUsageAMD
getField VkShaderResourceUsageAMD
x
          = IO Word32 -> Word32
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkShaderResourceUsageAMD -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkShaderResourceUsageAMD -> Ptr VkShaderResourceUsageAMD
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkShaderResourceUsageAMD
x) (Int
0))
{-# LINE 551 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkShaderResourceUsageAMD
-> IO (FieldType "numUsedVgprs" VkShaderResourceUsageAMD)
readField Ptr VkShaderResourceUsageAMD
p
          = Ptr VkShaderResourceUsageAMD -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkShaderResourceUsageAMD
p (Int
0)
{-# LINE 555 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "numUsedVgprs" VkShaderResourceUsageAMD where
        {-# INLINE writeField #-}
        writeField :: Ptr VkShaderResourceUsageAMD
-> FieldType "numUsedVgprs" VkShaderResourceUsageAMD -> IO ()
writeField Ptr VkShaderResourceUsageAMD
p
          = Ptr VkShaderResourceUsageAMD -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkShaderResourceUsageAMD
p (Int
0)
{-# LINE 561 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "numUsedSgprs" VkShaderResourceUsageAMD where
        type FieldType "numUsedSgprs" VkShaderResourceUsageAMD = Word32
        type FieldOptional "numUsedSgprs" VkShaderResourceUsageAMD = 'False -- ' closing tick for hsc2hs
        type FieldOffset "numUsedSgprs" VkShaderResourceUsageAMD =
             (4)
{-# LINE 568 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}
        type FieldIsArray "numUsedSgprs" VkShaderResourceUsageAMD = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
4)
{-# LINE 576 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "numUsedSgprs" VkShaderResourceUsageAMD where
        {-# NOINLINE getField #-}
        getField :: VkShaderResourceUsageAMD
-> FieldType "numUsedSgprs" VkShaderResourceUsageAMD
getField VkShaderResourceUsageAMD
x
          = IO Word32 -> Word32
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkShaderResourceUsageAMD -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkShaderResourceUsageAMD -> Ptr VkShaderResourceUsageAMD
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkShaderResourceUsageAMD
x) (Int
4))
{-# LINE 583 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkShaderResourceUsageAMD
-> IO (FieldType "numUsedSgprs" VkShaderResourceUsageAMD)
readField Ptr VkShaderResourceUsageAMD
p
          = Ptr VkShaderResourceUsageAMD -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkShaderResourceUsageAMD
p (Int
4)
{-# LINE 587 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "numUsedSgprs" VkShaderResourceUsageAMD where
        {-# INLINE writeField #-}
        writeField :: Ptr VkShaderResourceUsageAMD
-> FieldType "numUsedSgprs" VkShaderResourceUsageAMD -> IO ()
writeField Ptr VkShaderResourceUsageAMD
p
          = Ptr VkShaderResourceUsageAMD -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkShaderResourceUsageAMD
p (Int
4)
{-# LINE 593 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "ldsSizePerLocalWorkGroup" VkShaderResourceUsageAMD where
        type FieldType "ldsSizePerLocalWorkGroup" VkShaderResourceUsageAMD
             = Word32
        type FieldOptional "ldsSizePerLocalWorkGroup"
               VkShaderResourceUsageAMD
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "ldsSizePerLocalWorkGroup"
               VkShaderResourceUsageAMD
             =
             (8)
{-# LINE 605 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}
        type FieldIsArray "ldsSizePerLocalWorkGroup"
               VkShaderResourceUsageAMD
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
8)
{-# LINE 615 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "ldsSizePerLocalWorkGroup" VkShaderResourceUsageAMD
         where
        {-# NOINLINE getField #-}
        getField :: VkShaderResourceUsageAMD
-> FieldType "ldsSizePerLocalWorkGroup" VkShaderResourceUsageAMD
getField VkShaderResourceUsageAMD
x
          = IO Word32 -> Word32
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkShaderResourceUsageAMD -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkShaderResourceUsageAMD -> Ptr VkShaderResourceUsageAMD
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkShaderResourceUsageAMD
x) (Int
8))
{-# LINE 623 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkShaderResourceUsageAMD
-> IO
     (FieldType "ldsSizePerLocalWorkGroup" VkShaderResourceUsageAMD)
readField Ptr VkShaderResourceUsageAMD
p
          = Ptr VkShaderResourceUsageAMD -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkShaderResourceUsageAMD
p (Int
8)
{-# LINE 627 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "ldsSizePerLocalWorkGroup" VkShaderResourceUsageAMD
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkShaderResourceUsageAMD
-> FieldType "ldsSizePerLocalWorkGroup" VkShaderResourceUsageAMD
-> IO ()
writeField Ptr VkShaderResourceUsageAMD
p
          = Ptr VkShaderResourceUsageAMD -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkShaderResourceUsageAMD
p (Int
8)
{-# LINE 634 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "ldsUsageSizeInBytes" VkShaderResourceUsageAMD where
        type FieldType "ldsUsageSizeInBytes" VkShaderResourceUsageAMD =
             CSize
        type FieldOptional "ldsUsageSizeInBytes" VkShaderResourceUsageAMD =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "ldsUsageSizeInBytes" VkShaderResourceUsageAMD =
             (16)
{-# LINE 643 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}
        type FieldIsArray "ldsUsageSizeInBytes" VkShaderResourceUsageAMD =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
16)
{-# LINE 652 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "ldsUsageSizeInBytes" VkShaderResourceUsageAMD where
        {-# NOINLINE getField #-}
        getField :: VkShaderResourceUsageAMD
-> FieldType "ldsUsageSizeInBytes" VkShaderResourceUsageAMD
getField VkShaderResourceUsageAMD
x
          = IO CSize -> CSize
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkShaderResourceUsageAMD -> Int -> IO CSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkShaderResourceUsageAMD -> Ptr VkShaderResourceUsageAMD
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkShaderResourceUsageAMD
x) (Int
16))
{-# LINE 659 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkShaderResourceUsageAMD
-> IO (FieldType "ldsUsageSizeInBytes" VkShaderResourceUsageAMD)
readField Ptr VkShaderResourceUsageAMD
p
          = Ptr VkShaderResourceUsageAMD -> Int -> IO CSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkShaderResourceUsageAMD
p (Int
16)
{-# LINE 663 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "ldsUsageSizeInBytes" VkShaderResourceUsageAMD where
        {-# INLINE writeField #-}
        writeField :: Ptr VkShaderResourceUsageAMD
-> FieldType "ldsUsageSizeInBytes" VkShaderResourceUsageAMD
-> IO ()
writeField Ptr VkShaderResourceUsageAMD
p
          = Ptr VkShaderResourceUsageAMD -> Int -> CSize -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkShaderResourceUsageAMD
p (Int
16)
{-# LINE 669 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "scratchMemUsageInBytes" VkShaderResourceUsageAMD where
        type FieldType "scratchMemUsageInBytes" VkShaderResourceUsageAMD =
             CSize
        type FieldOptional "scratchMemUsageInBytes"
               VkShaderResourceUsageAMD
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "scratchMemUsageInBytes" VkShaderResourceUsageAMD
             =
             (24)
{-# LINE 680 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}
        type FieldIsArray "scratchMemUsageInBytes" VkShaderResourceUsageAMD
             = 'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
24)
{-# LINE 689 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "scratchMemUsageInBytes" VkShaderResourceUsageAMD
         where
        {-# NOINLINE getField #-}
        getField :: VkShaderResourceUsageAMD
-> FieldType "scratchMemUsageInBytes" VkShaderResourceUsageAMD
getField VkShaderResourceUsageAMD
x
          = IO CSize -> CSize
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkShaderResourceUsageAMD -> Int -> IO CSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkShaderResourceUsageAMD -> Ptr VkShaderResourceUsageAMD
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkShaderResourceUsageAMD
x) (Int
24))
{-# LINE 697 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkShaderResourceUsageAMD
-> IO (FieldType "scratchMemUsageInBytes" VkShaderResourceUsageAMD)
readField Ptr VkShaderResourceUsageAMD
p
          = Ptr VkShaderResourceUsageAMD -> Int -> IO CSize
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkShaderResourceUsageAMD
p (Int
24)
{-# LINE 701 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "scratchMemUsageInBytes" VkShaderResourceUsageAMD
         where
        {-# INLINE writeField #-}
        writeField :: Ptr VkShaderResourceUsageAMD
-> FieldType "scratchMemUsageInBytes" VkShaderResourceUsageAMD
-> IO ()
writeField Ptr VkShaderResourceUsageAMD
p
          = Ptr VkShaderResourceUsageAMD -> Int -> CSize -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkShaderResourceUsageAMD
p (Int
24)
{-# LINE 708 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance Show VkShaderResourceUsageAMD where
        showsPrec :: Int -> VkShaderResourceUsageAMD -> ShowS
showsPrec Int
d VkShaderResourceUsageAMD
x
          = String -> ShowS
showString String
"VkShaderResourceUsageAMD {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"numUsedVgprs = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkShaderResourceUsageAMD
-> FieldType "numUsedVgprs" VkShaderResourceUsageAMD
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"numUsedVgprs" VkShaderResourceUsageAMD
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                  String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                    String -> ShowS
showString String
"numUsedSgprs = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkShaderResourceUsageAMD
-> FieldType "numUsedSgprs" VkShaderResourceUsageAMD
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"numUsedSgprs" VkShaderResourceUsageAMD
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                        String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                          String -> ShowS
showString String
"ldsSizePerLocalWorkGroup = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkShaderResourceUsageAMD
-> FieldType "ldsSizePerLocalWorkGroup" VkShaderResourceUsageAMD
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"ldsSizePerLocalWorkGroup" VkShaderResourceUsageAMD
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                              String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                String -> ShowS
showString String
"ldsUsageSizeInBytes = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                  Int -> CSize -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkShaderResourceUsageAMD
-> FieldType "ldsUsageSizeInBytes" VkShaderResourceUsageAMD
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"ldsUsageSizeInBytes" VkShaderResourceUsageAMD
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                    String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                      String -> ShowS
showString String
"scratchMemUsageInBytes = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                        Int -> CSize -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkShaderResourceUsageAMD
-> FieldType "scratchMemUsageInBytes" VkShaderResourceUsageAMD
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"scratchMemUsageInBytes" VkShaderResourceUsageAMD
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                          Char -> ShowS
showChar Char
'}'

-- | > typedef struct VkShaderStatisticsInfoAMD {
--   >     VkShaderStageFlags shaderStageMask;
--   >     VkShaderResourceUsageAMD resourceUsage;
--   >     uint32_t numPhysicalVgprs;
--   >     uint32_t numPhysicalSgprs;
--   >     uint32_t numAvailableVgprs;
--   >     uint32_t numAvailableSgprs;
--   >     uint32_t computeWorkGroupSize[3];
--   > } VkShaderStatisticsInfoAMD;
--
--   <https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VkShaderStatisticsInfoAMD VkShaderStatisticsInfoAMD registry at www.khronos.org>
data VkShaderStatisticsInfoAMD = VkShaderStatisticsInfoAMD# Addr#
                                                            ByteArray#

instance Eq VkShaderStatisticsInfoAMD where
        (VkShaderStatisticsInfoAMD# Addr#
a ByteArray#
_) == :: VkShaderStatisticsInfoAMD -> VkShaderStatisticsInfoAMD -> Bool
==
          x :: VkShaderStatisticsInfoAMD
x@(VkShaderStatisticsInfoAMD# Addr#
b ByteArray#
_) = Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
== Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkShaderStatisticsInfoAMD -> Int
forall a. Storable a => a -> Int
sizeOf VkShaderStatisticsInfoAMD
x) Addr#
a Addr#
b

        {-# INLINE (==) #-}

instance Ord VkShaderStatisticsInfoAMD where
        (VkShaderStatisticsInfoAMD# Addr#
a ByteArray#
_) compare :: VkShaderStatisticsInfoAMD -> VkShaderStatisticsInfoAMD -> Ordering
`compare`
          x :: VkShaderStatisticsInfoAMD
x@(VkShaderStatisticsInfoAMD# Addr#
b ByteArray#
_) = Int -> Addr# -> Addr# -> Ordering
cmpBytes# (VkShaderStatisticsInfoAMD -> Int
forall a. Storable a => a -> Int
sizeOf VkShaderStatisticsInfoAMD
x) Addr#
a Addr#
b

        {-# INLINE compare #-}

instance Storable VkShaderStatisticsInfoAMD where
        sizeOf :: VkShaderStatisticsInfoAMD -> Int
sizeOf ~VkShaderStatisticsInfoAMD
_ = (Int
72)
{-# LINE 756 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE sizeOf #-}
        alignment :: VkShaderStatisticsInfoAMD -> Int
alignment ~VkShaderStatisticsInfoAMD
_ = Int
8
{-# LINE 759 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE alignment #-}
        peek :: Ptr VkShaderStatisticsInfoAMD -> IO VkShaderStatisticsInfoAMD
peek = Ptr VkShaderStatisticsInfoAMD -> IO VkShaderStatisticsInfoAMD
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> IO a
peekVkData#

        {-# INLINE peek #-}
        poke :: Ptr VkShaderStatisticsInfoAMD -> VkShaderStatisticsInfoAMD -> IO ()
poke = Ptr VkShaderStatisticsInfoAMD -> VkShaderStatisticsInfoAMD -> IO ()
forall a. (Storable a, VulkanMarshalPrim a) => Ptr a -> a -> IO ()
pokeVkData#

        {-# INLINE poke #-}

instance VulkanMarshalPrim VkShaderStatisticsInfoAMD where
        unsafeAddr :: VkShaderStatisticsInfoAMD -> Addr#
unsafeAddr (VkShaderStatisticsInfoAMD# Addr#
a ByteArray#
_) = Addr#
a

        {-# INLINE unsafeAddr #-}
        unsafeByteArray :: VkShaderStatisticsInfoAMD -> ByteArray#
unsafeByteArray (VkShaderStatisticsInfoAMD# Addr#
_ ByteArray#
b) = ByteArray#
b

        {-# INLINE unsafeByteArray #-}
        unsafeFromByteArrayOffset :: Int# -> ByteArray# -> VkShaderStatisticsInfoAMD
unsafeFromByteArrayOffset Int#
off ByteArray#
b
          = Addr# -> ByteArray# -> VkShaderStatisticsInfoAMD
VkShaderStatisticsInfoAMD# (Addr# -> Int# -> Addr#
plusAddr# (ByteArray# -> Addr#
byteArrayContents# ByteArray#
b) Int#
off)
              ByteArray#
b

        {-# INLINE unsafeFromByteArrayOffset #-}

instance VulkanMarshal VkShaderStatisticsInfoAMD where
        type StructFields VkShaderStatisticsInfoAMD =
             '["shaderStageMask", "resourceUsage", "numPhysicalVgprs", -- ' closing tick for hsc2hs
               "numPhysicalSgprs", "numAvailableVgprs", "numAvailableSgprs",
               "computeWorkGroupSize"]
        type CUnionType VkShaderStatisticsInfoAMD = 'False -- ' closing tick for hsc2hs
        type ReturnedOnly VkShaderStatisticsInfoAMD = 'True -- ' closing tick for hsc2hs
        type StructExtends VkShaderStatisticsInfoAMD = '[] -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         HasField "shaderStageMask" VkShaderStatisticsInfoAMD where
        type FieldType "shaderStageMask" VkShaderStatisticsInfoAMD =
             VkShaderStageFlags
        type FieldOptional "shaderStageMask" VkShaderStatisticsInfoAMD =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "shaderStageMask" VkShaderStatisticsInfoAMD =
             (0)
{-# LINE 798 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}
        type FieldIsArray "shaderStageMask" VkShaderStatisticsInfoAMD =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
0)
{-# LINE 807 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "shaderStageMask" VkShaderStatisticsInfoAMD where
        {-# NOINLINE getField #-}
        getField :: VkShaderStatisticsInfoAMD
-> FieldType "shaderStageMask" VkShaderStatisticsInfoAMD
getField VkShaderStatisticsInfoAMD
x
          = IO VkShaderStageFlags -> VkShaderStageFlags
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkShaderStatisticsInfoAMD -> Int -> IO VkShaderStageFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkShaderStatisticsInfoAMD -> Ptr VkShaderStatisticsInfoAMD
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkShaderStatisticsInfoAMD
x) (Int
0))
{-# LINE 814 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkShaderStatisticsInfoAMD
-> IO (FieldType "shaderStageMask" VkShaderStatisticsInfoAMD)
readField Ptr VkShaderStatisticsInfoAMD
p
          = Ptr VkShaderStatisticsInfoAMD -> Int -> IO VkShaderStageFlags
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkShaderStatisticsInfoAMD
p (Int
0)
{-# LINE 818 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "shaderStageMask" VkShaderStatisticsInfoAMD where
        {-# INLINE writeField #-}
        writeField :: Ptr VkShaderStatisticsInfoAMD
-> FieldType "shaderStageMask" VkShaderStatisticsInfoAMD -> IO ()
writeField Ptr VkShaderStatisticsInfoAMD
p
          = Ptr VkShaderStatisticsInfoAMD -> Int -> VkShaderStageFlags -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkShaderStatisticsInfoAMD
p (Int
0)
{-# LINE 824 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "resourceUsage" VkShaderStatisticsInfoAMD where
        type FieldType "resourceUsage" VkShaderStatisticsInfoAMD =
             VkShaderResourceUsageAMD
        type FieldOptional "resourceUsage" VkShaderStatisticsInfoAMD =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "resourceUsage" VkShaderStatisticsInfoAMD =
             (8)
{-# LINE 833 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}
        type FieldIsArray "resourceUsage" VkShaderStatisticsInfoAMD =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
8)
{-# LINE 842 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "resourceUsage" VkShaderStatisticsInfoAMD where
        {-# NOINLINE getField #-}
        getField :: VkShaderStatisticsInfoAMD
-> FieldType "resourceUsage" VkShaderStatisticsInfoAMD
getField VkShaderStatisticsInfoAMD
x
          = IO VkShaderResourceUsageAMD -> VkShaderResourceUsageAMD
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkShaderStatisticsInfoAMD -> Int -> IO VkShaderResourceUsageAMD
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkShaderStatisticsInfoAMD -> Ptr VkShaderStatisticsInfoAMD
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkShaderStatisticsInfoAMD
x) (Int
8))
{-# LINE 849 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkShaderStatisticsInfoAMD
-> IO (FieldType "resourceUsage" VkShaderStatisticsInfoAMD)
readField Ptr VkShaderStatisticsInfoAMD
p
          = Ptr VkShaderStatisticsInfoAMD -> Int -> IO VkShaderResourceUsageAMD
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkShaderStatisticsInfoAMD
p (Int
8)
{-# LINE 853 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "resourceUsage" VkShaderStatisticsInfoAMD where
        {-# INLINE writeField #-}
        writeField :: Ptr VkShaderStatisticsInfoAMD
-> FieldType "resourceUsage" VkShaderStatisticsInfoAMD -> IO ()
writeField Ptr VkShaderStatisticsInfoAMD
p
          = Ptr VkShaderStatisticsInfoAMD
-> Int -> VkShaderResourceUsageAMD -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkShaderStatisticsInfoAMD
p (Int
8)
{-# LINE 859 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "numPhysicalVgprs" VkShaderStatisticsInfoAMD where
        type FieldType "numPhysicalVgprs" VkShaderStatisticsInfoAMD =
             Word32
        type FieldOptional "numPhysicalVgprs" VkShaderStatisticsInfoAMD =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "numPhysicalVgprs" VkShaderStatisticsInfoAMD =
             (40)
{-# LINE 868 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}
        type FieldIsArray "numPhysicalVgprs" VkShaderStatisticsInfoAMD =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
40)
{-# LINE 877 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "numPhysicalVgprs" VkShaderStatisticsInfoAMD where
        {-# NOINLINE getField #-}
        getField :: VkShaderStatisticsInfoAMD
-> FieldType "numPhysicalVgprs" VkShaderStatisticsInfoAMD
getField VkShaderStatisticsInfoAMD
x
          = IO Word32 -> Word32
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkShaderStatisticsInfoAMD -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkShaderStatisticsInfoAMD -> Ptr VkShaderStatisticsInfoAMD
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkShaderStatisticsInfoAMD
x) (Int
40))
{-# LINE 884 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkShaderStatisticsInfoAMD
-> IO (FieldType "numPhysicalVgprs" VkShaderStatisticsInfoAMD)
readField Ptr VkShaderStatisticsInfoAMD
p
          = Ptr VkShaderStatisticsInfoAMD -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkShaderStatisticsInfoAMD
p (Int
40)
{-# LINE 888 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "numPhysicalVgprs" VkShaderStatisticsInfoAMD where
        {-# INLINE writeField #-}
        writeField :: Ptr VkShaderStatisticsInfoAMD
-> FieldType "numPhysicalVgprs" VkShaderStatisticsInfoAMD -> IO ()
writeField Ptr VkShaderStatisticsInfoAMD
p
          = Ptr VkShaderStatisticsInfoAMD -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkShaderStatisticsInfoAMD
p (Int
40)
{-# LINE 894 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "numPhysicalSgprs" VkShaderStatisticsInfoAMD where
        type FieldType "numPhysicalSgprs" VkShaderStatisticsInfoAMD =
             Word32
        type FieldOptional "numPhysicalSgprs" VkShaderStatisticsInfoAMD =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "numPhysicalSgprs" VkShaderStatisticsInfoAMD =
             (44)
{-# LINE 903 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}
        type FieldIsArray "numPhysicalSgprs" VkShaderStatisticsInfoAMD =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
44)
{-# LINE 912 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "numPhysicalSgprs" VkShaderStatisticsInfoAMD where
        {-# NOINLINE getField #-}
        getField :: VkShaderStatisticsInfoAMD
-> FieldType "numPhysicalSgprs" VkShaderStatisticsInfoAMD
getField VkShaderStatisticsInfoAMD
x
          = IO Word32 -> Word32
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkShaderStatisticsInfoAMD -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkShaderStatisticsInfoAMD -> Ptr VkShaderStatisticsInfoAMD
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkShaderStatisticsInfoAMD
x) (Int
44))
{-# LINE 919 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkShaderStatisticsInfoAMD
-> IO (FieldType "numPhysicalSgprs" VkShaderStatisticsInfoAMD)
readField Ptr VkShaderStatisticsInfoAMD
p
          = Ptr VkShaderStatisticsInfoAMD -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkShaderStatisticsInfoAMD
p (Int
44)
{-# LINE 923 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "numPhysicalSgprs" VkShaderStatisticsInfoAMD where
        {-# INLINE writeField #-}
        writeField :: Ptr VkShaderStatisticsInfoAMD
-> FieldType "numPhysicalSgprs" VkShaderStatisticsInfoAMD -> IO ()
writeField Ptr VkShaderStatisticsInfoAMD
p
          = Ptr VkShaderStatisticsInfoAMD -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkShaderStatisticsInfoAMD
p (Int
44)
{-# LINE 929 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "numAvailableVgprs" VkShaderStatisticsInfoAMD where
        type FieldType "numAvailableVgprs" VkShaderStatisticsInfoAMD =
             Word32
        type FieldOptional "numAvailableVgprs" VkShaderStatisticsInfoAMD =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "numAvailableVgprs" VkShaderStatisticsInfoAMD =
             (48)
{-# LINE 938 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}
        type FieldIsArray "numAvailableVgprs" VkShaderStatisticsInfoAMD =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
48)
{-# LINE 947 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "numAvailableVgprs" VkShaderStatisticsInfoAMD where
        {-# NOINLINE getField #-}
        getField :: VkShaderStatisticsInfoAMD
-> FieldType "numAvailableVgprs" VkShaderStatisticsInfoAMD
getField VkShaderStatisticsInfoAMD
x
          = IO Word32 -> Word32
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkShaderStatisticsInfoAMD -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkShaderStatisticsInfoAMD -> Ptr VkShaderStatisticsInfoAMD
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkShaderStatisticsInfoAMD
x) (Int
48))
{-# LINE 954 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkShaderStatisticsInfoAMD
-> IO (FieldType "numAvailableVgprs" VkShaderStatisticsInfoAMD)
readField Ptr VkShaderStatisticsInfoAMD
p
          = Ptr VkShaderStatisticsInfoAMD -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkShaderStatisticsInfoAMD
p (Int
48)
{-# LINE 958 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "numAvailableVgprs" VkShaderStatisticsInfoAMD where
        {-# INLINE writeField #-}
        writeField :: Ptr VkShaderStatisticsInfoAMD
-> FieldType "numAvailableVgprs" VkShaderStatisticsInfoAMD -> IO ()
writeField Ptr VkShaderStatisticsInfoAMD
p
          = Ptr VkShaderStatisticsInfoAMD -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkShaderStatisticsInfoAMD
p (Int
48)
{-# LINE 964 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "numAvailableSgprs" VkShaderStatisticsInfoAMD where
        type FieldType "numAvailableSgprs" VkShaderStatisticsInfoAMD =
             Word32
        type FieldOptional "numAvailableSgprs" VkShaderStatisticsInfoAMD =
             'False -- ' closing tick for hsc2hs
        type FieldOffset "numAvailableSgprs" VkShaderStatisticsInfoAMD =
             (52)
{-# LINE 973 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}
        type FieldIsArray "numAvailableSgprs" VkShaderStatisticsInfoAMD =
             'False -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
52)
{-# LINE 982 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanReadField "numAvailableSgprs" VkShaderStatisticsInfoAMD where
        {-# NOINLINE getField #-}
        getField :: VkShaderStatisticsInfoAMD
-> FieldType "numAvailableSgprs" VkShaderStatisticsInfoAMD
getField VkShaderStatisticsInfoAMD
x
          = IO Word32 -> Word32
forall a. IO a -> a
unsafeDupablePerformIO
              (Ptr VkShaderStatisticsInfoAMD -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkShaderStatisticsInfoAMD -> Ptr VkShaderStatisticsInfoAMD
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkShaderStatisticsInfoAMD
x) (Int
52))
{-# LINE 989 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

        {-# INLINE readField #-}
        readField :: Ptr VkShaderStatisticsInfoAMD
-> IO (FieldType "numAvailableSgprs" VkShaderStatisticsInfoAMD)
readField Ptr VkShaderStatisticsInfoAMD
p
          = Ptr VkShaderStatisticsInfoAMD -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkShaderStatisticsInfoAMD
p (Int
52)
{-# LINE 993 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         CanWriteField "numAvailableSgprs" VkShaderStatisticsInfoAMD where
        {-# INLINE writeField #-}
        writeField :: Ptr VkShaderStatisticsInfoAMD
-> FieldType "numAvailableSgprs" VkShaderStatisticsInfoAMD -> IO ()
writeField Ptr VkShaderStatisticsInfoAMD
p
          = Ptr VkShaderStatisticsInfoAMD -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkShaderStatisticsInfoAMD
p (Int
52)
{-# LINE 999 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         HasField "computeWorkGroupSize" VkShaderStatisticsInfoAMD where
        type FieldType "computeWorkGroupSize" VkShaderStatisticsInfoAMD =
             Word32
        type FieldOptional "computeWorkGroupSize" VkShaderStatisticsInfoAMD
             = 'False -- ' closing tick for hsc2hs
        type FieldOffset "computeWorkGroupSize" VkShaderStatisticsInfoAMD =
             (56)
{-# LINE 1008 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}
        type FieldIsArray "computeWorkGroupSize" VkShaderStatisticsInfoAMD
             = 'True -- ' closing tick for hsc2hs

        {-# INLINE fieldOptional #-}
        fieldOptional :: Bool
fieldOptional = Bool
False

        {-# INLINE fieldOffset #-}
        fieldOffset :: Int
fieldOffset
          = (Int
56)
{-# LINE 1017 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}

instance {-# OVERLAPPING #-}
         (KnownNat idx,
          IndexInBounds "computeWorkGroupSize" idx
            VkShaderStatisticsInfoAMD) =>
         CanReadFieldArray "computeWorkGroupSize" idx
           VkShaderStatisticsInfoAMD
         where
        {-# SPECIALISE instance
                       CanReadFieldArray "computeWorkGroupSize" 0
                         VkShaderStatisticsInfoAMD
                       #-}

        {-# SPECIALISE instance
                       CanReadFieldArray "computeWorkGroupSize" 1
                         VkShaderStatisticsInfoAMD
                       #-}

        {-# SPECIALISE instance
                       CanReadFieldArray "computeWorkGroupSize" 2
                         VkShaderStatisticsInfoAMD
                       #-}
        type FieldArrayLength "computeWorkGroupSize"
               VkShaderStatisticsInfoAMD
             = 3

        {-# INLINE fieldArrayLength #-}
        fieldArrayLength :: Int
fieldArrayLength = Int
3

        {-# INLINE getFieldArray #-}
        getFieldArray :: VkShaderStatisticsInfoAMD
-> FieldType "computeWorkGroupSize" VkShaderStatisticsInfoAMD
getFieldArray = VkShaderStatisticsInfoAMD -> Word32
VkShaderStatisticsInfoAMD
-> FieldType "computeWorkGroupSize" VkShaderStatisticsInfoAMD
f
          where {-# NOINLINE f #-}
                f :: VkShaderStatisticsInfoAMD -> Word32
f VkShaderStatisticsInfoAMD
x = IO Word32 -> Word32
forall a. IO a -> a
unsafeDupablePerformIO (Ptr VkShaderStatisticsInfoAMD -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkShaderStatisticsInfoAMD -> Ptr VkShaderStatisticsInfoAMD
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkShaderStatisticsInfoAMD
x) Int
off)
                off :: Int
off
                  = (Int
56)
{-# LINE 1052 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}
                      Int -> Int -> Int
forall a. Num a => a -> a -> a
+
                      Word32 -> Int
forall a. Storable a => a -> Int
sizeOf (Word32
forall a. HasCallStack => a
undefined :: Word32) Int -> Int -> Int
forall a. Num a => a -> a -> a
*
                        Integer -> Int
forall a. Num a => Integer -> a
fromInteger (Proxy# idx -> Integer
forall (n :: Nat). KnownNat n => Proxy# n -> Integer
natVal' (Proxy# idx
forall k (a :: k). Proxy# a
proxy# :: Proxy# idx)) -- ' closing tick for hsc2hs

        {-# INLINE readFieldArray #-}
        readFieldArray :: Ptr VkShaderStatisticsInfoAMD
-> IO (FieldType "computeWorkGroupSize" VkShaderStatisticsInfoAMD)
readFieldArray Ptr VkShaderStatisticsInfoAMD
p
          = Ptr VkShaderStatisticsInfoAMD -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff Ptr VkShaderStatisticsInfoAMD
p
              ((Int
56)
{-# LINE 1060 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}
                 Int -> Int -> Int
forall a. Num a => a -> a -> a
+
                 Word32 -> Int
forall a. Storable a => a -> Int
sizeOf (Word32
forall a. HasCallStack => a
undefined :: Word32) Int -> Int -> Int
forall a. Num a => a -> a -> a
*
                   Integer -> Int
forall a. Num a => Integer -> a
fromInteger (Proxy# idx -> Integer
forall (n :: Nat). KnownNat n => Proxy# n -> Integer
natVal' (Proxy# idx
forall k (a :: k). Proxy# a
proxy# :: Proxy# idx))) -- ' closing tick for hsc2hs

instance {-# OVERLAPPING #-}
         (KnownNat idx,
          IndexInBounds "computeWorkGroupSize" idx
            VkShaderStatisticsInfoAMD) =>
         CanWriteFieldArray "computeWorkGroupSize" idx
           VkShaderStatisticsInfoAMD
         where
        {-# SPECIALISE instance
                       CanWriteFieldArray "computeWorkGroupSize" 0
                         VkShaderStatisticsInfoAMD
                       #-}

        {-# SPECIALISE instance
                       CanWriteFieldArray "computeWorkGroupSize" 1
                         VkShaderStatisticsInfoAMD
                       #-}

        {-# SPECIALISE instance
                       CanWriteFieldArray "computeWorkGroupSize" 2
                         VkShaderStatisticsInfoAMD
                       #-}

        {-# INLINE writeFieldArray #-}
        writeFieldArray :: Ptr VkShaderStatisticsInfoAMD
-> FieldType "computeWorkGroupSize" VkShaderStatisticsInfoAMD
-> IO ()
writeFieldArray Ptr VkShaderStatisticsInfoAMD
p
          = Ptr VkShaderStatisticsInfoAMD -> Int -> Word32 -> IO ()
forall a b. Storable a => Ptr b -> Int -> a -> IO ()
pokeByteOff Ptr VkShaderStatisticsInfoAMD
p
              ((Int
56)
{-# LINE 1090 "src-gen/Graphics/Vulkan/Types/Struct/Shader.hsc" #-}
                 Int -> Int -> Int
forall a. Num a => a -> a -> a
+
                 Word32 -> Int
forall a. Storable a => a -> Int
sizeOf (Word32
forall a. HasCallStack => a
undefined :: Word32) Int -> Int -> Int
forall a. Num a => a -> a -> a
*
                   Integer -> Int
forall a. Num a => Integer -> a
fromInteger (Proxy# idx -> Integer
forall (n :: Nat). KnownNat n => Proxy# n -> Integer
natVal' (Proxy# idx
forall k (a :: k). Proxy# a
proxy# :: Proxy# idx))) -- ' closing tick for hsc2hs

instance Show VkShaderStatisticsInfoAMD where
        showsPrec :: Int -> VkShaderStatisticsInfoAMD -> ShowS
showsPrec Int
d VkShaderStatisticsInfoAMD
x
          = String -> ShowS
showString String
"VkShaderStatisticsInfoAMD {" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
              String -> ShowS
showString String
"shaderStageMask = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                Int -> VkShaderStageFlags -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkShaderStatisticsInfoAMD
-> FieldType "shaderStageMask" VkShaderStatisticsInfoAMD
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"shaderStageMask" VkShaderStatisticsInfoAMD
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                  String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                    String -> ShowS
showString String
"resourceUsage = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                      Int -> VkShaderResourceUsageAMD -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkShaderStatisticsInfoAMD
-> FieldType "resourceUsage" VkShaderStatisticsInfoAMD
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"resourceUsage" VkShaderStatisticsInfoAMD
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                        String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                          String -> ShowS
showString String
"numPhysicalVgprs = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                            Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkShaderStatisticsInfoAMD
-> FieldType "numPhysicalVgprs" VkShaderStatisticsInfoAMD
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"numPhysicalVgprs" VkShaderStatisticsInfoAMD
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                              String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                String -> ShowS
showString String
"numPhysicalSgprs = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                  Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkShaderStatisticsInfoAMD
-> FieldType "numPhysicalSgprs" VkShaderStatisticsInfoAMD
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"numPhysicalSgprs" VkShaderStatisticsInfoAMD
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                    String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                      String -> ShowS
showString String
"numAvailableVgprs = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                        Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkShaderStatisticsInfoAMD
-> FieldType "numAvailableVgprs" VkShaderStatisticsInfoAMD
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"numAvailableVgprs" VkShaderStatisticsInfoAMD
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                          String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                            String -> ShowS
showString String
"numAvailableSgprs = " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                              Int -> Word32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d (VkShaderStatisticsInfoAMD
-> FieldType "numAvailableSgprs" VkShaderStatisticsInfoAMD
forall (fname :: Symbol) a.
CanReadField fname a =>
a -> FieldType fname a
getField @"numAvailableSgprs" VkShaderStatisticsInfoAMD
x) ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                String -> ShowS
showString String
", " ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                  (String -> ShowS
showString String
"computeWorkGroupSize = [" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
.
                                                     Int -> [Word32] -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
d
                                                       (let s :: Int
s = Word32 -> Int
forall a. Storable a => a -> Int
sizeOf
                                                                  (FieldType "computeWorkGroupSize" VkShaderStatisticsInfoAMD
forall a. HasCallStack => a
undefined ::
                                                                     FieldType
                                                                       "computeWorkGroupSize"
                                                                       VkShaderStatisticsInfoAMD)
                                                            o :: Int
o = HasField "computeWorkGroupSize" VkShaderStatisticsInfoAMD => Int
forall (fname :: Symbol) a. HasField fname a => Int
fieldOffset @"computeWorkGroupSize"
                                                                  @VkShaderStatisticsInfoAMD
                                                            f :: Int
-> IO (FieldType "computeWorkGroupSize" VkShaderStatisticsInfoAMD)
f Int
i
                                                              = Ptr VkShaderStatisticsInfoAMD -> Int -> IO Word32
forall a b. Storable a => Ptr b -> Int -> IO a
peekByteOff (VkShaderStatisticsInfoAMD -> Ptr VkShaderStatisticsInfoAMD
forall a. VulkanMarshal a => a -> Ptr a
unsafePtr VkShaderStatisticsInfoAMD
x) Int
i ::
                                                                  IO
                                                                    (FieldType
                                                                       "computeWorkGroupSize"
                                                                       VkShaderStatisticsInfoAMD)
                                                          in
                                                          IO [Word32] -> [Word32]
forall a. IO a -> a
unsafeDupablePerformIO (IO [Word32] -> [Word32])
-> ([Int] -> IO [Word32]) -> [Int] -> [Word32]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Int -> IO Word32) -> [Int] -> IO [Word32]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM Int -> IO Word32
Int
-> IO (FieldType "computeWorkGroupSize" VkShaderStatisticsInfoAMD)
f ([Int] -> [Word32]) -> [Int] -> [Word32]
forall a b. (a -> b) -> a -> b
$
                                                            (Int -> Int) -> [Int] -> [Int]
forall a b. (a -> b) -> [a] -> [b]
map (\ Int
i -> Int
o Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
i Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
s) [Int
0 .. Int
3 Int -> Int -> Int
forall a. Num a => a -> a -> a
- Int
1])
                                                       ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
']')
                                                    ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Char -> ShowS
showChar Char
'}'