{-# language CPP #-}
module Vulkan.Extensions.VK_EXT_validation_features ( ValidationFeaturesEXT(..)
, ValidationFeatureEnableEXT( VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT
, VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT
, VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT
, VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT
, VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT
, ..
)
, ValidationFeatureDisableEXT( VALIDATION_FEATURE_DISABLE_ALL_EXT
, VALIDATION_FEATURE_DISABLE_SHADERS_EXT
, VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT
, VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT
, VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT
, VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT
, VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT
, VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT
, ..
)
, EXT_VALIDATION_FEATURES_SPEC_VERSION
, pattern EXT_VALIDATION_FEATURES_SPEC_VERSION
, EXT_VALIDATION_FEATURES_EXTENSION_NAME
, pattern EXT_VALIDATION_FEATURES_EXTENSION_NAME
) where
import Vulkan.Internal.Utils (enumReadPrec)
import Vulkan.Internal.Utils (enumShowsPrec)
import Foreign.Marshal.Alloc (allocaBytes)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import GHC.Show (showsPrec)
import Control.Monad.Trans.Class (lift)
import Control.Monad.Trans.Cont (evalContT)
import Data.Vector (generateM)
import qualified Data.Vector (imapM_)
import qualified Data.Vector (length)
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero)
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 GHC.Generics (Generic)
import Data.Int (Int32)
import Foreign.Ptr (Ptr)
import GHC.Read (Read(readPrec))
import GHC.Show (Show(showsPrec))
import Data.Word (Word32)
import Data.Kind (Type)
import Control.Monad.Trans.Cont (ContT(..))
import Data.Vector (Vector)
import Vulkan.CStruct.Utils (advancePtrBytes)
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_VALIDATION_FEATURES_EXT))
data ValidationFeaturesEXT = ValidationFeaturesEXT
{
ValidationFeaturesEXT -> Vector ValidationFeatureEnableEXT
enabledValidationFeatures :: Vector ValidationFeatureEnableEXT
,
ValidationFeaturesEXT -> Vector ValidationFeatureDisableEXT
disabledValidationFeatures :: Vector ValidationFeatureDisableEXT
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (ValidationFeaturesEXT)
#endif
deriving instance Show ValidationFeaturesEXT
instance ToCStruct ValidationFeaturesEXT where
withCStruct :: forall b.
ValidationFeaturesEXT
-> (Ptr ValidationFeaturesEXT -> IO b) -> IO b
withCStruct ValidationFeaturesEXT
x Ptr ValidationFeaturesEXT -> IO b
f = forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
48 forall a b. (a -> b) -> a -> b
$ \Ptr ValidationFeaturesEXT
p -> forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ValidationFeaturesEXT
p ValidationFeaturesEXT
x (Ptr ValidationFeaturesEXT -> IO b
f Ptr ValidationFeaturesEXT
p)
pokeCStruct :: forall b.
Ptr ValidationFeaturesEXT -> ValidationFeaturesEXT -> IO b -> IO b
pokeCStruct Ptr ValidationFeaturesEXT
p ValidationFeaturesEXT{Vector ValidationFeatureDisableEXT
Vector ValidationFeatureEnableEXT
disabledValidationFeatures :: Vector ValidationFeatureDisableEXT
enabledValidationFeatures :: Vector ValidationFeatureEnableEXT
$sel:disabledValidationFeatures:ValidationFeaturesEXT :: ValidationFeaturesEXT -> Vector ValidationFeatureDisableEXT
$sel:enabledValidationFeatures:ValidationFeaturesEXT :: ValidationFeaturesEXT -> Vector ValidationFeatureEnableEXT
..} IO b
f = forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT forall a b. (a -> b) -> a -> b
$ do
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ValidationFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_VALIDATION_FEATURES_EXT)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ValidationFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ValidationFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) ((forall a b. (Integral a, Num b) => a -> b
fromIntegral (forall a. Vector a -> Int
Data.Vector.length forall a b. (a -> b) -> a -> b
$ (Vector ValidationFeatureEnableEXT
enabledValidationFeatures)) :: Word32))
Ptr ValidationFeatureEnableEXT
pPEnabledValidationFeatures' <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @ValidationFeatureEnableEXT ((forall a. Vector a -> Int
Data.Vector.length (Vector ValidationFeatureEnableEXT
enabledValidationFeatures)) forall a. Num a => a -> a -> a
* Int
4)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i ValidationFeatureEnableEXT
e -> forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr ValidationFeatureEnableEXT
pPEnabledValidationFeatures' forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
4 forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr ValidationFeatureEnableEXT) (ValidationFeatureEnableEXT
e)) (Vector ValidationFeatureEnableEXT
enabledValidationFeatures)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ValidationFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr (Ptr ValidationFeatureEnableEXT))) (Ptr ValidationFeatureEnableEXT
pPEnabledValidationFeatures')
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ValidationFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Word32)) ((forall a b. (Integral a, Num b) => a -> b
fromIntegral (forall a. Vector a -> Int
Data.Vector.length forall a b. (a -> b) -> a -> b
$ (Vector ValidationFeatureDisableEXT
disabledValidationFeatures)) :: Word32))
Ptr ValidationFeatureDisableEXT
pPDisabledValidationFeatures' <- forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @ValidationFeatureDisableEXT ((forall a. Vector a -> Int
Data.Vector.length (Vector ValidationFeatureDisableEXT
disabledValidationFeatures)) forall a. Num a => a -> a -> a
* Int
4)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i ValidationFeatureDisableEXT
e -> forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr ValidationFeatureDisableEXT
pPDisabledValidationFeatures' forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
4 forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr ValidationFeatureDisableEXT) (ValidationFeatureDisableEXT
e)) (Vector ValidationFeatureDisableEXT
disabledValidationFeatures)
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ValidationFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr (Ptr ValidationFeatureDisableEXT))) (Ptr ValidationFeatureDisableEXT
pPDisabledValidationFeatures')
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
48
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr ValidationFeaturesEXT -> IO b -> IO b
pokeZeroCStruct Ptr ValidationFeaturesEXT
p IO b
f = do
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ValidationFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_VALIDATION_FEATURES_EXT)
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ValidationFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (forall a. Ptr a
nullPtr)
IO b
f
instance FromCStruct ValidationFeaturesEXT where
peekCStruct :: Ptr ValidationFeaturesEXT -> IO ValidationFeaturesEXT
peekCStruct Ptr ValidationFeaturesEXT
p = do
Word32
enabledValidationFeatureCount <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr ValidationFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32))
Ptr ValidationFeatureEnableEXT
pEnabledValidationFeatures <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr ValidationFeatureEnableEXT) ((Ptr ValidationFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr (Ptr ValidationFeatureEnableEXT)))
Vector ValidationFeatureEnableEXT
pEnabledValidationFeatures' <- forall (m :: * -> *) a.
Monad m =>
Int -> (Int -> m a) -> m (Vector a)
generateM (forall a b. (Integral a, Num b) => a -> b
fromIntegral Word32
enabledValidationFeatureCount) (\Int
i -> forall a. Storable a => Ptr a -> IO a
peek @ValidationFeatureEnableEXT ((Ptr ValidationFeatureEnableEXT
pEnabledValidationFeatures forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
4 forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr ValidationFeatureEnableEXT)))
Word32
disabledValidationFeatureCount <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr ValidationFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Word32))
Ptr ValidationFeatureDisableEXT
pDisabledValidationFeatures <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr ValidationFeatureDisableEXT) ((Ptr ValidationFeaturesEXT
p forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr (Ptr ValidationFeatureDisableEXT)))
Vector ValidationFeatureDisableEXT
pDisabledValidationFeatures' <- forall (m :: * -> *) a.
Monad m =>
Int -> (Int -> m a) -> m (Vector a)
generateM (forall a b. (Integral a, Num b) => a -> b
fromIntegral Word32
disabledValidationFeatureCount) (\Int
i -> forall a. Storable a => Ptr a -> IO a
peek @ValidationFeatureDisableEXT ((Ptr ValidationFeatureDisableEXT
pDisabledValidationFeatures forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
4 forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr ValidationFeatureDisableEXT)))
forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ Vector ValidationFeatureEnableEXT
-> Vector ValidationFeatureDisableEXT -> ValidationFeaturesEXT
ValidationFeaturesEXT
Vector ValidationFeatureEnableEXT
pEnabledValidationFeatures' Vector ValidationFeatureDisableEXT
pDisabledValidationFeatures'
instance Zero ValidationFeaturesEXT where
zero :: ValidationFeaturesEXT
zero = Vector ValidationFeatureEnableEXT
-> Vector ValidationFeatureDisableEXT -> ValidationFeaturesEXT
ValidationFeaturesEXT
forall a. Monoid a => a
mempty
forall a. Monoid a => a
mempty
newtype ValidationFeatureEnableEXT = ValidationFeatureEnableEXT Int32
deriving newtype (ValidationFeatureEnableEXT -> ValidationFeatureEnableEXT -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ValidationFeatureEnableEXT -> ValidationFeatureEnableEXT -> Bool
$c/= :: ValidationFeatureEnableEXT -> ValidationFeatureEnableEXT -> Bool
== :: ValidationFeatureEnableEXT -> ValidationFeatureEnableEXT -> Bool
$c== :: ValidationFeatureEnableEXT -> ValidationFeatureEnableEXT -> Bool
Eq, Eq ValidationFeatureEnableEXT
ValidationFeatureEnableEXT -> ValidationFeatureEnableEXT -> Bool
ValidationFeatureEnableEXT
-> ValidationFeatureEnableEXT -> Ordering
ValidationFeatureEnableEXT
-> ValidationFeatureEnableEXT -> ValidationFeatureEnableEXT
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: ValidationFeatureEnableEXT
-> ValidationFeatureEnableEXT -> ValidationFeatureEnableEXT
$cmin :: ValidationFeatureEnableEXT
-> ValidationFeatureEnableEXT -> ValidationFeatureEnableEXT
max :: ValidationFeatureEnableEXT
-> ValidationFeatureEnableEXT -> ValidationFeatureEnableEXT
$cmax :: ValidationFeatureEnableEXT
-> ValidationFeatureEnableEXT -> ValidationFeatureEnableEXT
>= :: ValidationFeatureEnableEXT -> ValidationFeatureEnableEXT -> Bool
$c>= :: ValidationFeatureEnableEXT -> ValidationFeatureEnableEXT -> Bool
> :: ValidationFeatureEnableEXT -> ValidationFeatureEnableEXT -> Bool
$c> :: ValidationFeatureEnableEXT -> ValidationFeatureEnableEXT -> Bool
<= :: ValidationFeatureEnableEXT -> ValidationFeatureEnableEXT -> Bool
$c<= :: ValidationFeatureEnableEXT -> ValidationFeatureEnableEXT -> Bool
< :: ValidationFeatureEnableEXT -> ValidationFeatureEnableEXT -> Bool
$c< :: ValidationFeatureEnableEXT -> ValidationFeatureEnableEXT -> Bool
compare :: ValidationFeatureEnableEXT
-> ValidationFeatureEnableEXT -> Ordering
$ccompare :: ValidationFeatureEnableEXT
-> ValidationFeatureEnableEXT -> Ordering
Ord, Ptr ValidationFeatureEnableEXT -> IO ValidationFeatureEnableEXT
Ptr ValidationFeatureEnableEXT
-> Int -> IO ValidationFeatureEnableEXT
Ptr ValidationFeatureEnableEXT
-> Int -> ValidationFeatureEnableEXT -> IO ()
Ptr ValidationFeatureEnableEXT
-> ValidationFeatureEnableEXT -> IO ()
ValidationFeatureEnableEXT -> Int
forall b. Ptr b -> Int -> IO ValidationFeatureEnableEXT
forall b. Ptr b -> Int -> ValidationFeatureEnableEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr ValidationFeatureEnableEXT
-> ValidationFeatureEnableEXT -> IO ()
$cpoke :: Ptr ValidationFeatureEnableEXT
-> ValidationFeatureEnableEXT -> IO ()
peek :: Ptr ValidationFeatureEnableEXT -> IO ValidationFeatureEnableEXT
$cpeek :: Ptr ValidationFeatureEnableEXT -> IO ValidationFeatureEnableEXT
pokeByteOff :: forall b. Ptr b -> Int -> ValidationFeatureEnableEXT -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> ValidationFeatureEnableEXT -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO ValidationFeatureEnableEXT
$cpeekByteOff :: forall b. Ptr b -> Int -> IO ValidationFeatureEnableEXT
pokeElemOff :: Ptr ValidationFeatureEnableEXT
-> Int -> ValidationFeatureEnableEXT -> IO ()
$cpokeElemOff :: Ptr ValidationFeatureEnableEXT
-> Int -> ValidationFeatureEnableEXT -> IO ()
peekElemOff :: Ptr ValidationFeatureEnableEXT
-> Int -> IO ValidationFeatureEnableEXT
$cpeekElemOff :: Ptr ValidationFeatureEnableEXT
-> Int -> IO ValidationFeatureEnableEXT
alignment :: ValidationFeatureEnableEXT -> Int
$calignment :: ValidationFeatureEnableEXT -> Int
sizeOf :: ValidationFeatureEnableEXT -> Int
$csizeOf :: ValidationFeatureEnableEXT -> Int
Storable, ValidationFeatureEnableEXT
forall a. a -> Zero a
zero :: ValidationFeatureEnableEXT
$czero :: ValidationFeatureEnableEXT
Zero)
pattern $bVALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT :: ValidationFeatureEnableEXT
$mVALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT :: forall {r}.
ValidationFeatureEnableEXT -> ((# #) -> r) -> ((# #) -> r) -> r
VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = ValidationFeatureEnableEXT 0
pattern $bVALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT :: ValidationFeatureEnableEXT
$mVALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT :: forall {r}.
ValidationFeatureEnableEXT -> ((# #) -> r) -> ((# #) -> r) -> r
VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = ValidationFeatureEnableEXT 1
pattern $bVALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT :: ValidationFeatureEnableEXT
$mVALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT :: forall {r}.
ValidationFeatureEnableEXT -> ((# #) -> r) -> ((# #) -> r) -> r
VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = ValidationFeatureEnableEXT 2
pattern $bVALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT :: ValidationFeatureEnableEXT
$mVALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT :: forall {r}.
ValidationFeatureEnableEXT -> ((# #) -> r) -> ((# #) -> r) -> r
VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = ValidationFeatureEnableEXT 3
pattern $bVALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT :: ValidationFeatureEnableEXT
$mVALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT :: forall {r}.
ValidationFeatureEnableEXT -> ((# #) -> r) -> ((# #) -> r) -> r
VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = ValidationFeatureEnableEXT 4
{-# COMPLETE
VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT
, VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT
, VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT
, VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT
, VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT ::
ValidationFeatureEnableEXT
#-}
conNameValidationFeatureEnableEXT :: String
conNameValidationFeatureEnableEXT :: String
conNameValidationFeatureEnableEXT = String
"ValidationFeatureEnableEXT"
enumPrefixValidationFeatureEnableEXT :: String
enumPrefixValidationFeatureEnableEXT :: String
enumPrefixValidationFeatureEnableEXT = String
"VALIDATION_FEATURE_ENABLE_"
showTableValidationFeatureEnableEXT :: [(ValidationFeatureEnableEXT, String)]
showTableValidationFeatureEnableEXT :: [(ValidationFeatureEnableEXT, String)]
showTableValidationFeatureEnableEXT =
[
( ValidationFeatureEnableEXT
VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT
, String
"GPU_ASSISTED_EXT"
)
,
( ValidationFeatureEnableEXT
VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT
, String
"GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT"
)
,
( ValidationFeatureEnableEXT
VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT
, String
"BEST_PRACTICES_EXT"
)
,
( ValidationFeatureEnableEXT
VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT
, String
"DEBUG_PRINTF_EXT"
)
,
( ValidationFeatureEnableEXT
VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT
, String
"SYNCHRONIZATION_VALIDATION_EXT"
)
]
instance Show ValidationFeatureEnableEXT where
showsPrec :: Int -> ValidationFeatureEnableEXT -> ShowS
showsPrec =
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixValidationFeatureEnableEXT
[(ValidationFeatureEnableEXT, String)]
showTableValidationFeatureEnableEXT
String
conNameValidationFeatureEnableEXT
(\(ValidationFeatureEnableEXT Int32
x) -> Int32
x)
(forall a. Show a => Int -> a -> ShowS
showsPrec Int
11)
instance Read ValidationFeatureEnableEXT where
readPrec :: ReadPrec ValidationFeatureEnableEXT
readPrec =
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixValidationFeatureEnableEXT
[(ValidationFeatureEnableEXT, String)]
showTableValidationFeatureEnableEXT
String
conNameValidationFeatureEnableEXT
Int32 -> ValidationFeatureEnableEXT
ValidationFeatureEnableEXT
newtype ValidationFeatureDisableEXT = ValidationFeatureDisableEXT Int32
deriving newtype (ValidationFeatureDisableEXT -> ValidationFeatureDisableEXT -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ValidationFeatureDisableEXT -> ValidationFeatureDisableEXT -> Bool
$c/= :: ValidationFeatureDisableEXT -> ValidationFeatureDisableEXT -> Bool
== :: ValidationFeatureDisableEXT -> ValidationFeatureDisableEXT -> Bool
$c== :: ValidationFeatureDisableEXT -> ValidationFeatureDisableEXT -> Bool
Eq, Eq ValidationFeatureDisableEXT
ValidationFeatureDisableEXT -> ValidationFeatureDisableEXT -> Bool
ValidationFeatureDisableEXT
-> ValidationFeatureDisableEXT -> Ordering
ValidationFeatureDisableEXT
-> ValidationFeatureDisableEXT -> ValidationFeatureDisableEXT
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: ValidationFeatureDisableEXT
-> ValidationFeatureDisableEXT -> ValidationFeatureDisableEXT
$cmin :: ValidationFeatureDisableEXT
-> ValidationFeatureDisableEXT -> ValidationFeatureDisableEXT
max :: ValidationFeatureDisableEXT
-> ValidationFeatureDisableEXT -> ValidationFeatureDisableEXT
$cmax :: ValidationFeatureDisableEXT
-> ValidationFeatureDisableEXT -> ValidationFeatureDisableEXT
>= :: ValidationFeatureDisableEXT -> ValidationFeatureDisableEXT -> Bool
$c>= :: ValidationFeatureDisableEXT -> ValidationFeatureDisableEXT -> Bool
> :: ValidationFeatureDisableEXT -> ValidationFeatureDisableEXT -> Bool
$c> :: ValidationFeatureDisableEXT -> ValidationFeatureDisableEXT -> Bool
<= :: ValidationFeatureDisableEXT -> ValidationFeatureDisableEXT -> Bool
$c<= :: ValidationFeatureDisableEXT -> ValidationFeatureDisableEXT -> Bool
< :: ValidationFeatureDisableEXT -> ValidationFeatureDisableEXT -> Bool
$c< :: ValidationFeatureDisableEXT -> ValidationFeatureDisableEXT -> Bool
compare :: ValidationFeatureDisableEXT
-> ValidationFeatureDisableEXT -> Ordering
$ccompare :: ValidationFeatureDisableEXT
-> ValidationFeatureDisableEXT -> Ordering
Ord, Ptr ValidationFeatureDisableEXT -> IO ValidationFeatureDisableEXT
Ptr ValidationFeatureDisableEXT
-> Int -> IO ValidationFeatureDisableEXT
Ptr ValidationFeatureDisableEXT
-> Int -> ValidationFeatureDisableEXT -> IO ()
Ptr ValidationFeatureDisableEXT
-> ValidationFeatureDisableEXT -> IO ()
ValidationFeatureDisableEXT -> Int
forall b. Ptr b -> Int -> IO ValidationFeatureDisableEXT
forall b. Ptr b -> Int -> ValidationFeatureDisableEXT -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr ValidationFeatureDisableEXT
-> ValidationFeatureDisableEXT -> IO ()
$cpoke :: Ptr ValidationFeatureDisableEXT
-> ValidationFeatureDisableEXT -> IO ()
peek :: Ptr ValidationFeatureDisableEXT -> IO ValidationFeatureDisableEXT
$cpeek :: Ptr ValidationFeatureDisableEXT -> IO ValidationFeatureDisableEXT
pokeByteOff :: forall b. Ptr b -> Int -> ValidationFeatureDisableEXT -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> ValidationFeatureDisableEXT -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO ValidationFeatureDisableEXT
$cpeekByteOff :: forall b. Ptr b -> Int -> IO ValidationFeatureDisableEXT
pokeElemOff :: Ptr ValidationFeatureDisableEXT
-> Int -> ValidationFeatureDisableEXT -> IO ()
$cpokeElemOff :: Ptr ValidationFeatureDisableEXT
-> Int -> ValidationFeatureDisableEXT -> IO ()
peekElemOff :: Ptr ValidationFeatureDisableEXT
-> Int -> IO ValidationFeatureDisableEXT
$cpeekElemOff :: Ptr ValidationFeatureDisableEXT
-> Int -> IO ValidationFeatureDisableEXT
alignment :: ValidationFeatureDisableEXT -> Int
$calignment :: ValidationFeatureDisableEXT -> Int
sizeOf :: ValidationFeatureDisableEXT -> Int
$csizeOf :: ValidationFeatureDisableEXT -> Int
Storable, ValidationFeatureDisableEXT
forall a. a -> Zero a
zero :: ValidationFeatureDisableEXT
$czero :: ValidationFeatureDisableEXT
Zero)
pattern $bVALIDATION_FEATURE_DISABLE_ALL_EXT :: ValidationFeatureDisableEXT
$mVALIDATION_FEATURE_DISABLE_ALL_EXT :: forall {r}.
ValidationFeatureDisableEXT -> ((# #) -> r) -> ((# #) -> r) -> r
VALIDATION_FEATURE_DISABLE_ALL_EXT = ValidationFeatureDisableEXT 0
pattern $bVALIDATION_FEATURE_DISABLE_SHADERS_EXT :: ValidationFeatureDisableEXT
$mVALIDATION_FEATURE_DISABLE_SHADERS_EXT :: forall {r}.
ValidationFeatureDisableEXT -> ((# #) -> r) -> ((# #) -> r) -> r
VALIDATION_FEATURE_DISABLE_SHADERS_EXT = ValidationFeatureDisableEXT 1
pattern $bVALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT :: ValidationFeatureDisableEXT
$mVALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT :: forall {r}.
ValidationFeatureDisableEXT -> ((# #) -> r) -> ((# #) -> r) -> r
VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = ValidationFeatureDisableEXT 2
pattern $bVALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT :: ValidationFeatureDisableEXT
$mVALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT :: forall {r}.
ValidationFeatureDisableEXT -> ((# #) -> r) -> ((# #) -> r) -> r
VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = ValidationFeatureDisableEXT 3
pattern $bVALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT :: ValidationFeatureDisableEXT
$mVALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT :: forall {r}.
ValidationFeatureDisableEXT -> ((# #) -> r) -> ((# #) -> r) -> r
VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = ValidationFeatureDisableEXT 4
pattern $bVALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT :: ValidationFeatureDisableEXT
$mVALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT :: forall {r}.
ValidationFeatureDisableEXT -> ((# #) -> r) -> ((# #) -> r) -> r
VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = ValidationFeatureDisableEXT 5
pattern $bVALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT :: ValidationFeatureDisableEXT
$mVALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT :: forall {r}.
ValidationFeatureDisableEXT -> ((# #) -> r) -> ((# #) -> r) -> r
VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = ValidationFeatureDisableEXT 6
pattern $bVALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT :: ValidationFeatureDisableEXT
$mVALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT :: forall {r}.
ValidationFeatureDisableEXT -> ((# #) -> r) -> ((# #) -> r) -> r
VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = ValidationFeatureDisableEXT 7
{-# COMPLETE
VALIDATION_FEATURE_DISABLE_ALL_EXT
, VALIDATION_FEATURE_DISABLE_SHADERS_EXT
, VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT
, VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT
, VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT
, VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT
, VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT
, VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT ::
ValidationFeatureDisableEXT
#-}
conNameValidationFeatureDisableEXT :: String
conNameValidationFeatureDisableEXT :: String
conNameValidationFeatureDisableEXT = String
"ValidationFeatureDisableEXT"
enumPrefixValidationFeatureDisableEXT :: String
enumPrefixValidationFeatureDisableEXT :: String
enumPrefixValidationFeatureDisableEXT = String
"VALIDATION_FEATURE_DISABLE_"
showTableValidationFeatureDisableEXT :: [(ValidationFeatureDisableEXT, String)]
showTableValidationFeatureDisableEXT :: [(ValidationFeatureDisableEXT, String)]
showTableValidationFeatureDisableEXT =
[
( ValidationFeatureDisableEXT
VALIDATION_FEATURE_DISABLE_ALL_EXT
, String
"ALL_EXT"
)
,
( ValidationFeatureDisableEXT
VALIDATION_FEATURE_DISABLE_SHADERS_EXT
, String
"SHADERS_EXT"
)
,
( ValidationFeatureDisableEXT
VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT
, String
"THREAD_SAFETY_EXT"
)
,
( ValidationFeatureDisableEXT
VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT
, String
"API_PARAMETERS_EXT"
)
,
( ValidationFeatureDisableEXT
VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT
, String
"OBJECT_LIFETIMES_EXT"
)
,
( ValidationFeatureDisableEXT
VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT
, String
"CORE_CHECKS_EXT"
)
,
( ValidationFeatureDisableEXT
VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT
, String
"UNIQUE_HANDLES_EXT"
)
,
( ValidationFeatureDisableEXT
VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT
, String
"SHADER_VALIDATION_CACHE_EXT"
)
]
instance Show ValidationFeatureDisableEXT where
showsPrec :: Int -> ValidationFeatureDisableEXT -> ShowS
showsPrec =
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixValidationFeatureDisableEXT
[(ValidationFeatureDisableEXT, String)]
showTableValidationFeatureDisableEXT
String
conNameValidationFeatureDisableEXT
(\(ValidationFeatureDisableEXT Int32
x) -> Int32
x)
(forall a. Show a => Int -> a -> ShowS
showsPrec Int
11)
instance Read ValidationFeatureDisableEXT where
readPrec :: ReadPrec ValidationFeatureDisableEXT
readPrec =
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixValidationFeatureDisableEXT
[(ValidationFeatureDisableEXT, String)]
showTableValidationFeatureDisableEXT
String
conNameValidationFeatureDisableEXT
Int32 -> ValidationFeatureDisableEXT
ValidationFeatureDisableEXT
type EXT_VALIDATION_FEATURES_SPEC_VERSION = 5
pattern EXT_VALIDATION_FEATURES_SPEC_VERSION :: forall a . Integral a => a
pattern $bEXT_VALIDATION_FEATURES_SPEC_VERSION :: forall a. Integral a => a
$mEXT_VALIDATION_FEATURES_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
EXT_VALIDATION_FEATURES_SPEC_VERSION = 5
type EXT_VALIDATION_FEATURES_EXTENSION_NAME = "VK_EXT_validation_features"
pattern EXT_VALIDATION_FEATURES_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bEXT_VALIDATION_FEATURES_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
$mEXT_VALIDATION_FEATURES_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
EXT_VALIDATION_FEATURES_EXTENSION_NAME = "VK_EXT_validation_features"