{-# language CPP #-}
module Vulkan.Extensions.VK_EXT_shader_tile_image ( PhysicalDeviceShaderTileImageFeaturesEXT(..)
, PhysicalDeviceShaderTileImagePropertiesEXT(..)
, EXT_SHADER_TILE_IMAGE_SPEC_VERSION
, pattern EXT_SHADER_TILE_IMAGE_SPEC_VERSION
, EXT_SHADER_TILE_IMAGE_EXTENSION_NAME
, pattern EXT_SHADER_TILE_IMAGE_EXTENSION_NAME
) where
import Foreign.Marshal.Alloc (allocaBytes)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero(..))
import Data.String (IsString)
import Data.Typeable (Typeable)
import Foreign.Storable (Storable)
import Foreign.Storable (Storable(peek))
import Foreign.Storable (Storable(poke))
import qualified Foreign.Storable (Storable(..))
import GHC.Generics (Generic)
import Foreign.Ptr (Ptr)
import Data.Kind (Type)
import Vulkan.Core10.FundamentalTypes (bool32ToBool)
import Vulkan.Core10.FundamentalTypes (boolToBool32)
import Vulkan.Core10.FundamentalTypes (Bool32)
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT))
data PhysicalDeviceShaderTileImageFeaturesEXT = PhysicalDeviceShaderTileImageFeaturesEXT
{
PhysicalDeviceShaderTileImageFeaturesEXT -> Bool
shaderTileImageColorReadAccess :: Bool
,
PhysicalDeviceShaderTileImageFeaturesEXT -> Bool
shaderTileImageDepthReadAccess :: Bool
,
PhysicalDeviceShaderTileImageFeaturesEXT -> Bool
shaderTileImageStencilReadAccess :: Bool
}
deriving (Typeable, PhysicalDeviceShaderTileImageFeaturesEXT
-> PhysicalDeviceShaderTileImageFeaturesEXT -> Bool
(PhysicalDeviceShaderTileImageFeaturesEXT
-> PhysicalDeviceShaderTileImageFeaturesEXT -> Bool)
-> (PhysicalDeviceShaderTileImageFeaturesEXT
-> PhysicalDeviceShaderTileImageFeaturesEXT -> Bool)
-> Eq PhysicalDeviceShaderTileImageFeaturesEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceShaderTileImageFeaturesEXT
-> PhysicalDeviceShaderTileImageFeaturesEXT -> Bool
== :: PhysicalDeviceShaderTileImageFeaturesEXT
-> PhysicalDeviceShaderTileImageFeaturesEXT -> Bool
$c/= :: PhysicalDeviceShaderTileImageFeaturesEXT
-> PhysicalDeviceShaderTileImageFeaturesEXT -> Bool
/= :: PhysicalDeviceShaderTileImageFeaturesEXT
-> PhysicalDeviceShaderTileImageFeaturesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceShaderTileImageFeaturesEXT)
#endif
deriving instance Show PhysicalDeviceShaderTileImageFeaturesEXT
instance ToCStruct PhysicalDeviceShaderTileImageFeaturesEXT where
withCStruct :: forall b.
PhysicalDeviceShaderTileImageFeaturesEXT
-> (Ptr PhysicalDeviceShaderTileImageFeaturesEXT -> IO b) -> IO b
withCStruct PhysicalDeviceShaderTileImageFeaturesEXT
x Ptr PhysicalDeviceShaderTileImageFeaturesEXT -> IO b
f = Int
-> (Ptr PhysicalDeviceShaderTileImageFeaturesEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr PhysicalDeviceShaderTileImageFeaturesEXT -> IO b) -> IO b)
-> (Ptr PhysicalDeviceShaderTileImageFeaturesEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceShaderTileImageFeaturesEXT
p -> Ptr PhysicalDeviceShaderTileImageFeaturesEXT
-> PhysicalDeviceShaderTileImageFeaturesEXT -> IO b -> IO b
forall b.
Ptr PhysicalDeviceShaderTileImageFeaturesEXT
-> PhysicalDeviceShaderTileImageFeaturesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderTileImageFeaturesEXT
p PhysicalDeviceShaderTileImageFeaturesEXT
x (Ptr PhysicalDeviceShaderTileImageFeaturesEXT -> IO b
f Ptr PhysicalDeviceShaderTileImageFeaturesEXT
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceShaderTileImageFeaturesEXT
-> PhysicalDeviceShaderTileImageFeaturesEXT -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderTileImageFeaturesEXT
p PhysicalDeviceShaderTileImageFeaturesEXT{Bool
$sel:shaderTileImageColorReadAccess:PhysicalDeviceShaderTileImageFeaturesEXT :: PhysicalDeviceShaderTileImageFeaturesEXT -> Bool
$sel:shaderTileImageDepthReadAccess:PhysicalDeviceShaderTileImageFeaturesEXT :: PhysicalDeviceShaderTileImageFeaturesEXT -> Bool
$sel:shaderTileImageStencilReadAccess:PhysicalDeviceShaderTileImageFeaturesEXT :: PhysicalDeviceShaderTileImageFeaturesEXT -> Bool
shaderTileImageColorReadAccess :: Bool
shaderTileImageDepthReadAccess :: Bool
shaderTileImageStencilReadAccess :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderTileImageFeaturesEXT
p Ptr PhysicalDeviceShaderTileImageFeaturesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderTileImageFeaturesEXT
p Ptr PhysicalDeviceShaderTileImageFeaturesEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderTileImageFeaturesEXT
p Ptr PhysicalDeviceShaderTileImageFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderTileImageColorReadAccess))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderTileImageFeaturesEXT
p Ptr PhysicalDeviceShaderTileImageFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderTileImageDepthReadAccess))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderTileImageFeaturesEXT
p Ptr PhysicalDeviceShaderTileImageFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderTileImageStencilReadAccess))
IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceShaderTileImageFeaturesEXT -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceShaderTileImageFeaturesEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderTileImageFeaturesEXT
p Ptr PhysicalDeviceShaderTileImageFeaturesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderTileImageFeaturesEXT
p Ptr PhysicalDeviceShaderTileImageFeaturesEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderTileImageFeaturesEXT
p Ptr PhysicalDeviceShaderTileImageFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderTileImageFeaturesEXT
p Ptr PhysicalDeviceShaderTileImageFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderTileImageFeaturesEXT
p Ptr PhysicalDeviceShaderTileImageFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceShaderTileImageFeaturesEXT where
peekCStruct :: Ptr PhysicalDeviceShaderTileImageFeaturesEXT
-> IO PhysicalDeviceShaderTileImageFeaturesEXT
peekCStruct Ptr PhysicalDeviceShaderTileImageFeaturesEXT
p = do
Bool32
shaderTileImageColorReadAccess <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderTileImageFeaturesEXT
p Ptr PhysicalDeviceShaderTileImageFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
Bool32
shaderTileImageDepthReadAccess <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderTileImageFeaturesEXT
p Ptr PhysicalDeviceShaderTileImageFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32))
Bool32
shaderTileImageStencilReadAccess <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderTileImageFeaturesEXT
p Ptr PhysicalDeviceShaderTileImageFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32))
PhysicalDeviceShaderTileImageFeaturesEXT
-> IO PhysicalDeviceShaderTileImageFeaturesEXT
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceShaderTileImageFeaturesEXT
-> IO PhysicalDeviceShaderTileImageFeaturesEXT)
-> PhysicalDeviceShaderTileImageFeaturesEXT
-> IO PhysicalDeviceShaderTileImageFeaturesEXT
forall a b. (a -> b) -> a -> b
$ Bool -> Bool -> Bool -> PhysicalDeviceShaderTileImageFeaturesEXT
PhysicalDeviceShaderTileImageFeaturesEXT
(Bool32 -> Bool
bool32ToBool Bool32
shaderTileImageColorReadAccess)
(Bool32 -> Bool
bool32ToBool Bool32
shaderTileImageDepthReadAccess)
(Bool32 -> Bool
bool32ToBool Bool32
shaderTileImageStencilReadAccess)
instance Storable PhysicalDeviceShaderTileImageFeaturesEXT where
sizeOf :: PhysicalDeviceShaderTileImageFeaturesEXT -> Int
sizeOf ~PhysicalDeviceShaderTileImageFeaturesEXT
_ = Int
32
alignment :: PhysicalDeviceShaderTileImageFeaturesEXT -> Int
alignment ~PhysicalDeviceShaderTileImageFeaturesEXT
_ = Int
8
peek :: Ptr PhysicalDeviceShaderTileImageFeaturesEXT
-> IO PhysicalDeviceShaderTileImageFeaturesEXT
peek = Ptr PhysicalDeviceShaderTileImageFeaturesEXT
-> IO PhysicalDeviceShaderTileImageFeaturesEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceShaderTileImageFeaturesEXT
-> PhysicalDeviceShaderTileImageFeaturesEXT -> IO ()
poke Ptr PhysicalDeviceShaderTileImageFeaturesEXT
ptr PhysicalDeviceShaderTileImageFeaturesEXT
poked = Ptr PhysicalDeviceShaderTileImageFeaturesEXT
-> PhysicalDeviceShaderTileImageFeaturesEXT -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceShaderTileImageFeaturesEXT
-> PhysicalDeviceShaderTileImageFeaturesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderTileImageFeaturesEXT
ptr PhysicalDeviceShaderTileImageFeaturesEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceShaderTileImageFeaturesEXT where
zero :: PhysicalDeviceShaderTileImageFeaturesEXT
zero = Bool -> Bool -> Bool -> PhysicalDeviceShaderTileImageFeaturesEXT
PhysicalDeviceShaderTileImageFeaturesEXT
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
data PhysicalDeviceShaderTileImagePropertiesEXT = PhysicalDeviceShaderTileImagePropertiesEXT
{
PhysicalDeviceShaderTileImagePropertiesEXT -> Bool
shaderTileImageCoherentReadAccelerated :: Bool
,
PhysicalDeviceShaderTileImagePropertiesEXT -> Bool
shaderTileImageReadSampleFromPixelRateInvocation :: Bool
,
PhysicalDeviceShaderTileImagePropertiesEXT -> Bool
shaderTileImageReadFromHelperInvocation :: Bool
}
deriving (Typeable, PhysicalDeviceShaderTileImagePropertiesEXT
-> PhysicalDeviceShaderTileImagePropertiesEXT -> Bool
(PhysicalDeviceShaderTileImagePropertiesEXT
-> PhysicalDeviceShaderTileImagePropertiesEXT -> Bool)
-> (PhysicalDeviceShaderTileImagePropertiesEXT
-> PhysicalDeviceShaderTileImagePropertiesEXT -> Bool)
-> Eq PhysicalDeviceShaderTileImagePropertiesEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceShaderTileImagePropertiesEXT
-> PhysicalDeviceShaderTileImagePropertiesEXT -> Bool
== :: PhysicalDeviceShaderTileImagePropertiesEXT
-> PhysicalDeviceShaderTileImagePropertiesEXT -> Bool
$c/= :: PhysicalDeviceShaderTileImagePropertiesEXT
-> PhysicalDeviceShaderTileImagePropertiesEXT -> Bool
/= :: PhysicalDeviceShaderTileImagePropertiesEXT
-> PhysicalDeviceShaderTileImagePropertiesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceShaderTileImagePropertiesEXT)
#endif
deriving instance Show PhysicalDeviceShaderTileImagePropertiesEXT
instance ToCStruct PhysicalDeviceShaderTileImagePropertiesEXT where
withCStruct :: forall b.
PhysicalDeviceShaderTileImagePropertiesEXT
-> (Ptr PhysicalDeviceShaderTileImagePropertiesEXT -> IO b) -> IO b
withCStruct PhysicalDeviceShaderTileImagePropertiesEXT
x Ptr PhysicalDeviceShaderTileImagePropertiesEXT -> IO b
f = Int
-> (Ptr PhysicalDeviceShaderTileImagePropertiesEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr PhysicalDeviceShaderTileImagePropertiesEXT -> IO b) -> IO b)
-> (Ptr PhysicalDeviceShaderTileImagePropertiesEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceShaderTileImagePropertiesEXT
p -> Ptr PhysicalDeviceShaderTileImagePropertiesEXT
-> PhysicalDeviceShaderTileImagePropertiesEXT -> IO b -> IO b
forall b.
Ptr PhysicalDeviceShaderTileImagePropertiesEXT
-> PhysicalDeviceShaderTileImagePropertiesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderTileImagePropertiesEXT
p PhysicalDeviceShaderTileImagePropertiesEXT
x (Ptr PhysicalDeviceShaderTileImagePropertiesEXT -> IO b
f Ptr PhysicalDeviceShaderTileImagePropertiesEXT
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceShaderTileImagePropertiesEXT
-> PhysicalDeviceShaderTileImagePropertiesEXT -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderTileImagePropertiesEXT
p PhysicalDeviceShaderTileImagePropertiesEXT{Bool
$sel:shaderTileImageCoherentReadAccelerated:PhysicalDeviceShaderTileImagePropertiesEXT :: PhysicalDeviceShaderTileImagePropertiesEXT -> Bool
$sel:shaderTileImageReadSampleFromPixelRateInvocation:PhysicalDeviceShaderTileImagePropertiesEXT :: PhysicalDeviceShaderTileImagePropertiesEXT -> Bool
$sel:shaderTileImageReadFromHelperInvocation:PhysicalDeviceShaderTileImagePropertiesEXT :: PhysicalDeviceShaderTileImagePropertiesEXT -> Bool
shaderTileImageCoherentReadAccelerated :: Bool
shaderTileImageReadSampleFromPixelRateInvocation :: Bool
shaderTileImageReadFromHelperInvocation :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderTileImagePropertiesEXT
p Ptr PhysicalDeviceShaderTileImagePropertiesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderTileImagePropertiesEXT
p Ptr PhysicalDeviceShaderTileImagePropertiesEXT
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderTileImagePropertiesEXT
p Ptr PhysicalDeviceShaderTileImagePropertiesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderTileImageCoherentReadAccelerated))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderTileImagePropertiesEXT
p Ptr PhysicalDeviceShaderTileImagePropertiesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderTileImageReadSampleFromPixelRateInvocation))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderTileImagePropertiesEXT
p Ptr PhysicalDeviceShaderTileImagePropertiesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderTileImageReadFromHelperInvocation))
IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceShaderTileImagePropertiesEXT -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceShaderTileImagePropertiesEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderTileImagePropertiesEXT
p Ptr PhysicalDeviceShaderTileImagePropertiesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderTileImagePropertiesEXT
p Ptr PhysicalDeviceShaderTileImagePropertiesEXT
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderTileImagePropertiesEXT
p Ptr PhysicalDeviceShaderTileImagePropertiesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderTileImagePropertiesEXT
p Ptr PhysicalDeviceShaderTileImagePropertiesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderTileImagePropertiesEXT
p Ptr PhysicalDeviceShaderTileImagePropertiesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceShaderTileImagePropertiesEXT where
peekCStruct :: Ptr PhysicalDeviceShaderTileImagePropertiesEXT
-> IO PhysicalDeviceShaderTileImagePropertiesEXT
peekCStruct Ptr PhysicalDeviceShaderTileImagePropertiesEXT
p = do
Bool32
shaderTileImageCoherentReadAccelerated <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderTileImagePropertiesEXT
p Ptr PhysicalDeviceShaderTileImagePropertiesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
Bool32
shaderTileImageReadSampleFromPixelRateInvocation <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderTileImagePropertiesEXT
p Ptr PhysicalDeviceShaderTileImagePropertiesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32))
Bool32
shaderTileImageReadFromHelperInvocation <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderTileImagePropertiesEXT
p Ptr PhysicalDeviceShaderTileImagePropertiesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32))
PhysicalDeviceShaderTileImagePropertiesEXT
-> IO PhysicalDeviceShaderTileImagePropertiesEXT
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceShaderTileImagePropertiesEXT
-> IO PhysicalDeviceShaderTileImagePropertiesEXT)
-> PhysicalDeviceShaderTileImagePropertiesEXT
-> IO PhysicalDeviceShaderTileImagePropertiesEXT
forall a b. (a -> b) -> a -> b
$ Bool -> Bool -> Bool -> PhysicalDeviceShaderTileImagePropertiesEXT
PhysicalDeviceShaderTileImagePropertiesEXT
(Bool32 -> Bool
bool32ToBool Bool32
shaderTileImageCoherentReadAccelerated)
(Bool32 -> Bool
bool32ToBool Bool32
shaderTileImageReadSampleFromPixelRateInvocation)
(Bool32 -> Bool
bool32ToBool Bool32
shaderTileImageReadFromHelperInvocation)
instance Storable PhysicalDeviceShaderTileImagePropertiesEXT where
sizeOf :: PhysicalDeviceShaderTileImagePropertiesEXT -> Int
sizeOf ~PhysicalDeviceShaderTileImagePropertiesEXT
_ = Int
32
alignment :: PhysicalDeviceShaderTileImagePropertiesEXT -> Int
alignment ~PhysicalDeviceShaderTileImagePropertiesEXT
_ = Int
8
peek :: Ptr PhysicalDeviceShaderTileImagePropertiesEXT
-> IO PhysicalDeviceShaderTileImagePropertiesEXT
peek = Ptr PhysicalDeviceShaderTileImagePropertiesEXT
-> IO PhysicalDeviceShaderTileImagePropertiesEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceShaderTileImagePropertiesEXT
-> PhysicalDeviceShaderTileImagePropertiesEXT -> IO ()
poke Ptr PhysicalDeviceShaderTileImagePropertiesEXT
ptr PhysicalDeviceShaderTileImagePropertiesEXT
poked = Ptr PhysicalDeviceShaderTileImagePropertiesEXT
-> PhysicalDeviceShaderTileImagePropertiesEXT -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceShaderTileImagePropertiesEXT
-> PhysicalDeviceShaderTileImagePropertiesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderTileImagePropertiesEXT
ptr PhysicalDeviceShaderTileImagePropertiesEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceShaderTileImagePropertiesEXT where
zero :: PhysicalDeviceShaderTileImagePropertiesEXT
zero = Bool -> Bool -> Bool -> PhysicalDeviceShaderTileImagePropertiesEXT
PhysicalDeviceShaderTileImagePropertiesEXT
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
type EXT_SHADER_TILE_IMAGE_SPEC_VERSION = 1
pattern EXT_SHADER_TILE_IMAGE_SPEC_VERSION :: forall a . Integral a => a
pattern $bEXT_SHADER_TILE_IMAGE_SPEC_VERSION :: forall a. Integral a => a
$mEXT_SHADER_TILE_IMAGE_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
EXT_SHADER_TILE_IMAGE_SPEC_VERSION = 1
type EXT_SHADER_TILE_IMAGE_EXTENSION_NAME = "VK_EXT_shader_tile_image"
pattern EXT_SHADER_TILE_IMAGE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bEXT_SHADER_TILE_IMAGE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
$mEXT_SHADER_TILE_IMAGE_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
EXT_SHADER_TILE_IMAGE_EXTENSION_NAME = "VK_EXT_shader_tile_image"