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')
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)
data VkShaderModuleCreateInfo = VkShaderModuleCreateInfo# Addr#
ByteArray#
instance Eq VkShaderModuleCreateInfo where
(VkShaderModuleCreateInfo# a _) ==
x@(VkShaderModuleCreateInfo# b _) = EQ == cmpBytes# (sizeOf x) a b
instance Ord VkShaderModuleCreateInfo where
(VkShaderModuleCreateInfo# a _) `compare`
x@(VkShaderModuleCreateInfo# b _) = cmpBytes# (sizeOf x) a b
instance Storable VkShaderModuleCreateInfo where
sizeOf ~_ = (40)
alignment ~_ = (8)
peek = peekVkData#
poke = pokeVkData#
instance VulkanMarshalPrim VkShaderModuleCreateInfo where
unsafeAddr (VkShaderModuleCreateInfo# a _) = a
unsafeByteArray (VkShaderModuleCreateInfo# _ b) = b
unsafeFromByteArrayOffset off b
= VkShaderModuleCreateInfo# (plusAddr# (byteArrayContents# b) off)
b
instance VulkanMarshal VkShaderModuleCreateInfo where
type StructFields VkShaderModuleCreateInfo =
'["sType", "pNext", "flags", "codeSize", "pCode"]
type CUnionType VkShaderModuleCreateInfo = 'False
type ReturnedOnly VkShaderModuleCreateInfo = 'False
type StructExtends VkShaderModuleCreateInfo = '[]
instance
HasField "sType" VkShaderModuleCreateInfo where
type FieldType "sType" VkShaderModuleCreateInfo = VkStructureType
type FieldOptional "sType" VkShaderModuleCreateInfo = 'False
type FieldOffset "sType" VkShaderModuleCreateInfo =
(0)
type FieldIsArray "sType" VkShaderModuleCreateInfo = 'False
fieldOptional = False
fieldOffset = (0)
instance
CanReadField "sType" VkShaderModuleCreateInfo where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (0))
readField p
= peekByteOff p (0)
instance
CanWriteField "sType" VkShaderModuleCreateInfo where
writeField p
= pokeByteOff p (0)
instance
HasField "pNext" VkShaderModuleCreateInfo where
type FieldType "pNext" VkShaderModuleCreateInfo = Ptr Void
type FieldOptional "pNext" VkShaderModuleCreateInfo = 'False
type FieldOffset "pNext" VkShaderModuleCreateInfo =
(8)
type FieldIsArray "pNext" VkShaderModuleCreateInfo = 'False
fieldOptional = False
fieldOffset = (8)
instance
CanReadField "pNext" VkShaderModuleCreateInfo where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (8))
readField p
= peekByteOff p (8)
instance
CanWriteField "pNext" VkShaderModuleCreateInfo where
writeField p
= pokeByteOff p (8)
instance
HasField "flags" VkShaderModuleCreateInfo where
type FieldType "flags" VkShaderModuleCreateInfo =
VkShaderModuleCreateFlags
type FieldOptional "flags" VkShaderModuleCreateInfo = 'True
type FieldOffset "flags" VkShaderModuleCreateInfo =
(16)
type FieldIsArray "flags" VkShaderModuleCreateInfo = 'False
fieldOptional = True
fieldOffset = (16)
instance
CanReadField "flags" VkShaderModuleCreateInfo where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (16))
readField p
= peekByteOff p (16)
instance
CanWriteField "flags" VkShaderModuleCreateInfo where
writeField p
= pokeByteOff p (16)
instance
HasField "codeSize" VkShaderModuleCreateInfo where
type FieldType "codeSize" VkShaderModuleCreateInfo = CSize
type FieldOptional "codeSize" VkShaderModuleCreateInfo = 'False
type FieldOffset "codeSize" VkShaderModuleCreateInfo =
(24)
type FieldIsArray "codeSize" VkShaderModuleCreateInfo = 'False
fieldOptional = False
fieldOffset
= (24)
instance
CanReadField "codeSize" VkShaderModuleCreateInfo where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (24))
readField p
= peekByteOff p (24)
instance
CanWriteField "codeSize" VkShaderModuleCreateInfo where
writeField p
= pokeByteOff p (24)
instance
HasField "pCode" VkShaderModuleCreateInfo where
type FieldType "pCode" VkShaderModuleCreateInfo = Ptr Word32
type FieldOptional "pCode" VkShaderModuleCreateInfo = 'False
type FieldOffset "pCode" VkShaderModuleCreateInfo =
(32)
type FieldIsArray "pCode" VkShaderModuleCreateInfo = 'False
fieldOptional = False
fieldOffset = (32)
instance
CanReadField "pCode" VkShaderModuleCreateInfo where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (32))
readField p
= peekByteOff p (32)
instance
CanWriteField "pCode" VkShaderModuleCreateInfo where
writeField p
= pokeByteOff p (32)
instance Show VkShaderModuleCreateInfo where
showsPrec d x
= showString "VkShaderModuleCreateInfo {" .
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 "codeSize = " .
showsPrec d (getField @"codeSize" x) .
showString ", " .
showString "pCode = " .
showsPrec d (getField @"pCode" x) . showChar '}'
data VkShaderModuleValidationCacheCreateInfoEXT = VkShaderModuleValidationCacheCreateInfoEXT# Addr#
ByteArray#
instance Eq VkShaderModuleValidationCacheCreateInfoEXT where
(VkShaderModuleValidationCacheCreateInfoEXT# a _) ==
x@(VkShaderModuleValidationCacheCreateInfoEXT# b _)
= EQ == cmpBytes# (sizeOf x) a b
instance Ord VkShaderModuleValidationCacheCreateInfoEXT where
(VkShaderModuleValidationCacheCreateInfoEXT# a _) `compare`
x@(VkShaderModuleValidationCacheCreateInfoEXT# b _)
= cmpBytes# (sizeOf x) a b
instance Storable VkShaderModuleValidationCacheCreateInfoEXT where
sizeOf ~_
= (24)
alignment ~_
= (8)
peek = peekVkData#
poke = pokeVkData#
instance VulkanMarshalPrim
VkShaderModuleValidationCacheCreateInfoEXT
where
unsafeAddr (VkShaderModuleValidationCacheCreateInfoEXT# a _) = a
unsafeByteArray (VkShaderModuleValidationCacheCreateInfoEXT# _ b)
= b
unsafeFromByteArrayOffset off b
= VkShaderModuleValidationCacheCreateInfoEXT#
(plusAddr# (byteArrayContents# b) off)
b
instance VulkanMarshal VkShaderModuleValidationCacheCreateInfoEXT
where
type StructFields VkShaderModuleValidationCacheCreateInfoEXT =
'["sType", "pNext", "validationCache"]
type CUnionType VkShaderModuleValidationCacheCreateInfoEXT = 'False
type ReturnedOnly VkShaderModuleValidationCacheCreateInfoEXT =
'False
type StructExtends VkShaderModuleValidationCacheCreateInfoEXT =
'[VkShaderModuleCreateInfo]
instance
HasField "sType" VkShaderModuleValidationCacheCreateInfoEXT where
type FieldType "sType" VkShaderModuleValidationCacheCreateInfoEXT =
VkStructureType
type FieldOptional "sType"
VkShaderModuleValidationCacheCreateInfoEXT
= 'False
type FieldOffset "sType" VkShaderModuleValidationCacheCreateInfoEXT
=
(0)
type FieldIsArray "sType"
VkShaderModuleValidationCacheCreateInfoEXT
= 'False
fieldOptional = False
fieldOffset
= (0)
instance
CanReadField "sType" VkShaderModuleValidationCacheCreateInfoEXT
where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (0))
readField p
= peekByteOff p (0)
instance
CanWriteField "sType" VkShaderModuleValidationCacheCreateInfoEXT
where
writeField p
= pokeByteOff p (0)
instance
HasField "pNext" VkShaderModuleValidationCacheCreateInfoEXT where
type FieldType "pNext" VkShaderModuleValidationCacheCreateInfoEXT =
Ptr Void
type FieldOptional "pNext"
VkShaderModuleValidationCacheCreateInfoEXT
= 'False
type FieldOffset "pNext" VkShaderModuleValidationCacheCreateInfoEXT
=
(8)
type FieldIsArray "pNext"
VkShaderModuleValidationCacheCreateInfoEXT
= 'False
fieldOptional = False
fieldOffset
= (8)
instance
CanReadField "pNext" VkShaderModuleValidationCacheCreateInfoEXT
where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (8))
readField p
= peekByteOff p (8)
instance
CanWriteField "pNext" VkShaderModuleValidationCacheCreateInfoEXT
where
writeField p
= pokeByteOff p (8)
instance
HasField "validationCache"
VkShaderModuleValidationCacheCreateInfoEXT
where
type FieldType "validationCache"
VkShaderModuleValidationCacheCreateInfoEXT
= VkValidationCacheEXT
type FieldOptional "validationCache"
VkShaderModuleValidationCacheCreateInfoEXT
= 'False
type FieldOffset "validationCache"
VkShaderModuleValidationCacheCreateInfoEXT
=
(16)
type FieldIsArray "validationCache"
VkShaderModuleValidationCacheCreateInfoEXT
= 'False
fieldOptional = False
fieldOffset
= (16)
instance
CanReadField "validationCache"
VkShaderModuleValidationCacheCreateInfoEXT
where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (16))
readField p
= peekByteOff p (16)
instance
CanWriteField "validationCache"
VkShaderModuleValidationCacheCreateInfoEXT
where
writeField p
= pokeByteOff p (16)
instance Show VkShaderModuleValidationCacheCreateInfoEXT where
showsPrec d x
= showString "VkShaderModuleValidationCacheCreateInfoEXT {" .
showString "sType = " .
showsPrec d (getField @"sType" x) .
showString ", " .
showString "pNext = " .
showsPrec d (getField @"pNext" x) .
showString ", " .
showString "validationCache = " .
showsPrec d (getField @"validationCache" x) . showChar '}'
data VkShaderResourceUsageAMD = VkShaderResourceUsageAMD# Addr#
ByteArray#
instance Eq VkShaderResourceUsageAMD where
(VkShaderResourceUsageAMD# a _) ==
x@(VkShaderResourceUsageAMD# b _) = EQ == cmpBytes# (sizeOf x) a b
instance Ord VkShaderResourceUsageAMD where
(VkShaderResourceUsageAMD# a _) `compare`
x@(VkShaderResourceUsageAMD# b _) = cmpBytes# (sizeOf x) a b
instance Storable VkShaderResourceUsageAMD where
sizeOf ~_ = (32)
alignment ~_ = (8)
peek = peekVkData#
poke = pokeVkData#
instance VulkanMarshalPrim VkShaderResourceUsageAMD where
unsafeAddr (VkShaderResourceUsageAMD# a _) = a
unsafeByteArray (VkShaderResourceUsageAMD# _ b) = b
unsafeFromByteArrayOffset off b
= VkShaderResourceUsageAMD# (plusAddr# (byteArrayContents# b) off)
b
instance VulkanMarshal VkShaderResourceUsageAMD where
type StructFields VkShaderResourceUsageAMD =
'["numUsedVgprs", "numUsedSgprs", "ldsSizePerLocalWorkGroup",
"ldsUsageSizeInBytes", "scratchMemUsageInBytes"]
type CUnionType VkShaderResourceUsageAMD = 'False
type ReturnedOnly VkShaderResourceUsageAMD = 'True
type StructExtends VkShaderResourceUsageAMD = '[]
instance
HasField "numUsedVgprs" VkShaderResourceUsageAMD where
type FieldType "numUsedVgprs" VkShaderResourceUsageAMD = Word32
type FieldOptional "numUsedVgprs" VkShaderResourceUsageAMD = 'False
type FieldOffset "numUsedVgprs" VkShaderResourceUsageAMD =
(0)
type FieldIsArray "numUsedVgprs" VkShaderResourceUsageAMD = 'False
fieldOptional = False
fieldOffset
= (0)
instance
CanReadField "numUsedVgprs" VkShaderResourceUsageAMD where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (0))
readField p
= peekByteOff p (0)
instance
CanWriteField "numUsedVgprs" VkShaderResourceUsageAMD where
writeField p
= pokeByteOff p (0)
instance
HasField "numUsedSgprs" VkShaderResourceUsageAMD where
type FieldType "numUsedSgprs" VkShaderResourceUsageAMD = Word32
type FieldOptional "numUsedSgprs" VkShaderResourceUsageAMD = 'False
type FieldOffset "numUsedSgprs" VkShaderResourceUsageAMD =
(4)
type FieldIsArray "numUsedSgprs" VkShaderResourceUsageAMD = 'False
fieldOptional = False
fieldOffset
= (4)
instance
CanReadField "numUsedSgprs" VkShaderResourceUsageAMD where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (4))
readField p
= peekByteOff p (4)
instance
CanWriteField "numUsedSgprs" VkShaderResourceUsageAMD where
writeField p
= pokeByteOff p (4)
instance
HasField "ldsSizePerLocalWorkGroup" VkShaderResourceUsageAMD where
type FieldType "ldsSizePerLocalWorkGroup" VkShaderResourceUsageAMD
= Word32
type FieldOptional "ldsSizePerLocalWorkGroup"
VkShaderResourceUsageAMD
= 'False
type FieldOffset "ldsSizePerLocalWorkGroup"
VkShaderResourceUsageAMD
=
(8)
type FieldIsArray "ldsSizePerLocalWorkGroup"
VkShaderResourceUsageAMD
= 'False
fieldOptional = False
fieldOffset
= (8)
instance
CanReadField "ldsSizePerLocalWorkGroup" VkShaderResourceUsageAMD
where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (8))
readField p
= peekByteOff p (8)
instance
CanWriteField "ldsSizePerLocalWorkGroup" VkShaderResourceUsageAMD
where
writeField p
= pokeByteOff p (8)
instance
HasField "ldsUsageSizeInBytes" VkShaderResourceUsageAMD where
type FieldType "ldsUsageSizeInBytes" VkShaderResourceUsageAMD =
CSize
type FieldOptional "ldsUsageSizeInBytes" VkShaderResourceUsageAMD =
'False
type FieldOffset "ldsUsageSizeInBytes" VkShaderResourceUsageAMD =
(16)
type FieldIsArray "ldsUsageSizeInBytes" VkShaderResourceUsageAMD =
'False
fieldOptional = False
fieldOffset
= (16)
instance
CanReadField "ldsUsageSizeInBytes" VkShaderResourceUsageAMD where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (16))
readField p
= peekByteOff p (16)
instance
CanWriteField "ldsUsageSizeInBytes" VkShaderResourceUsageAMD where
writeField p
= pokeByteOff p (16)
instance
HasField "scratchMemUsageInBytes" VkShaderResourceUsageAMD where
type FieldType "scratchMemUsageInBytes" VkShaderResourceUsageAMD =
CSize
type FieldOptional "scratchMemUsageInBytes"
VkShaderResourceUsageAMD
= 'False
type FieldOffset "scratchMemUsageInBytes" VkShaderResourceUsageAMD
=
(24)
type FieldIsArray "scratchMemUsageInBytes" VkShaderResourceUsageAMD
= 'False
fieldOptional = False
fieldOffset
= (24)
instance
CanReadField "scratchMemUsageInBytes" VkShaderResourceUsageAMD
where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (24))
readField p
= peekByteOff p (24)
instance
CanWriteField "scratchMemUsageInBytes" VkShaderResourceUsageAMD
where
writeField p
= pokeByteOff p (24)
instance Show VkShaderResourceUsageAMD where
showsPrec d x
= showString "VkShaderResourceUsageAMD {" .
showString "numUsedVgprs = " .
showsPrec d (getField @"numUsedVgprs" x) .
showString ", " .
showString "numUsedSgprs = " .
showsPrec d (getField @"numUsedSgprs" x) .
showString ", " .
showString "ldsSizePerLocalWorkGroup = " .
showsPrec d (getField @"ldsSizePerLocalWorkGroup" x) .
showString ", " .
showString "ldsUsageSizeInBytes = " .
showsPrec d (getField @"ldsUsageSizeInBytes" x) .
showString ", " .
showString "scratchMemUsageInBytes = " .
showsPrec d (getField @"scratchMemUsageInBytes" x) .
showChar '}'
data VkShaderStatisticsInfoAMD = VkShaderStatisticsInfoAMD# Addr#
ByteArray#
instance Eq VkShaderStatisticsInfoAMD where
(VkShaderStatisticsInfoAMD# a _) ==
x@(VkShaderStatisticsInfoAMD# b _) = EQ == cmpBytes# (sizeOf x) a b
instance Ord VkShaderStatisticsInfoAMD where
(VkShaderStatisticsInfoAMD# a _) `compare`
x@(VkShaderStatisticsInfoAMD# b _) = cmpBytes# (sizeOf x) a b
instance Storable VkShaderStatisticsInfoAMD where
sizeOf ~_ = (72)
alignment ~_ = (8)
peek = peekVkData#
poke = pokeVkData#
instance VulkanMarshalPrim VkShaderStatisticsInfoAMD where
unsafeAddr (VkShaderStatisticsInfoAMD# a _) = a
unsafeByteArray (VkShaderStatisticsInfoAMD# _ b) = b
unsafeFromByteArrayOffset off b
= VkShaderStatisticsInfoAMD# (plusAddr# (byteArrayContents# b) off)
b
instance VulkanMarshal VkShaderStatisticsInfoAMD where
type StructFields VkShaderStatisticsInfoAMD =
'["shaderStageMask", "resourceUsage", "numPhysicalVgprs",
"numPhysicalSgprs", "numAvailableVgprs", "numAvailableSgprs",
"computeWorkGroupSize"]
type CUnionType VkShaderStatisticsInfoAMD = 'False
type ReturnedOnly VkShaderStatisticsInfoAMD = 'True
type StructExtends VkShaderStatisticsInfoAMD = '[]
instance
HasField "shaderStageMask" VkShaderStatisticsInfoAMD where
type FieldType "shaderStageMask" VkShaderStatisticsInfoAMD =
VkShaderStageFlags
type FieldOptional "shaderStageMask" VkShaderStatisticsInfoAMD =
'False
type FieldOffset "shaderStageMask" VkShaderStatisticsInfoAMD =
(0)
type FieldIsArray "shaderStageMask" VkShaderStatisticsInfoAMD =
'False
fieldOptional = False
fieldOffset
= (0)
instance
CanReadField "shaderStageMask" VkShaderStatisticsInfoAMD where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (0))
readField p
= peekByteOff p (0)
instance
CanWriteField "shaderStageMask" VkShaderStatisticsInfoAMD where
writeField p
= pokeByteOff p (0)
instance
HasField "resourceUsage" VkShaderStatisticsInfoAMD where
type FieldType "resourceUsage" VkShaderStatisticsInfoAMD =
VkShaderResourceUsageAMD
type FieldOptional "resourceUsage" VkShaderStatisticsInfoAMD =
'False
type FieldOffset "resourceUsage" VkShaderStatisticsInfoAMD =
(8)
type FieldIsArray "resourceUsage" VkShaderStatisticsInfoAMD =
'False
fieldOptional = False
fieldOffset
= (8)
instance
CanReadField "resourceUsage" VkShaderStatisticsInfoAMD where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (8))
readField p
= peekByteOff p (8)
instance
CanWriteField "resourceUsage" VkShaderStatisticsInfoAMD where
writeField p
= pokeByteOff p (8)
instance
HasField "numPhysicalVgprs" VkShaderStatisticsInfoAMD where
type FieldType "numPhysicalVgprs" VkShaderStatisticsInfoAMD =
Word32
type FieldOptional "numPhysicalVgprs" VkShaderStatisticsInfoAMD =
'False
type FieldOffset "numPhysicalVgprs" VkShaderStatisticsInfoAMD =
(40)
type FieldIsArray "numPhysicalVgprs" VkShaderStatisticsInfoAMD =
'False
fieldOptional = False
fieldOffset
= (40)
instance
CanReadField "numPhysicalVgprs" VkShaderStatisticsInfoAMD where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (40))
readField p
= peekByteOff p (40)
instance
CanWriteField "numPhysicalVgprs" VkShaderStatisticsInfoAMD where
writeField p
= pokeByteOff p (40)
instance
HasField "numPhysicalSgprs" VkShaderStatisticsInfoAMD where
type FieldType "numPhysicalSgprs" VkShaderStatisticsInfoAMD =
Word32
type FieldOptional "numPhysicalSgprs" VkShaderStatisticsInfoAMD =
'False
type FieldOffset "numPhysicalSgprs" VkShaderStatisticsInfoAMD =
(44)
type FieldIsArray "numPhysicalSgprs" VkShaderStatisticsInfoAMD =
'False
fieldOptional = False
fieldOffset
= (44)
instance
CanReadField "numPhysicalSgprs" VkShaderStatisticsInfoAMD where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (44))
readField p
= peekByteOff p (44)
instance
CanWriteField "numPhysicalSgprs" VkShaderStatisticsInfoAMD where
writeField p
= pokeByteOff p (44)
instance
HasField "numAvailableVgprs" VkShaderStatisticsInfoAMD where
type FieldType "numAvailableVgprs" VkShaderStatisticsInfoAMD =
Word32
type FieldOptional "numAvailableVgprs" VkShaderStatisticsInfoAMD =
'False
type FieldOffset "numAvailableVgprs" VkShaderStatisticsInfoAMD =
(48)
type FieldIsArray "numAvailableVgprs" VkShaderStatisticsInfoAMD =
'False
fieldOptional = False
fieldOffset
= (48)
instance
CanReadField "numAvailableVgprs" VkShaderStatisticsInfoAMD where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (48))
readField p
= peekByteOff p (48)
instance
CanWriteField "numAvailableVgprs" VkShaderStatisticsInfoAMD where
writeField p
= pokeByteOff p (48)
instance
HasField "numAvailableSgprs" VkShaderStatisticsInfoAMD where
type FieldType "numAvailableSgprs" VkShaderStatisticsInfoAMD =
Word32
type FieldOptional "numAvailableSgprs" VkShaderStatisticsInfoAMD =
'False
type FieldOffset "numAvailableSgprs" VkShaderStatisticsInfoAMD =
(52)
type FieldIsArray "numAvailableSgprs" VkShaderStatisticsInfoAMD =
'False
fieldOptional = False
fieldOffset
= (52)
instance
CanReadField "numAvailableSgprs" VkShaderStatisticsInfoAMD where
getField x
= unsafeDupablePerformIO
(peekByteOff (unsafePtr x) (52))
readField p
= peekByteOff p (52)
instance
CanWriteField "numAvailableSgprs" VkShaderStatisticsInfoAMD where
writeField p
= pokeByteOff p (52)
instance
HasField "computeWorkGroupSize" VkShaderStatisticsInfoAMD where
type FieldType "computeWorkGroupSize" VkShaderStatisticsInfoAMD =
Word32
type FieldOptional "computeWorkGroupSize" VkShaderStatisticsInfoAMD
= 'False
type FieldOffset "computeWorkGroupSize" VkShaderStatisticsInfoAMD =
(56)
type FieldIsArray "computeWorkGroupSize" VkShaderStatisticsInfoAMD
= 'True
fieldOptional = False
fieldOffset
= (56)
instance
(KnownNat idx,
IndexInBounds "computeWorkGroupSize" idx
VkShaderStatisticsInfoAMD) =>
CanReadFieldArray "computeWorkGroupSize" idx
VkShaderStatisticsInfoAMD
where
type FieldArrayLength "computeWorkGroupSize"
VkShaderStatisticsInfoAMD
= 3
fieldArrayLength = 3
getFieldArray = f
where
f x = unsafeDupablePerformIO (peekByteOff (unsafePtr x) off)
off
= (56)
+
sizeOf (undefined :: Word32) *
fromInteger (natVal' (proxy# :: Proxy# idx))
readFieldArray p
= peekByteOff p
((56)
+
sizeOf (undefined :: Word32) *
fromInteger (natVal' (proxy# :: Proxy# idx)))
instance
(KnownNat idx,
IndexInBounds "computeWorkGroupSize" idx
VkShaderStatisticsInfoAMD) =>
CanWriteFieldArray "computeWorkGroupSize" idx
VkShaderStatisticsInfoAMD
where
writeFieldArray p
= pokeByteOff p
((56)
+
sizeOf (undefined :: Word32) *
fromInteger (natVal' (proxy# :: Proxy# idx)))
instance Show VkShaderStatisticsInfoAMD where
showsPrec d x
= showString "VkShaderStatisticsInfoAMD {" .
showString "shaderStageMask = " .
showsPrec d (getField @"shaderStageMask" x) .
showString ", " .
showString "resourceUsage = " .
showsPrec d (getField @"resourceUsage" x) .
showString ", " .
showString "numPhysicalVgprs = " .
showsPrec d (getField @"numPhysicalVgprs" x) .
showString ", " .
showString "numPhysicalSgprs = " .
showsPrec d (getField @"numPhysicalSgprs" x) .
showString ", " .
showString "numAvailableVgprs = " .
showsPrec d (getField @"numAvailableVgprs" x) .
showString ", " .
showString "numAvailableSgprs = " .
showsPrec d (getField @"numAvailableSgprs" x) .
showString ", " .
(showString "computeWorkGroupSize = [" .
showsPrec d
(let s = sizeOf
(undefined ::
FieldType
"computeWorkGroupSize"
VkShaderStatisticsInfoAMD)
o = fieldOffset @"computeWorkGroupSize"
@VkShaderStatisticsInfoAMD
f i
= peekByteOff (unsafePtr x) i ::
IO
(FieldType
"computeWorkGroupSize"
VkShaderStatisticsInfoAMD)
in
unsafeDupablePerformIO . mapM f $
map (\ i -> o + i * s) [0 .. 3 1])
. showChar ']')
. showChar '}'