{-# language CPP #-}
module Vulkan.Extensions.VK_KHR_shader_relaxed_extended_instruction ( PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR(..)
, KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION
, pattern KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION
, KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME
, pattern KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_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_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR))
data PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR = PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
{
PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR -> Bool
shaderRelaxedExtendedInstruction :: Bool }
deriving (Typeable, PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> Bool
(PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> Bool)
-> (PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> Bool)
-> Eq PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> Bool
== :: PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> Bool
$c/= :: PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> Bool
/= :: PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR)
#endif
deriving instance Show PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
instance ToCStruct PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR where
withCStruct :: forall b.
PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> (Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> IO b)
-> IO b
withCStruct PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
x Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> IO b
f = Int
-> (Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> IO b)
-> IO b)
-> (Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
p -> Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> IO b
-> IO b
forall b.
Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> IO b
-> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
p PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
x (Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> IO b
f Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> IO b
-> IO b
pokeCStruct Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
p PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR{Bool
shaderRelaxedExtendedInstruction :: PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR -> Bool
shaderRelaxedExtendedInstruction :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
p Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
p Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> 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 PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
p Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderRelaxedExtendedInstruction))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
p Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
p Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> 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 PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
p Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> 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))
IO b
f
instance FromCStruct PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR where
peekCStruct :: Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> IO PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
peekCStruct Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
p = do
shaderRelaxedExtendedInstruction <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
p Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
pure $ PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
(bool32ToBool shaderRelaxedExtendedInstruction)
instance Storable PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR where
sizeOf :: PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR -> Int
sizeOf ~PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
_ = Int
24
alignment :: PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR -> Int
alignment ~PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
_ = Int
8
peek :: Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> IO PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
peek = Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> IO PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> IO ()
poke Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
poked = Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> IO ()
-> IO ()
forall b.
Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
-> IO b
-> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
ptr PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR where
zero :: PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
zero = Bool -> PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR
Bool
forall a. Zero a => a
zero
type KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION = 1
pattern KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION :: forall a . Integral a => a
pattern $mKHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bKHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION :: forall a. Integral a => a
KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION = 1
type KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME = "VK_KHR_shader_relaxed_extended_instruction"
pattern KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $mKHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bKHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME = "VK_KHR_shader_relaxed_extended_instruction"