{-# language CPP #-}
module Vulkan.Extensions.VK_EXT_shader_atomic_float ( PhysicalDeviceShaderAtomicFloatFeaturesEXT(..)
, EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION
, pattern EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION
, EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME
, pattern EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME
) where
import Foreign.Marshal.Alloc (allocaBytesAligned)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
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.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero(..))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT))
data PhysicalDeviceShaderAtomicFloatFeaturesEXT = PhysicalDeviceShaderAtomicFloatFeaturesEXT
{
PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
shaderBufferFloat32Atomics :: Bool
,
PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
shaderBufferFloat32AtomicAdd :: Bool
,
PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
shaderBufferFloat64Atomics :: Bool
,
PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
shaderBufferFloat64AtomicAdd :: Bool
,
PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
shaderSharedFloat32Atomics :: Bool
,
PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
shaderSharedFloat32AtomicAdd :: Bool
,
PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
shaderSharedFloat64Atomics :: Bool
,
PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
shaderSharedFloat64AtomicAdd :: Bool
,
PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
shaderImageFloat32Atomics :: Bool
,
PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
shaderImageFloat32AtomicAdd :: Bool
,
PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
sparseImageFloat32Atomics :: Bool
,
PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
sparseImageFloat32AtomicAdd :: Bool
}
deriving (Typeable, PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
(PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool)
-> (PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool)
-> Eq PhysicalDeviceShaderAtomicFloatFeaturesEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
$c/= :: PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
== :: PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
$c== :: PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceShaderAtomicFloatFeaturesEXT)
#endif
deriving instance Show PhysicalDeviceShaderAtomicFloatFeaturesEXT
instance ToCStruct PhysicalDeviceShaderAtomicFloatFeaturesEXT where
withCStruct :: PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> (Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> IO b) -> IO b
withCStruct x :: PhysicalDeviceShaderAtomicFloatFeaturesEXT
x f :: Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> IO b
f = Int
-> Int
-> (Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> IO b)
-> IO b
forall a b. Int -> Int -> (Ptr a -> IO b) -> IO b
allocaBytesAligned 64 8 ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> IO b) -> IO b)
-> (Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \p :: Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p -> Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> PhysicalDeviceShaderAtomicFloatFeaturesEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p PhysicalDeviceShaderAtomicFloatFeaturesEXT
x (Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> IO b
f Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p)
pokeCStruct :: Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> PhysicalDeviceShaderAtomicFloatFeaturesEXT -> IO b -> IO b
pokeCStruct p :: Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p PhysicalDeviceShaderAtomicFloatFeaturesEXT{..} f :: IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderBufferFloat32Atomics))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderBufferFloat32AtomicAdd))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 24 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderBufferFloat64Atomics))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 28 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderBufferFloat64AtomicAdd))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 32 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderSharedFloat32Atomics))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 36 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderSharedFloat32AtomicAdd))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 40 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderSharedFloat64Atomics))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 44 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderSharedFloat64AtomicAdd))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 48 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderImageFloat32Atomics))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 52 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderImageFloat32AtomicAdd))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 56 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
sparseImageFloat32Atomics))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 60 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
sparseImageFloat32AtomicAdd))
IO b
f
cStructSize :: Int
cStructSize = 64
cStructAlignment :: Int
cStructAlignment = 8
pokeZeroCStruct :: Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> IO b -> IO b
pokeZeroCStruct p :: Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p f :: IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 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 PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 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 PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 24 :: 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 PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 28 :: 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 PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 32 :: 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 PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 36 :: 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 PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 40 :: 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 PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 44 :: 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 PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 48 :: 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 PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 52 :: 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 PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 56 :: 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 PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 60 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceShaderAtomicFloatFeaturesEXT where
peekCStruct :: Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> IO PhysicalDeviceShaderAtomicFloatFeaturesEXT
peekCStruct p :: Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p = do
Bool32
shaderBufferFloat32Atomics <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr Bool32))
Bool32
shaderBufferFloat32AtomicAdd <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr Bool32))
Bool32
shaderBufferFloat64Atomics <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 24 :: Ptr Bool32))
Bool32
shaderBufferFloat64AtomicAdd <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 28 :: Ptr Bool32))
Bool32
shaderSharedFloat32Atomics <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 32 :: Ptr Bool32))
Bool32
shaderSharedFloat32AtomicAdd <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 36 :: Ptr Bool32))
Bool32
shaderSharedFloat64Atomics <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 40 :: Ptr Bool32))
Bool32
shaderSharedFloat64AtomicAdd <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 44 :: Ptr Bool32))
Bool32
shaderImageFloat32Atomics <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 48 :: Ptr Bool32))
Bool32
shaderImageFloat32AtomicAdd <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 52 :: Ptr Bool32))
Bool32
sparseImageFloat32Atomics <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 56 :: Ptr Bool32))
Bool32
sparseImageFloat32AtomicAdd <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
p Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 60 :: Ptr Bool32))
PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> IO PhysicalDeviceShaderAtomicFloatFeaturesEXT
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> IO PhysicalDeviceShaderAtomicFloatFeaturesEXT)
-> PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> IO PhysicalDeviceShaderAtomicFloatFeaturesEXT
forall a b. (a -> b) -> a -> b
$ Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceShaderAtomicFloatFeaturesEXT
PhysicalDeviceShaderAtomicFloatFeaturesEXT
(Bool32 -> Bool
bool32ToBool Bool32
shaderBufferFloat32Atomics) (Bool32 -> Bool
bool32ToBool Bool32
shaderBufferFloat32AtomicAdd) (Bool32 -> Bool
bool32ToBool Bool32
shaderBufferFloat64Atomics) (Bool32 -> Bool
bool32ToBool Bool32
shaderBufferFloat64AtomicAdd) (Bool32 -> Bool
bool32ToBool Bool32
shaderSharedFloat32Atomics) (Bool32 -> Bool
bool32ToBool Bool32
shaderSharedFloat32AtomicAdd) (Bool32 -> Bool
bool32ToBool Bool32
shaderSharedFloat64Atomics) (Bool32 -> Bool
bool32ToBool Bool32
shaderSharedFloat64AtomicAdd) (Bool32 -> Bool
bool32ToBool Bool32
shaderImageFloat32Atomics) (Bool32 -> Bool
bool32ToBool Bool32
shaderImageFloat32AtomicAdd) (Bool32 -> Bool
bool32ToBool Bool32
sparseImageFloat32Atomics) (Bool32 -> Bool
bool32ToBool Bool32
sparseImageFloat32AtomicAdd)
instance Storable PhysicalDeviceShaderAtomicFloatFeaturesEXT where
sizeOf :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int
sizeOf ~PhysicalDeviceShaderAtomicFloatFeaturesEXT
_ = 64
alignment :: PhysicalDeviceShaderAtomicFloatFeaturesEXT -> Int
alignment ~PhysicalDeviceShaderAtomicFloatFeaturesEXT
_ = 8
peek :: Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> IO PhysicalDeviceShaderAtomicFloatFeaturesEXT
peek = Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> IO PhysicalDeviceShaderAtomicFloatFeaturesEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> PhysicalDeviceShaderAtomicFloatFeaturesEXT -> IO ()
poke ptr :: Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
ptr poked :: PhysicalDeviceShaderAtomicFloatFeaturesEXT
poked = Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
-> PhysicalDeviceShaderAtomicFloatFeaturesEXT -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
ptr PhysicalDeviceShaderAtomicFloatFeaturesEXT
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceShaderAtomicFloatFeaturesEXT where
zero :: PhysicalDeviceShaderAtomicFloatFeaturesEXT
zero = Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceShaderAtomicFloatFeaturesEXT
PhysicalDeviceShaderAtomicFloatFeaturesEXT
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
type EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION = 1
pattern EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION :: forall a . Integral a => a
pattern $bEXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION :: a
$mEXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION :: forall r a. Integral a => a -> (Void# -> r) -> (Void# -> r) -> r
EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION = 1
type EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME = "VK_EXT_shader_atomic_float"
pattern EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bEXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME :: a
$mEXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME = "VK_EXT_shader_atomic_float"