{-# language CPP #-}
module Vulkan.Extensions.VK_EXT_validation_cache ( createValidationCacheEXT
, withValidationCacheEXT
, destroyValidationCacheEXT
, getValidationCacheDataEXT
, mergeValidationCachesEXT
, ValidationCacheCreateInfoEXT(..)
, ShaderModuleValidationCacheCreateInfoEXT(..)
, ValidationCacheCreateFlagsEXT(..)
, ValidationCacheHeaderVersionEXT( VALIDATION_CACHE_HEADER_VERSION_ONE_EXT
, ..
)
, EXT_VALIDATION_CACHE_SPEC_VERSION
, pattern EXT_VALIDATION_CACHE_SPEC_VERSION
, EXT_VALIDATION_CACHE_EXTENSION_NAME
, pattern EXT_VALIDATION_CACHE_EXTENSION_NAME
, ValidationCacheEXT(..)
) where
import Data.Bits (Bits)
import Data.Bits (FiniteBits)
import Vulkan.Internal.Utils (enumReadPrec)
import Vulkan.Internal.Utils (enumShowsPrec)
import Vulkan.Internal.Utils (traceAroundEvent)
import Control.Exception.Base (bracket)
import Control.Monad (unless)
import Control.Monad.IO.Class (liftIO)
import Foreign.Marshal.Alloc (allocaBytes)
import Foreign.Marshal.Alloc (callocBytes)
import Foreign.Marshal.Alloc (free)
import GHC.Base (when)
import GHC.IO (throwIO)
import GHC.Ptr (castPtr)
import GHC.Ptr (nullFunPtr)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import GHC.Show (showString)
import GHC.Show (showsPrec)
import Numeric (showHex)
import Data.ByteString (packCStringLen)
import Data.Coerce (coerce)
import Control.Monad.Trans.Class (lift)
import Control.Monad.Trans.Cont (evalContT)
import qualified Data.Vector (imapM_)
import qualified Data.Vector (length)
import Foreign.C.Types (CSize(..))
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 Control.Monad.IO.Class (MonadIO)
import Data.String (IsString)
import Data.Typeable (Typeable)
import Foreign.C.Types (CChar)
import Foreign.C.Types (CSize)
import Foreign.C.Types (CSize(..))
import Foreign.C.Types (CSize(CSize))
import Foreign.Storable (Storable)
import Foreign.Storable (Storable(peek))
import Foreign.Storable (Storable(poke))
import qualified Foreign.Storable (Storable(..))
import GHC.Generics (Generic)
import GHC.IO.Exception (IOErrorType(..))
import GHC.IO.Exception (IOException(..))
import Data.Int (Int32)
import Foreign.Ptr (FunPtr)
import Foreign.Ptr (Ptr)
import GHC.Read (Read(readPrec))
import GHC.Show (Show(showsPrec))
import Data.Word (Word32)
import Data.Word (Word64)
import Data.ByteString (ByteString)
import Data.Kind (Type)
import Control.Monad.Trans.Cont (ContT(..))
import Data.Vector (Vector)
import Vulkan.NamedType ((:::))
import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)
import Vulkan.Core10.Handles (Device)
import Vulkan.Core10.Handles (Device(..))
import Vulkan.Core10.Handles (Device(Device))
import Vulkan.Dynamic (DeviceCmds(pVkCreateValidationCacheEXT))
import Vulkan.Dynamic (DeviceCmds(pVkDestroyValidationCacheEXT))
import Vulkan.Dynamic (DeviceCmds(pVkGetValidationCacheDataEXT))
import Vulkan.Dynamic (DeviceCmds(pVkMergeValidationCachesEXT))
import Vulkan.Core10.Handles (Device_T)
import Vulkan.Core10.FundamentalTypes (Flags)
import Vulkan.Core10.Enums.Result (Result)
import Vulkan.Core10.Enums.Result (Result(..))
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Extensions.Handles (ValidationCacheEXT)
import Vulkan.Extensions.Handles (ValidationCacheEXT(..))
import Vulkan.Exception (VulkanException(..))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT))
import Vulkan.Core10.Enums.Result (Result(SUCCESS))
import Vulkan.Extensions.Handles (ValidationCacheEXT(..))
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCreateValidationCacheEXT
:: FunPtr (Ptr Device_T -> Ptr ValidationCacheCreateInfoEXT -> Ptr AllocationCallbacks -> Ptr ValidationCacheEXT -> IO Result) -> Ptr Device_T -> Ptr ValidationCacheCreateInfoEXT -> Ptr AllocationCallbacks -> Ptr ValidationCacheEXT -> IO Result
createValidationCacheEXT :: forall io
. (MonadIO io)
=>
Device
->
ValidationCacheCreateInfoEXT
->
("allocator" ::: Maybe AllocationCallbacks)
-> io (ValidationCacheEXT)
createValidationCacheEXT :: forall (io :: * -> *).
MonadIO io =>
Device
-> ValidationCacheCreateInfoEXT
-> ("allocator" ::: Maybe AllocationCallbacks)
-> io ValidationCacheEXT
createValidationCacheEXT Device
device ValidationCacheCreateInfoEXT
createInfo "allocator" ::: Maybe AllocationCallbacks
allocator = IO ValidationCacheEXT -> io ValidationCacheEXT
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ValidationCacheEXT -> io ValidationCacheEXT)
-> (ContT ValidationCacheEXT IO ValidationCacheEXT
-> IO ValidationCacheEXT)
-> ContT ValidationCacheEXT IO ValidationCacheEXT
-> io ValidationCacheEXT
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT ValidationCacheEXT IO ValidationCacheEXT
-> IO ValidationCacheEXT
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT ValidationCacheEXT IO ValidationCacheEXT
-> io ValidationCacheEXT)
-> ContT ValidationCacheEXT IO ValidationCacheEXT
-> io ValidationCacheEXT
forall a b. (a -> b) -> a -> b
$ do
let vkCreateValidationCacheEXTPtr :: FunPtr
(Ptr Device_T
-> Ptr ValidationCacheCreateInfoEXT
-> Ptr AllocationCallbacks
-> Ptr ValidationCacheEXT
-> IO Result)
vkCreateValidationCacheEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> Ptr ValidationCacheCreateInfoEXT
-> Ptr AllocationCallbacks
-> Ptr ValidationCacheEXT
-> IO Result)
pVkCreateValidationCacheEXT (case Device
device of Device{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT ValidationCacheEXT IO ()
forall (m :: * -> *) a.
Monad m =>
m a -> ContT ValidationCacheEXT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT ValidationCacheEXT IO ())
-> IO () -> ContT ValidationCacheEXT IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> Ptr ValidationCacheCreateInfoEXT
-> Ptr AllocationCallbacks
-> Ptr ValidationCacheEXT
-> IO Result)
vkCreateValidationCacheEXTPtr FunPtr
(Ptr Device_T
-> Ptr ValidationCacheCreateInfoEXT
-> Ptr AllocationCallbacks
-> Ptr ValidationCacheEXT
-> IO Result)
-> FunPtr
(Ptr Device_T
-> Ptr ValidationCacheCreateInfoEXT
-> Ptr AllocationCallbacks
-> Ptr ValidationCacheEXT
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> Ptr ValidationCacheCreateInfoEXT
-> Ptr AllocationCallbacks
-> Ptr ValidationCacheEXT
-> IO Result)
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkCreateValidationCacheEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCreateValidationCacheEXT' :: Ptr Device_T
-> Ptr ValidationCacheCreateInfoEXT
-> Ptr AllocationCallbacks
-> Ptr ValidationCacheEXT
-> IO Result
vkCreateValidationCacheEXT' = FunPtr
(Ptr Device_T
-> Ptr ValidationCacheCreateInfoEXT
-> Ptr AllocationCallbacks
-> Ptr ValidationCacheEXT
-> IO Result)
-> Ptr Device_T
-> Ptr ValidationCacheCreateInfoEXT
-> Ptr AllocationCallbacks
-> Ptr ValidationCacheEXT
-> IO Result
mkVkCreateValidationCacheEXT FunPtr
(Ptr Device_T
-> Ptr ValidationCacheCreateInfoEXT
-> Ptr AllocationCallbacks
-> Ptr ValidationCacheEXT
-> IO Result)
vkCreateValidationCacheEXTPtr
Ptr ValidationCacheCreateInfoEXT
pCreateInfo <- ((Ptr ValidationCacheCreateInfoEXT -> IO ValidationCacheEXT)
-> IO ValidationCacheEXT)
-> ContT ValidationCacheEXT IO (Ptr ValidationCacheCreateInfoEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr ValidationCacheCreateInfoEXT -> IO ValidationCacheEXT)
-> IO ValidationCacheEXT)
-> ContT ValidationCacheEXT IO (Ptr ValidationCacheCreateInfoEXT))
-> ((Ptr ValidationCacheCreateInfoEXT -> IO ValidationCacheEXT)
-> IO ValidationCacheEXT)
-> ContT ValidationCacheEXT IO (Ptr ValidationCacheCreateInfoEXT)
forall a b. (a -> b) -> a -> b
$ ValidationCacheCreateInfoEXT
-> (Ptr ValidationCacheCreateInfoEXT -> IO ValidationCacheEXT)
-> IO ValidationCacheEXT
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
ValidationCacheCreateInfoEXT
-> (Ptr ValidationCacheCreateInfoEXT -> IO b) -> IO b
withCStruct (ValidationCacheCreateInfoEXT
createInfo)
Ptr AllocationCallbacks
pAllocator <- case ("allocator" ::: Maybe AllocationCallbacks
allocator) of
"allocator" ::: Maybe AllocationCallbacks
Nothing -> Ptr AllocationCallbacks
-> ContT ValidationCacheEXT IO (Ptr AllocationCallbacks)
forall a. a -> ContT ValidationCacheEXT IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr AllocationCallbacks
forall a. Ptr a
nullPtr
Just AllocationCallbacks
j -> ((Ptr AllocationCallbacks -> IO ValidationCacheEXT)
-> IO ValidationCacheEXT)
-> ContT ValidationCacheEXT IO (Ptr AllocationCallbacks)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr AllocationCallbacks -> IO ValidationCacheEXT)
-> IO ValidationCacheEXT)
-> ContT ValidationCacheEXT IO (Ptr AllocationCallbacks))
-> ((Ptr AllocationCallbacks -> IO ValidationCacheEXT)
-> IO ValidationCacheEXT)
-> ContT ValidationCacheEXT IO (Ptr AllocationCallbacks)
forall a b. (a -> b) -> a -> b
$ AllocationCallbacks
-> (Ptr AllocationCallbacks -> IO ValidationCacheEXT)
-> IO ValidationCacheEXT
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
AllocationCallbacks -> (Ptr AllocationCallbacks -> IO b) -> IO b
withCStruct (AllocationCallbacks
j)
Ptr ValidationCacheEXT
pPValidationCache <- ((Ptr ValidationCacheEXT -> IO ValidationCacheEXT)
-> IO ValidationCacheEXT)
-> ContT ValidationCacheEXT IO (Ptr ValidationCacheEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr ValidationCacheEXT -> IO ValidationCacheEXT)
-> IO ValidationCacheEXT)
-> ContT ValidationCacheEXT IO (Ptr ValidationCacheEXT))
-> ((Ptr ValidationCacheEXT -> IO ValidationCacheEXT)
-> IO ValidationCacheEXT)
-> ContT ValidationCacheEXT IO (Ptr ValidationCacheEXT)
forall a b. (a -> b) -> a -> b
$ IO (Ptr ValidationCacheEXT)
-> (Ptr ValidationCacheEXT -> IO ())
-> (Ptr ValidationCacheEXT -> IO ValidationCacheEXT)
-> IO ValidationCacheEXT
forall a b c. IO a -> (a -> IO b) -> (a -> IO c) -> IO c
bracket (forall a. Int -> IO (Ptr a)
callocBytes @ValidationCacheEXT Int
8) Ptr ValidationCacheEXT -> IO ()
forall a. Ptr a -> IO ()
free
Result
r <- IO Result -> ContT ValidationCacheEXT IO Result
forall (m :: * -> *) a.
Monad m =>
m a -> ContT ValidationCacheEXT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Result -> ContT ValidationCacheEXT IO Result)
-> IO Result -> ContT ValidationCacheEXT IO Result
forall a b. (a -> b) -> a -> b
$ String -> IO Result -> IO Result
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCreateValidationCacheEXT" (Ptr Device_T
-> Ptr ValidationCacheCreateInfoEXT
-> Ptr AllocationCallbacks
-> Ptr ValidationCacheEXT
-> IO Result
vkCreateValidationCacheEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
Ptr ValidationCacheCreateInfoEXT
pCreateInfo
Ptr AllocationCallbacks
pAllocator
(Ptr ValidationCacheEXT
pPValidationCache))
IO () -> ContT ValidationCacheEXT IO ()
forall (m :: * -> *) a.
Monad m =>
m a -> ContT ValidationCacheEXT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT ValidationCacheEXT IO ())
-> IO () -> ContT ValidationCacheEXT IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Result
r Result -> Result -> Bool
forall a. Ord a => a -> a -> Bool
< Result
SUCCESS) (VulkanException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (Result -> VulkanException
VulkanException Result
r))
ValidationCacheEXT
pValidationCache <- IO ValidationCacheEXT
-> ContT ValidationCacheEXT IO ValidationCacheEXT
forall (m :: * -> *) a.
Monad m =>
m a -> ContT ValidationCacheEXT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ValidationCacheEXT
-> ContT ValidationCacheEXT IO ValidationCacheEXT)
-> IO ValidationCacheEXT
-> ContT ValidationCacheEXT IO ValidationCacheEXT
forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> IO a
peek @ValidationCacheEXT Ptr ValidationCacheEXT
pPValidationCache
ValidationCacheEXT
-> ContT ValidationCacheEXT IO ValidationCacheEXT
forall a. a -> ContT ValidationCacheEXT IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (ValidationCacheEXT
-> ContT ValidationCacheEXT IO ValidationCacheEXT)
-> ValidationCacheEXT
-> ContT ValidationCacheEXT IO ValidationCacheEXT
forall a b. (a -> b) -> a -> b
$ (ValidationCacheEXT
pValidationCache)
withValidationCacheEXT :: forall io r . MonadIO io => Device -> ValidationCacheCreateInfoEXT -> Maybe AllocationCallbacks -> (io ValidationCacheEXT -> (ValidationCacheEXT -> io ()) -> r) -> r
withValidationCacheEXT :: forall (io :: * -> *) r.
MonadIO io =>
Device
-> ValidationCacheCreateInfoEXT
-> ("allocator" ::: Maybe AllocationCallbacks)
-> (io ValidationCacheEXT -> (ValidationCacheEXT -> io ()) -> r)
-> r
withValidationCacheEXT Device
device ValidationCacheCreateInfoEXT
pCreateInfo "allocator" ::: Maybe AllocationCallbacks
pAllocator io ValidationCacheEXT -> (ValidationCacheEXT -> io ()) -> r
b =
io ValidationCacheEXT -> (ValidationCacheEXT -> io ()) -> r
b (Device
-> ValidationCacheCreateInfoEXT
-> ("allocator" ::: Maybe AllocationCallbacks)
-> io ValidationCacheEXT
forall (io :: * -> *).
MonadIO io =>
Device
-> ValidationCacheCreateInfoEXT
-> ("allocator" ::: Maybe AllocationCallbacks)
-> io ValidationCacheEXT
createValidationCacheEXT Device
device ValidationCacheCreateInfoEXT
pCreateInfo "allocator" ::: Maybe AllocationCallbacks
pAllocator)
(\(ValidationCacheEXT
o0) -> Device
-> ValidationCacheEXT
-> ("allocator" ::: Maybe AllocationCallbacks)
-> io ()
forall (io :: * -> *).
MonadIO io =>
Device
-> ValidationCacheEXT
-> ("allocator" ::: Maybe AllocationCallbacks)
-> io ()
destroyValidationCacheEXT Device
device ValidationCacheEXT
o0 "allocator" ::: Maybe AllocationCallbacks
pAllocator)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkDestroyValidationCacheEXT
:: FunPtr (Ptr Device_T -> ValidationCacheEXT -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> ValidationCacheEXT -> Ptr AllocationCallbacks -> IO ()
destroyValidationCacheEXT :: forall io
. (MonadIO io)
=>
Device
->
ValidationCacheEXT
->
("allocator" ::: Maybe AllocationCallbacks)
-> io ()
destroyValidationCacheEXT :: forall (io :: * -> *).
MonadIO io =>
Device
-> ValidationCacheEXT
-> ("allocator" ::: Maybe AllocationCallbacks)
-> io ()
destroyValidationCacheEXT Device
device
ValidationCacheEXT
validationCache
"allocator" ::: Maybe AllocationCallbacks
allocator = IO () -> io ()
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (ContT () IO () -> IO ()) -> ContT () IO () -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT () IO () -> IO ()
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkDestroyValidationCacheEXTPtr :: FunPtr
(Ptr Device_T
-> ValidationCacheEXT -> Ptr AllocationCallbacks -> IO ())
vkDestroyValidationCacheEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> ValidationCacheEXT -> Ptr AllocationCallbacks -> IO ())
pVkDestroyValidationCacheEXT (case Device
device of Device{DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> ValidationCacheEXT -> Ptr AllocationCallbacks -> IO ())
vkDestroyValidationCacheEXTPtr FunPtr
(Ptr Device_T
-> ValidationCacheEXT -> Ptr AllocationCallbacks -> IO ())
-> FunPtr
(Ptr Device_T
-> ValidationCacheEXT -> Ptr AllocationCallbacks -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> ValidationCacheEXT -> Ptr AllocationCallbacks -> IO ())
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkDestroyValidationCacheEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkDestroyValidationCacheEXT' :: Ptr Device_T
-> ValidationCacheEXT -> Ptr AllocationCallbacks -> IO ()
vkDestroyValidationCacheEXT' = FunPtr
(Ptr Device_T
-> ValidationCacheEXT -> Ptr AllocationCallbacks -> IO ())
-> Ptr Device_T
-> ValidationCacheEXT
-> Ptr AllocationCallbacks
-> IO ()
mkVkDestroyValidationCacheEXT FunPtr
(Ptr Device_T
-> ValidationCacheEXT -> Ptr AllocationCallbacks -> IO ())
vkDestroyValidationCacheEXTPtr
Ptr AllocationCallbacks
pAllocator <- case ("allocator" ::: Maybe AllocationCallbacks
allocator) of
"allocator" ::: Maybe AllocationCallbacks
Nothing -> Ptr AllocationCallbacks -> ContT () IO (Ptr AllocationCallbacks)
forall a. a -> ContT () IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr AllocationCallbacks
forall a. Ptr a
nullPtr
Just AllocationCallbacks
j -> ((Ptr AllocationCallbacks -> IO ()) -> IO ())
-> ContT () IO (Ptr AllocationCallbacks)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr AllocationCallbacks -> IO ()) -> IO ())
-> ContT () IO (Ptr AllocationCallbacks))
-> ((Ptr AllocationCallbacks -> IO ()) -> IO ())
-> ContT () IO (Ptr AllocationCallbacks)
forall a b. (a -> b) -> a -> b
$ AllocationCallbacks -> (Ptr AllocationCallbacks -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
AllocationCallbacks -> (Ptr AllocationCallbacks -> IO b) -> IO b
withCStruct (AllocationCallbacks
j)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkDestroyValidationCacheEXT" (Ptr Device_T
-> ValidationCacheEXT -> Ptr AllocationCallbacks -> IO ()
vkDestroyValidationCacheEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
(ValidationCacheEXT
validationCache)
Ptr AllocationCallbacks
pAllocator)
() -> ContT () IO ()
forall a. a -> ContT () IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> ContT () IO ()) -> () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetValidationCacheDataEXT
:: FunPtr (Ptr Device_T -> ValidationCacheEXT -> Ptr CSize -> Ptr () -> IO Result) -> Ptr Device_T -> ValidationCacheEXT -> Ptr CSize -> Ptr () -> IO Result
getValidationCacheDataEXT :: forall io
. (MonadIO io)
=>
Device
->
ValidationCacheEXT
-> io (Result, ("data" ::: ByteString))
getValidationCacheDataEXT :: forall (io :: * -> *).
MonadIO io =>
Device -> ValidationCacheEXT -> io (Result, "data" ::: ByteString)
getValidationCacheDataEXT Device
device ValidationCacheEXT
validationCache = IO (Result, "data" ::: ByteString)
-> io (Result, "data" ::: ByteString)
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Result, "data" ::: ByteString)
-> io (Result, "data" ::: ByteString))
-> (ContT
(Result, "data" ::: ByteString) IO (Result, "data" ::: ByteString)
-> IO (Result, "data" ::: ByteString))
-> ContT
(Result, "data" ::: ByteString) IO (Result, "data" ::: ByteString)
-> io (Result, "data" ::: ByteString)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT
(Result, "data" ::: ByteString) IO (Result, "data" ::: ByteString)
-> IO (Result, "data" ::: ByteString)
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT
(Result, "data" ::: ByteString) IO (Result, "data" ::: ByteString)
-> io (Result, "data" ::: ByteString))
-> ContT
(Result, "data" ::: ByteString) IO (Result, "data" ::: ByteString)
-> io (Result, "data" ::: ByteString)
forall a b. (a -> b) -> a -> b
$ do
let vkGetValidationCacheDataEXTPtr :: FunPtr
(Ptr Device_T
-> ValidationCacheEXT -> Ptr CSize -> Ptr () -> IO Result)
vkGetValidationCacheDataEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> ValidationCacheEXT -> Ptr CSize -> Ptr () -> IO Result)
pVkGetValidationCacheDataEXT (case Device
device of Device{DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT (Result, "data" ::: ByteString) IO ()
forall (m :: * -> *) a.
Monad m =>
m a -> ContT (Result, "data" ::: ByteString) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT (Result, "data" ::: ByteString) IO ())
-> IO () -> ContT (Result, "data" ::: ByteString) IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> ValidationCacheEXT -> Ptr CSize -> Ptr () -> IO Result)
vkGetValidationCacheDataEXTPtr FunPtr
(Ptr Device_T
-> ValidationCacheEXT -> Ptr CSize -> Ptr () -> IO Result)
-> FunPtr
(Ptr Device_T
-> ValidationCacheEXT -> Ptr CSize -> Ptr () -> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> ValidationCacheEXT -> Ptr CSize -> Ptr () -> IO Result)
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkGetValidationCacheDataEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetValidationCacheDataEXT' :: Ptr Device_T
-> ValidationCacheEXT -> Ptr CSize -> Ptr () -> IO Result
vkGetValidationCacheDataEXT' = FunPtr
(Ptr Device_T
-> ValidationCacheEXT -> Ptr CSize -> Ptr () -> IO Result)
-> Ptr Device_T
-> ValidationCacheEXT
-> Ptr CSize
-> Ptr ()
-> IO Result
mkVkGetValidationCacheDataEXT FunPtr
(Ptr Device_T
-> ValidationCacheEXT -> Ptr CSize -> Ptr () -> IO Result)
vkGetValidationCacheDataEXTPtr
let device' :: Ptr Device_T
device' = Device -> Ptr Device_T
deviceHandle (Device
device)
Ptr CSize
pPDataSize <- ((Ptr CSize -> IO (Result, "data" ::: ByteString))
-> IO (Result, "data" ::: ByteString))
-> ContT (Result, "data" ::: ByteString) IO (Ptr CSize)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr CSize -> IO (Result, "data" ::: ByteString))
-> IO (Result, "data" ::: ByteString))
-> ContT (Result, "data" ::: ByteString) IO (Ptr CSize))
-> ((Ptr CSize -> IO (Result, "data" ::: ByteString))
-> IO (Result, "data" ::: ByteString))
-> ContT (Result, "data" ::: ByteString) IO (Ptr CSize)
forall a b. (a -> b) -> a -> b
$ IO (Ptr CSize)
-> (Ptr CSize -> IO ())
-> (Ptr CSize -> IO (Result, "data" ::: ByteString))
-> IO (Result, "data" ::: ByteString)
forall a b c. IO a -> (a -> IO b) -> (a -> IO c) -> IO c
bracket (forall a. Int -> IO (Ptr a)
callocBytes @CSize Int
8) Ptr CSize -> IO ()
forall a. Ptr a -> IO ()
free
Result
r <- IO Result -> ContT (Result, "data" ::: ByteString) IO Result
forall (m :: * -> *) a.
Monad m =>
m a -> ContT (Result, "data" ::: ByteString) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Result -> ContT (Result, "data" ::: ByteString) IO Result)
-> IO Result -> ContT (Result, "data" ::: ByteString) IO Result
forall a b. (a -> b) -> a -> b
$ String -> IO Result -> IO Result
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetValidationCacheDataEXT" (Ptr Device_T
-> ValidationCacheEXT -> Ptr CSize -> Ptr () -> IO Result
vkGetValidationCacheDataEXT'
Ptr Device_T
device'
(ValidationCacheEXT
validationCache)
(Ptr CSize
pPDataSize)
(Ptr ()
forall a. Ptr a
nullPtr))
IO () -> ContT (Result, "data" ::: ByteString) IO ()
forall (m :: * -> *) a.
Monad m =>
m a -> ContT (Result, "data" ::: ByteString) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT (Result, "data" ::: ByteString) IO ())
-> IO () -> ContT (Result, "data" ::: ByteString) IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Result
r Result -> Result -> Bool
forall a. Ord a => a -> a -> Bool
< Result
SUCCESS) (VulkanException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (Result -> VulkanException
VulkanException Result
r))
CSize
pDataSize <- IO CSize -> ContT (Result, "data" ::: ByteString) IO CSize
forall (m :: * -> *) a.
Monad m =>
m a -> ContT (Result, "data" ::: ByteString) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO CSize -> ContT (Result, "data" ::: ByteString) IO CSize)
-> IO CSize -> ContT (Result, "data" ::: ByteString) IO CSize
forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> IO a
peek @CSize Ptr CSize
pPDataSize
Ptr ()
pPData <- ((Ptr () -> IO (Result, "data" ::: ByteString))
-> IO (Result, "data" ::: ByteString))
-> ContT (Result, "data" ::: ByteString) IO (Ptr ())
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr () -> IO (Result, "data" ::: ByteString))
-> IO (Result, "data" ::: ByteString))
-> ContT (Result, "data" ::: ByteString) IO (Ptr ()))
-> ((Ptr () -> IO (Result, "data" ::: ByteString))
-> IO (Result, "data" ::: ByteString))
-> ContT (Result, "data" ::: ByteString) IO (Ptr ())
forall a b. (a -> b) -> a -> b
$ IO (Ptr ())
-> (Ptr () -> IO ())
-> (Ptr () -> IO (Result, "data" ::: ByteString))
-> IO (Result, "data" ::: ByteString)
forall a b c. IO a -> (a -> IO b) -> (a -> IO c) -> IO c
bracket (forall a. Int -> IO (Ptr a)
callocBytes @(()) (Word64 -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral ((forall a b. Coercible a b => a -> b
forall a b. Coercible a b => a -> b
coerce @CSize @Word64 CSize
pDataSize)))) Ptr () -> IO ()
forall a. Ptr a -> IO ()
free
Result
r' <- IO Result -> ContT (Result, "data" ::: ByteString) IO Result
forall (m :: * -> *) a.
Monad m =>
m a -> ContT (Result, "data" ::: ByteString) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Result -> ContT (Result, "data" ::: ByteString) IO Result)
-> IO Result -> ContT (Result, "data" ::: ByteString) IO Result
forall a b. (a -> b) -> a -> b
$ String -> IO Result -> IO Result
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetValidationCacheDataEXT" (Ptr Device_T
-> ValidationCacheEXT -> Ptr CSize -> Ptr () -> IO Result
vkGetValidationCacheDataEXT'
Ptr Device_T
device'
(ValidationCacheEXT
validationCache)
(Ptr CSize
pPDataSize)
(Ptr ()
pPData))
IO () -> ContT (Result, "data" ::: ByteString) IO ()
forall (m :: * -> *) a.
Monad m =>
m a -> ContT (Result, "data" ::: ByteString) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT (Result, "data" ::: ByteString) IO ())
-> IO () -> ContT (Result, "data" ::: ByteString) IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Result
r' Result -> Result -> Bool
forall a. Ord a => a -> a -> Bool
< Result
SUCCESS) (VulkanException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (Result -> VulkanException
VulkanException Result
r'))
CSize
pDataSize'' <- IO CSize -> ContT (Result, "data" ::: ByteString) IO CSize
forall (m :: * -> *) a.
Monad m =>
m a -> ContT (Result, "data" ::: ByteString) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO CSize -> ContT (Result, "data" ::: ByteString) IO CSize)
-> IO CSize -> ContT (Result, "data" ::: ByteString) IO CSize
forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> IO a
peek @CSize Ptr CSize
pPDataSize
"data" ::: ByteString
pData' <- IO ("data" ::: ByteString)
-> ContT (Result, "data" ::: ByteString) IO ("data" ::: ByteString)
forall (m :: * -> *) a.
Monad m =>
m a -> ContT (Result, "data" ::: ByteString) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ("data" ::: ByteString)
-> ContT
(Result, "data" ::: ByteString) IO ("data" ::: ByteString))
-> IO ("data" ::: ByteString)
-> ContT (Result, "data" ::: ByteString) IO ("data" ::: ByteString)
forall a b. (a -> b) -> a -> b
$ CStringLen -> IO ("data" ::: ByteString)
packCStringLen ( forall a b. Ptr a -> Ptr b
castPtr @() @CChar Ptr ()
pPData
, (Word64 -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral ((forall a b. Coercible a b => a -> b
forall a b. Coercible a b => a -> b
coerce @CSize @Word64 CSize
pDataSize''))) )
(Result, "data" ::: ByteString)
-> ContT
(Result, "data" ::: ByteString) IO (Result, "data" ::: ByteString)
forall a. a -> ContT (Result, "data" ::: ByteString) IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ((Result, "data" ::: ByteString)
-> ContT
(Result, "data" ::: ByteString) IO (Result, "data" ::: ByteString))
-> (Result, "data" ::: ByteString)
-> ContT
(Result, "data" ::: ByteString) IO (Result, "data" ::: ByteString)
forall a b. (a -> b) -> a -> b
$ ((Result
r'), "data" ::: ByteString
pData')
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkMergeValidationCachesEXT
:: FunPtr (Ptr Device_T -> ValidationCacheEXT -> Word32 -> Ptr ValidationCacheEXT -> IO Result) -> Ptr Device_T -> ValidationCacheEXT -> Word32 -> Ptr ValidationCacheEXT -> IO Result
mergeValidationCachesEXT :: forall io
. (MonadIO io)
=>
Device
->
("dstCache" ::: ValidationCacheEXT)
->
("srcCaches" ::: Vector ValidationCacheEXT)
-> io ()
mergeValidationCachesEXT :: forall (io :: * -> *).
MonadIO io =>
Device
-> ValidationCacheEXT
-> ("srcCaches" ::: Vector ValidationCacheEXT)
-> io ()
mergeValidationCachesEXT Device
device ValidationCacheEXT
dstCache "srcCaches" ::: Vector ValidationCacheEXT
srcCaches = IO () -> io ()
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ())
-> (ContT () IO () -> IO ()) -> ContT () IO () -> io ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT () IO () -> IO ()
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT () IO () -> io ()) -> ContT () IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkMergeValidationCachesEXTPtr :: FunPtr
(Ptr Device_T
-> ValidationCacheEXT
-> Word32
-> Ptr ValidationCacheEXT
-> IO Result)
vkMergeValidationCachesEXTPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> ValidationCacheEXT
-> Word32
-> Ptr ValidationCacheEXT
-> IO Result)
pVkMergeValidationCachesEXT (case Device
device of Device{DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> ValidationCacheEXT
-> Word32
-> Ptr ValidationCacheEXT
-> IO Result)
vkMergeValidationCachesEXTPtr FunPtr
(Ptr Device_T
-> ValidationCacheEXT
-> Word32
-> Ptr ValidationCacheEXT
-> IO Result)
-> FunPtr
(Ptr Device_T
-> ValidationCacheEXT
-> Word32
-> Ptr ValidationCacheEXT
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> ValidationCacheEXT
-> Word32
-> Ptr ValidationCacheEXT
-> IO Result)
forall a. FunPtr a
nullFunPtr) (IO () -> IO ()) -> IO () -> IO ()
forall a b. (a -> b) -> a -> b
$
IOException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (IOException -> IO ()) -> IOException -> IO ()
forall a b. (a -> b) -> a -> b
$ Maybe Handle
-> IOErrorType
-> String
-> String
-> Maybe CInt
-> Maybe String
-> IOException
IOError Maybe Handle
forall a. Maybe a
Nothing IOErrorType
InvalidArgument String
"" String
"The function pointer for vkMergeValidationCachesEXT is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkMergeValidationCachesEXT' :: Ptr Device_T
-> ValidationCacheEXT
-> Word32
-> Ptr ValidationCacheEXT
-> IO Result
vkMergeValidationCachesEXT' = FunPtr
(Ptr Device_T
-> ValidationCacheEXT
-> Word32
-> Ptr ValidationCacheEXT
-> IO Result)
-> Ptr Device_T
-> ValidationCacheEXT
-> Word32
-> Ptr ValidationCacheEXT
-> IO Result
mkVkMergeValidationCachesEXT FunPtr
(Ptr Device_T
-> ValidationCacheEXT
-> Word32
-> Ptr ValidationCacheEXT
-> IO Result)
vkMergeValidationCachesEXTPtr
Ptr ValidationCacheEXT
pPSrcCaches <- ((Ptr ValidationCacheEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr ValidationCacheEXT)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr ValidationCacheEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr ValidationCacheEXT))
-> ((Ptr ValidationCacheEXT -> IO ()) -> IO ())
-> ContT () IO (Ptr ValidationCacheEXT)
forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @ValidationCacheEXT ((("srcCaches" ::: Vector ValidationCacheEXT) -> Int
forall a. Vector a -> Int
Data.Vector.length ("srcCaches" ::: Vector ValidationCacheEXT
srcCaches)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
8)
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ (Int -> ValidationCacheEXT -> IO ())
-> ("srcCaches" ::: Vector ValidationCacheEXT) -> IO ()
forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i ValidationCacheEXT
e -> Ptr ValidationCacheEXT -> ValidationCacheEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr ValidationCacheEXT
pPSrcCaches Ptr ValidationCacheEXT -> Int -> Ptr ValidationCacheEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
8 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr ValidationCacheEXT) (ValidationCacheEXT
e)) ("srcCaches" ::: Vector ValidationCacheEXT
srcCaches)
Result
r <- IO Result -> ContT () IO Result
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Result -> ContT () IO Result)
-> IO Result -> ContT () IO Result
forall a b. (a -> b) -> a -> b
$ String -> IO Result -> IO Result
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkMergeValidationCachesEXT" (Ptr Device_T
-> ValidationCacheEXT
-> Word32
-> Ptr ValidationCacheEXT
-> IO Result
vkMergeValidationCachesEXT'
(Device -> Ptr Device_T
deviceHandle (Device
device))
(ValidationCacheEXT
dstCache)
((Int -> Word32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (("srcCaches" ::: Vector ValidationCacheEXT) -> Int
forall a. Vector a -> Int
Data.Vector.length (("srcCaches" ::: Vector ValidationCacheEXT) -> Int)
-> ("srcCaches" ::: Vector ValidationCacheEXT) -> Int
forall a b. (a -> b) -> a -> b
$ ("srcCaches" ::: Vector ValidationCacheEXT
srcCaches)) :: Word32))
(Ptr ValidationCacheEXT
pPSrcCaches))
IO () -> ContT () IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT () m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT () IO ()) -> IO () -> ContT () IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Result
r Result -> Result -> Bool
forall a. Ord a => a -> a -> Bool
< Result
SUCCESS) (VulkanException -> IO ()
forall e a. Exception e => e -> IO a
throwIO (Result -> VulkanException
VulkanException Result
r))
data ValidationCacheCreateInfoEXT = ValidationCacheCreateInfoEXT
{
ValidationCacheCreateInfoEXT -> ValidationCacheCreateFlagsEXT
flags :: ValidationCacheCreateFlagsEXT
,
ValidationCacheCreateInfoEXT -> Word64
initialDataSize :: Word64
,
ValidationCacheCreateInfoEXT -> Ptr ()
initialData :: Ptr ()
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (ValidationCacheCreateInfoEXT)
#endif
deriving instance Show ValidationCacheCreateInfoEXT
instance ToCStruct ValidationCacheCreateInfoEXT where
withCStruct :: forall b.
ValidationCacheCreateInfoEXT
-> (Ptr ValidationCacheCreateInfoEXT -> IO b) -> IO b
withCStruct ValidationCacheCreateInfoEXT
x Ptr ValidationCacheCreateInfoEXT -> IO b
f = Int -> (Ptr ValidationCacheCreateInfoEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 ((Ptr ValidationCacheCreateInfoEXT -> IO b) -> IO b)
-> (Ptr ValidationCacheCreateInfoEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr ValidationCacheCreateInfoEXT
p -> Ptr ValidationCacheCreateInfoEXT
-> ValidationCacheCreateInfoEXT -> IO b -> IO b
forall b.
Ptr ValidationCacheCreateInfoEXT
-> ValidationCacheCreateInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ValidationCacheCreateInfoEXT
p ValidationCacheCreateInfoEXT
x (Ptr ValidationCacheCreateInfoEXT -> IO b
f Ptr ValidationCacheCreateInfoEXT
p)
pokeCStruct :: forall b.
Ptr ValidationCacheCreateInfoEXT
-> ValidationCacheCreateInfoEXT -> IO b -> IO b
pokeCStruct Ptr ValidationCacheCreateInfoEXT
p ValidationCacheCreateInfoEXT{Word64
Ptr ()
ValidationCacheCreateFlagsEXT
$sel:flags:ValidationCacheCreateInfoEXT :: ValidationCacheCreateInfoEXT -> ValidationCacheCreateFlagsEXT
$sel:initialDataSize:ValidationCacheCreateInfoEXT :: ValidationCacheCreateInfoEXT -> Word64
$sel:initialData:ValidationCacheCreateInfoEXT :: ValidationCacheCreateInfoEXT -> Ptr ()
flags :: ValidationCacheCreateFlagsEXT
initialDataSize :: Word64
initialData :: Ptr ()
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ValidationCacheCreateInfoEXT
p Ptr ValidationCacheCreateInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ValidationCacheCreateInfoEXT
p Ptr ValidationCacheCreateInfoEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ValidationCacheCreateInfoEXT
p Ptr ValidationCacheCreateInfoEXT
-> Int -> Ptr ValidationCacheCreateFlagsEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ValidationCacheCreateFlagsEXT)) (ValidationCacheCreateFlagsEXT
flags)
Ptr CSize -> CSize -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ValidationCacheCreateInfoEXT
p Ptr ValidationCacheCreateInfoEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr CSize)) (Word64 -> CSize
CSize (Word64
initialDataSize))
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ValidationCacheCreateInfoEXT
p Ptr ValidationCacheCreateInfoEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr (Ptr ()))) (Ptr ()
initialData)
IO b
f
cStructSize :: Int
cStructSize = Int
40
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr ValidationCacheCreateInfoEXT -> IO b -> IO b
pokeZeroCStruct Ptr ValidationCacheCreateInfoEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ValidationCacheCreateInfoEXT
p Ptr ValidationCacheCreateInfoEXT -> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ValidationCacheCreateInfoEXT
p Ptr ValidationCacheCreateInfoEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ValidationCacheCreateInfoEXT
p Ptr ValidationCacheCreateInfoEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr (Ptr ()))) (Ptr ()
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct ValidationCacheCreateInfoEXT where
peekCStruct :: Ptr ValidationCacheCreateInfoEXT -> IO ValidationCacheCreateInfoEXT
peekCStruct Ptr ValidationCacheCreateInfoEXT
p = do
ValidationCacheCreateFlagsEXT
flags <- forall a. Storable a => Ptr a -> IO a
peek @ValidationCacheCreateFlagsEXT ((Ptr ValidationCacheCreateInfoEXT
p Ptr ValidationCacheCreateInfoEXT
-> Int -> Ptr ValidationCacheCreateFlagsEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ValidationCacheCreateFlagsEXT))
CSize
initialDataSize <- forall a. Storable a => Ptr a -> IO a
peek @CSize ((Ptr ValidationCacheCreateInfoEXT
p Ptr ValidationCacheCreateInfoEXT -> Int -> Ptr CSize
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr CSize))
Ptr ()
pInitialData <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr ()) ((Ptr ValidationCacheCreateInfoEXT
p Ptr ValidationCacheCreateInfoEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr (Ptr ())))
ValidationCacheCreateInfoEXT -> IO ValidationCacheCreateInfoEXT
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (ValidationCacheCreateInfoEXT -> IO ValidationCacheCreateInfoEXT)
-> ValidationCacheCreateInfoEXT -> IO ValidationCacheCreateInfoEXT
forall a b. (a -> b) -> a -> b
$ ValidationCacheCreateFlagsEXT
-> Word64 -> Ptr () -> ValidationCacheCreateInfoEXT
ValidationCacheCreateInfoEXT
ValidationCacheCreateFlagsEXT
flags (forall a b. Coercible a b => a -> b
forall a b. Coercible a b => a -> b
coerce @CSize @Word64 CSize
initialDataSize) Ptr ()
pInitialData
instance Storable ValidationCacheCreateInfoEXT where
sizeOf :: ValidationCacheCreateInfoEXT -> Int
sizeOf ~ValidationCacheCreateInfoEXT
_ = Int
40
alignment :: ValidationCacheCreateInfoEXT -> Int
alignment ~ValidationCacheCreateInfoEXT
_ = Int
8
peek :: Ptr ValidationCacheCreateInfoEXT -> IO ValidationCacheCreateInfoEXT
peek = Ptr ValidationCacheCreateInfoEXT -> IO ValidationCacheCreateInfoEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr ValidationCacheCreateInfoEXT
-> ValidationCacheCreateInfoEXT -> IO ()
poke Ptr ValidationCacheCreateInfoEXT
ptr ValidationCacheCreateInfoEXT
poked = Ptr ValidationCacheCreateInfoEXT
-> ValidationCacheCreateInfoEXT -> IO () -> IO ()
forall b.
Ptr ValidationCacheCreateInfoEXT
-> ValidationCacheCreateInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ValidationCacheCreateInfoEXT
ptr ValidationCacheCreateInfoEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero ValidationCacheCreateInfoEXT where
zero :: ValidationCacheCreateInfoEXT
zero = ValidationCacheCreateFlagsEXT
-> Word64 -> Ptr () -> ValidationCacheCreateInfoEXT
ValidationCacheCreateInfoEXT
ValidationCacheCreateFlagsEXT
forall a. Zero a => a
zero
Word64
forall a. Zero a => a
zero
Ptr ()
forall a. Zero a => a
zero
data ShaderModuleValidationCacheCreateInfoEXT = ShaderModuleValidationCacheCreateInfoEXT
{
ShaderModuleValidationCacheCreateInfoEXT -> ValidationCacheEXT
validationCache :: ValidationCacheEXT }
deriving (Typeable, ShaderModuleValidationCacheCreateInfoEXT
-> ShaderModuleValidationCacheCreateInfoEXT -> Bool
(ShaderModuleValidationCacheCreateInfoEXT
-> ShaderModuleValidationCacheCreateInfoEXT -> Bool)
-> (ShaderModuleValidationCacheCreateInfoEXT
-> ShaderModuleValidationCacheCreateInfoEXT -> Bool)
-> Eq ShaderModuleValidationCacheCreateInfoEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ShaderModuleValidationCacheCreateInfoEXT
-> ShaderModuleValidationCacheCreateInfoEXT -> Bool
== :: ShaderModuleValidationCacheCreateInfoEXT
-> ShaderModuleValidationCacheCreateInfoEXT -> Bool
$c/= :: ShaderModuleValidationCacheCreateInfoEXT
-> ShaderModuleValidationCacheCreateInfoEXT -> Bool
/= :: ShaderModuleValidationCacheCreateInfoEXT
-> ShaderModuleValidationCacheCreateInfoEXT -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (ShaderModuleValidationCacheCreateInfoEXT)
#endif
deriving instance Show ShaderModuleValidationCacheCreateInfoEXT
instance ToCStruct ShaderModuleValidationCacheCreateInfoEXT where
withCStruct :: forall b.
ShaderModuleValidationCacheCreateInfoEXT
-> (Ptr ShaderModuleValidationCacheCreateInfoEXT -> IO b) -> IO b
withCStruct ShaderModuleValidationCacheCreateInfoEXT
x Ptr ShaderModuleValidationCacheCreateInfoEXT -> IO b
f = Int
-> (Ptr ShaderModuleValidationCacheCreateInfoEXT -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr ShaderModuleValidationCacheCreateInfoEXT -> IO b) -> IO b)
-> (Ptr ShaderModuleValidationCacheCreateInfoEXT -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr ShaderModuleValidationCacheCreateInfoEXT
p -> Ptr ShaderModuleValidationCacheCreateInfoEXT
-> ShaderModuleValidationCacheCreateInfoEXT -> IO b -> IO b
forall b.
Ptr ShaderModuleValidationCacheCreateInfoEXT
-> ShaderModuleValidationCacheCreateInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ShaderModuleValidationCacheCreateInfoEXT
p ShaderModuleValidationCacheCreateInfoEXT
x (Ptr ShaderModuleValidationCacheCreateInfoEXT -> IO b
f Ptr ShaderModuleValidationCacheCreateInfoEXT
p)
pokeCStruct :: forall b.
Ptr ShaderModuleValidationCacheCreateInfoEXT
-> ShaderModuleValidationCacheCreateInfoEXT -> IO b -> IO b
pokeCStruct Ptr ShaderModuleValidationCacheCreateInfoEXT
p ShaderModuleValidationCacheCreateInfoEXT{ValidationCacheEXT
$sel:validationCache:ShaderModuleValidationCacheCreateInfoEXT :: ShaderModuleValidationCacheCreateInfoEXT -> ValidationCacheEXT
validationCache :: ValidationCacheEXT
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ShaderModuleValidationCacheCreateInfoEXT
p Ptr ShaderModuleValidationCacheCreateInfoEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ShaderModuleValidationCacheCreateInfoEXT
p Ptr ShaderModuleValidationCacheCreateInfoEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr ValidationCacheEXT -> ValidationCacheEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ShaderModuleValidationCacheCreateInfoEXT
p Ptr ShaderModuleValidationCacheCreateInfoEXT
-> Int -> Ptr ValidationCacheEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ValidationCacheEXT)) (ValidationCacheEXT
validationCache)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr ShaderModuleValidationCacheCreateInfoEXT -> IO b -> IO b
pokeZeroCStruct Ptr ShaderModuleValidationCacheCreateInfoEXT
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ShaderModuleValidationCacheCreateInfoEXT
p Ptr ShaderModuleValidationCacheCreateInfoEXT
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ShaderModuleValidationCacheCreateInfoEXT
p Ptr ShaderModuleValidationCacheCreateInfoEXT -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr ValidationCacheEXT -> ValidationCacheEXT -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ShaderModuleValidationCacheCreateInfoEXT
p Ptr ShaderModuleValidationCacheCreateInfoEXT
-> Int -> Ptr ValidationCacheEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ValidationCacheEXT)) (ValidationCacheEXT
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct ShaderModuleValidationCacheCreateInfoEXT where
peekCStruct :: Ptr ShaderModuleValidationCacheCreateInfoEXT
-> IO ShaderModuleValidationCacheCreateInfoEXT
peekCStruct Ptr ShaderModuleValidationCacheCreateInfoEXT
p = do
ValidationCacheEXT
validationCache <- forall a. Storable a => Ptr a -> IO a
peek @ValidationCacheEXT ((Ptr ShaderModuleValidationCacheCreateInfoEXT
p Ptr ShaderModuleValidationCacheCreateInfoEXT
-> Int -> Ptr ValidationCacheEXT
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr ValidationCacheEXT))
ShaderModuleValidationCacheCreateInfoEXT
-> IO ShaderModuleValidationCacheCreateInfoEXT
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (ShaderModuleValidationCacheCreateInfoEXT
-> IO ShaderModuleValidationCacheCreateInfoEXT)
-> ShaderModuleValidationCacheCreateInfoEXT
-> IO ShaderModuleValidationCacheCreateInfoEXT
forall a b. (a -> b) -> a -> b
$ ValidationCacheEXT -> ShaderModuleValidationCacheCreateInfoEXT
ShaderModuleValidationCacheCreateInfoEXT
ValidationCacheEXT
validationCache
instance Storable ShaderModuleValidationCacheCreateInfoEXT where
sizeOf :: ShaderModuleValidationCacheCreateInfoEXT -> Int
sizeOf ~ShaderModuleValidationCacheCreateInfoEXT
_ = Int
24
alignment :: ShaderModuleValidationCacheCreateInfoEXT -> Int
alignment ~ShaderModuleValidationCacheCreateInfoEXT
_ = Int
8
peek :: Ptr ShaderModuleValidationCacheCreateInfoEXT
-> IO ShaderModuleValidationCacheCreateInfoEXT
peek = Ptr ShaderModuleValidationCacheCreateInfoEXT
-> IO ShaderModuleValidationCacheCreateInfoEXT
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr ShaderModuleValidationCacheCreateInfoEXT
-> ShaderModuleValidationCacheCreateInfoEXT -> IO ()
poke Ptr ShaderModuleValidationCacheCreateInfoEXT
ptr ShaderModuleValidationCacheCreateInfoEXT
poked = Ptr ShaderModuleValidationCacheCreateInfoEXT
-> ShaderModuleValidationCacheCreateInfoEXT -> IO () -> IO ()
forall b.
Ptr ShaderModuleValidationCacheCreateInfoEXT
-> ShaderModuleValidationCacheCreateInfoEXT -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ShaderModuleValidationCacheCreateInfoEXT
ptr ShaderModuleValidationCacheCreateInfoEXT
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero ShaderModuleValidationCacheCreateInfoEXT where
zero :: ShaderModuleValidationCacheCreateInfoEXT
zero = ValidationCacheEXT -> ShaderModuleValidationCacheCreateInfoEXT
ShaderModuleValidationCacheCreateInfoEXT
ValidationCacheEXT
forall a. Zero a => a
zero
newtype ValidationCacheCreateFlagsEXT = ValidationCacheCreateFlagsEXT Flags
deriving newtype (ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Bool
(ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Bool)
-> (ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Bool)
-> Eq ValidationCacheCreateFlagsEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Bool
== :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Bool
$c/= :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Bool
/= :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Bool
Eq, Eq ValidationCacheCreateFlagsEXT
Eq ValidationCacheCreateFlagsEXT =>
(ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Ordering)
-> (ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Bool)
-> (ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Bool)
-> (ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Bool)
-> (ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Bool)
-> (ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> ValidationCacheCreateFlagsEXT)
-> (ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> ValidationCacheCreateFlagsEXT)
-> Ord ValidationCacheCreateFlagsEXT
ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Bool
ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Ordering
ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> ValidationCacheCreateFlagsEXT
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
$ccompare :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Ordering
compare :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Ordering
$c< :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Bool
< :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Bool
$c<= :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Bool
<= :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Bool
$c> :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Bool
> :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Bool
$c>= :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Bool
>= :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> Bool
$cmax :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> ValidationCacheCreateFlagsEXT
max :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> ValidationCacheCreateFlagsEXT
$cmin :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> ValidationCacheCreateFlagsEXT
min :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> ValidationCacheCreateFlagsEXT
Ord, Ptr ValidationCacheCreateFlagsEXT
-> IO ValidationCacheCreateFlagsEXT
Ptr ValidationCacheCreateFlagsEXT
-> Int -> IO ValidationCacheCreateFlagsEXT
Ptr ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT -> IO ()
Ptr ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> IO ()
ValidationCacheCreateFlagsEXT -> Int
(ValidationCacheCreateFlagsEXT -> Int)
-> (ValidationCacheCreateFlagsEXT -> Int)
-> (Ptr ValidationCacheCreateFlagsEXT
-> Int -> IO ValidationCacheCreateFlagsEXT)
-> (Ptr ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT -> IO ())
-> (forall b. Ptr b -> Int -> IO ValidationCacheCreateFlagsEXT)
-> (forall b.
Ptr b -> Int -> ValidationCacheCreateFlagsEXT -> IO ())
-> (Ptr ValidationCacheCreateFlagsEXT
-> IO ValidationCacheCreateFlagsEXT)
-> (Ptr ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> IO ())
-> Storable ValidationCacheCreateFlagsEXT
forall b. Ptr b -> Int -> IO ValidationCacheCreateFlagsEXT
forall b. Ptr b -> Int -> ValidationCacheCreateFlagsEXT -> 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
$csizeOf :: ValidationCacheCreateFlagsEXT -> Int
sizeOf :: ValidationCacheCreateFlagsEXT -> Int
$calignment :: ValidationCacheCreateFlagsEXT -> Int
alignment :: ValidationCacheCreateFlagsEXT -> Int
$cpeekElemOff :: Ptr ValidationCacheCreateFlagsEXT
-> Int -> IO ValidationCacheCreateFlagsEXT
peekElemOff :: Ptr ValidationCacheCreateFlagsEXT
-> Int -> IO ValidationCacheCreateFlagsEXT
$cpokeElemOff :: Ptr ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT -> IO ()
pokeElemOff :: Ptr ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO ValidationCacheCreateFlagsEXT
peekByteOff :: forall b. Ptr b -> Int -> IO ValidationCacheCreateFlagsEXT
$cpokeByteOff :: forall b. Ptr b -> Int -> ValidationCacheCreateFlagsEXT -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> ValidationCacheCreateFlagsEXT -> IO ()
$cpeek :: Ptr ValidationCacheCreateFlagsEXT
-> IO ValidationCacheCreateFlagsEXT
peek :: Ptr ValidationCacheCreateFlagsEXT
-> IO ValidationCacheCreateFlagsEXT
$cpoke :: Ptr ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> IO ()
poke :: Ptr ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> IO ()
Storable, ValidationCacheCreateFlagsEXT
ValidationCacheCreateFlagsEXT -> Zero ValidationCacheCreateFlagsEXT
forall a. a -> Zero a
$czero :: ValidationCacheCreateFlagsEXT
zero :: ValidationCacheCreateFlagsEXT
Zero, Eq ValidationCacheCreateFlagsEXT
ValidationCacheCreateFlagsEXT
Eq ValidationCacheCreateFlagsEXT =>
(ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> ValidationCacheCreateFlagsEXT)
-> (ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> ValidationCacheCreateFlagsEXT)
-> (ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> ValidationCacheCreateFlagsEXT)
-> (ValidationCacheCreateFlagsEXT -> ValidationCacheCreateFlagsEXT)
-> (ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT)
-> (ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT)
-> ValidationCacheCreateFlagsEXT
-> (Int -> ValidationCacheCreateFlagsEXT)
-> (ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT)
-> (ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT)
-> (ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT)
-> (ValidationCacheCreateFlagsEXT -> Int -> Bool)
-> (ValidationCacheCreateFlagsEXT -> Maybe Int)
-> (ValidationCacheCreateFlagsEXT -> Int)
-> (ValidationCacheCreateFlagsEXT -> Bool)
-> (ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT)
-> (ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT)
-> (ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT)
-> (ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT)
-> (ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT)
-> (ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT)
-> (ValidationCacheCreateFlagsEXT -> Int)
-> Bits ValidationCacheCreateFlagsEXT
Int -> ValidationCacheCreateFlagsEXT
ValidationCacheCreateFlagsEXT -> Bool
ValidationCacheCreateFlagsEXT -> Int
ValidationCacheCreateFlagsEXT -> Maybe Int
ValidationCacheCreateFlagsEXT -> ValidationCacheCreateFlagsEXT
ValidationCacheCreateFlagsEXT -> Int -> Bool
ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT
ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> ValidationCacheCreateFlagsEXT
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
$c.&. :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> ValidationCacheCreateFlagsEXT
.&. :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> ValidationCacheCreateFlagsEXT
$c.|. :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> ValidationCacheCreateFlagsEXT
.|. :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> ValidationCacheCreateFlagsEXT
$cxor :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> ValidationCacheCreateFlagsEXT
xor :: ValidationCacheCreateFlagsEXT
-> ValidationCacheCreateFlagsEXT -> ValidationCacheCreateFlagsEXT
$ccomplement :: ValidationCacheCreateFlagsEXT -> ValidationCacheCreateFlagsEXT
complement :: ValidationCacheCreateFlagsEXT -> ValidationCacheCreateFlagsEXT
$cshift :: ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT
shift :: ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT
$crotate :: ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT
rotate :: ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT
$czeroBits :: ValidationCacheCreateFlagsEXT
zeroBits :: ValidationCacheCreateFlagsEXT
$cbit :: Int -> ValidationCacheCreateFlagsEXT
bit :: Int -> ValidationCacheCreateFlagsEXT
$csetBit :: ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT
setBit :: ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT
$cclearBit :: ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT
clearBit :: ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT
$ccomplementBit :: ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT
complementBit :: ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT
$ctestBit :: ValidationCacheCreateFlagsEXT -> Int -> Bool
testBit :: ValidationCacheCreateFlagsEXT -> Int -> Bool
$cbitSizeMaybe :: ValidationCacheCreateFlagsEXT -> Maybe Int
bitSizeMaybe :: ValidationCacheCreateFlagsEXT -> Maybe Int
$cbitSize :: ValidationCacheCreateFlagsEXT -> Int
bitSize :: ValidationCacheCreateFlagsEXT -> Int
$cisSigned :: ValidationCacheCreateFlagsEXT -> Bool
isSigned :: ValidationCacheCreateFlagsEXT -> Bool
$cshiftL :: ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT
shiftL :: ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT
$cunsafeShiftL :: ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT
unsafeShiftL :: ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT
$cshiftR :: ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT
shiftR :: ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT
$cunsafeShiftR :: ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT
unsafeShiftR :: ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT
$crotateL :: ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT
rotateL :: ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT
$crotateR :: ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT
rotateR :: ValidationCacheCreateFlagsEXT
-> Int -> ValidationCacheCreateFlagsEXT
$cpopCount :: ValidationCacheCreateFlagsEXT -> Int
popCount :: ValidationCacheCreateFlagsEXT -> Int
Bits, Bits ValidationCacheCreateFlagsEXT
Bits ValidationCacheCreateFlagsEXT =>
(ValidationCacheCreateFlagsEXT -> Int)
-> (ValidationCacheCreateFlagsEXT -> Int)
-> (ValidationCacheCreateFlagsEXT -> Int)
-> FiniteBits ValidationCacheCreateFlagsEXT
ValidationCacheCreateFlagsEXT -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: ValidationCacheCreateFlagsEXT -> Int
finiteBitSize :: ValidationCacheCreateFlagsEXT -> Int
$ccountLeadingZeros :: ValidationCacheCreateFlagsEXT -> Int
countLeadingZeros :: ValidationCacheCreateFlagsEXT -> Int
$ccountTrailingZeros :: ValidationCacheCreateFlagsEXT -> Int
countTrailingZeros :: ValidationCacheCreateFlagsEXT -> Int
FiniteBits)
conNameValidationCacheCreateFlagsEXT :: String
conNameValidationCacheCreateFlagsEXT :: String
conNameValidationCacheCreateFlagsEXT = String
"ValidationCacheCreateFlagsEXT"
enumPrefixValidationCacheCreateFlagsEXT :: String
enumPrefixValidationCacheCreateFlagsEXT :: String
enumPrefixValidationCacheCreateFlagsEXT = String
""
showTableValidationCacheCreateFlagsEXT :: [(ValidationCacheCreateFlagsEXT, String)]
showTableValidationCacheCreateFlagsEXT :: [(ValidationCacheCreateFlagsEXT, String)]
showTableValidationCacheCreateFlagsEXT = []
instance Show ValidationCacheCreateFlagsEXT where
showsPrec :: Int -> ValidationCacheCreateFlagsEXT -> ShowS
showsPrec =
String
-> [(ValidationCacheCreateFlagsEXT, String)]
-> String
-> (ValidationCacheCreateFlagsEXT -> Word32)
-> (Word32 -> ShowS)
-> Int
-> ValidationCacheCreateFlagsEXT
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixValidationCacheCreateFlagsEXT
[(ValidationCacheCreateFlagsEXT, String)]
showTableValidationCacheCreateFlagsEXT
String
conNameValidationCacheCreateFlagsEXT
(\(ValidationCacheCreateFlagsEXT Word32
x) -> Word32
x)
(\Word32
x -> String -> ShowS
showString String
"0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word32 -> ShowS
forall a. Integral a => a -> ShowS
showHex Word32
x)
instance Read ValidationCacheCreateFlagsEXT where
readPrec :: ReadPrec ValidationCacheCreateFlagsEXT
readPrec =
String
-> [(ValidationCacheCreateFlagsEXT, String)]
-> String
-> (Word32 -> ValidationCacheCreateFlagsEXT)
-> ReadPrec ValidationCacheCreateFlagsEXT
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixValidationCacheCreateFlagsEXT
[(ValidationCacheCreateFlagsEXT, String)]
showTableValidationCacheCreateFlagsEXT
String
conNameValidationCacheCreateFlagsEXT
Word32 -> ValidationCacheCreateFlagsEXT
ValidationCacheCreateFlagsEXT
newtype = Int32
deriving newtype (ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Bool
(ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Bool)
-> (ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Bool)
-> Eq ValidationCacheHeaderVersionEXT
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Bool
== :: ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Bool
$c/= :: ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Bool
/= :: ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Bool
Eq, Eq ValidationCacheHeaderVersionEXT
Eq ValidationCacheHeaderVersionEXT =>
(ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Ordering)
-> (ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Bool)
-> (ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Bool)
-> (ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Bool)
-> (ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Bool)
-> (ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT)
-> (ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT)
-> Ord ValidationCacheHeaderVersionEXT
ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Bool
ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Ordering
ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT
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
$ccompare :: ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Ordering
compare :: ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Ordering
$c< :: ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Bool
< :: ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Bool
$c<= :: ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Bool
<= :: ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Bool
$c> :: ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Bool
> :: ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Bool
$c>= :: ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Bool
>= :: ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> Bool
$cmax :: ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT
max :: ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT
$cmin :: ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT
min :: ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT
Ord, Ptr ValidationCacheHeaderVersionEXT
-> IO ValidationCacheHeaderVersionEXT
Ptr ValidationCacheHeaderVersionEXT
-> Int -> IO ValidationCacheHeaderVersionEXT
Ptr ValidationCacheHeaderVersionEXT
-> Int -> ValidationCacheHeaderVersionEXT -> IO ()
Ptr ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> IO ()
ValidationCacheHeaderVersionEXT -> Int
(ValidationCacheHeaderVersionEXT -> Int)
-> (ValidationCacheHeaderVersionEXT -> Int)
-> (Ptr ValidationCacheHeaderVersionEXT
-> Int -> IO ValidationCacheHeaderVersionEXT)
-> (Ptr ValidationCacheHeaderVersionEXT
-> Int -> ValidationCacheHeaderVersionEXT -> IO ())
-> (forall b. Ptr b -> Int -> IO ValidationCacheHeaderVersionEXT)
-> (forall b.
Ptr b -> Int -> ValidationCacheHeaderVersionEXT -> IO ())
-> (Ptr ValidationCacheHeaderVersionEXT
-> IO ValidationCacheHeaderVersionEXT)
-> (Ptr ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> IO ())
-> Storable ValidationCacheHeaderVersionEXT
forall b. Ptr b -> Int -> IO ValidationCacheHeaderVersionEXT
forall b. Ptr b -> Int -> ValidationCacheHeaderVersionEXT -> 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
$csizeOf :: ValidationCacheHeaderVersionEXT -> Int
sizeOf :: ValidationCacheHeaderVersionEXT -> Int
$calignment :: ValidationCacheHeaderVersionEXT -> Int
alignment :: ValidationCacheHeaderVersionEXT -> Int
$cpeekElemOff :: Ptr ValidationCacheHeaderVersionEXT
-> Int -> IO ValidationCacheHeaderVersionEXT
peekElemOff :: Ptr ValidationCacheHeaderVersionEXT
-> Int -> IO ValidationCacheHeaderVersionEXT
$cpokeElemOff :: Ptr ValidationCacheHeaderVersionEXT
-> Int -> ValidationCacheHeaderVersionEXT -> IO ()
pokeElemOff :: Ptr ValidationCacheHeaderVersionEXT
-> Int -> ValidationCacheHeaderVersionEXT -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO ValidationCacheHeaderVersionEXT
peekByteOff :: forall b. Ptr b -> Int -> IO ValidationCacheHeaderVersionEXT
$cpokeByteOff :: forall b. Ptr b -> Int -> ValidationCacheHeaderVersionEXT -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> ValidationCacheHeaderVersionEXT -> IO ()
$cpeek :: Ptr ValidationCacheHeaderVersionEXT
-> IO ValidationCacheHeaderVersionEXT
peek :: Ptr ValidationCacheHeaderVersionEXT
-> IO ValidationCacheHeaderVersionEXT
$cpoke :: Ptr ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> IO ()
poke :: Ptr ValidationCacheHeaderVersionEXT
-> ValidationCacheHeaderVersionEXT -> IO ()
Storable, ValidationCacheHeaderVersionEXT
ValidationCacheHeaderVersionEXT
-> Zero ValidationCacheHeaderVersionEXT
forall a. a -> Zero a
$czero :: ValidationCacheHeaderVersionEXT
zero :: ValidationCacheHeaderVersionEXT
Zero)
pattern = ValidationCacheHeaderVersionEXT 1
{-# COMPLETE VALIDATION_CACHE_HEADER_VERSION_ONE_EXT :: ValidationCacheHeaderVersionEXT #-}
conNameValidationCacheHeaderVersionEXT :: String
= String
"ValidationCacheHeaderVersionEXT"
enumPrefixValidationCacheHeaderVersionEXT :: String
= String
"VALIDATION_CACHE_HEADER_VERSION_ONE_EXT"
showTableValidationCacheHeaderVersionEXT :: [(ValidationCacheHeaderVersionEXT, String)]
=
[
( ValidationCacheHeaderVersionEXT
VALIDATION_CACHE_HEADER_VERSION_ONE_EXT
, String
""
)
]
instance Show ValidationCacheHeaderVersionEXT where
showsPrec :: Int -> ValidationCacheHeaderVersionEXT -> ShowS
showsPrec =
String
-> [(ValidationCacheHeaderVersionEXT, String)]
-> String
-> (ValidationCacheHeaderVersionEXT -> Int32)
-> (Int32 -> ShowS)
-> Int
-> ValidationCacheHeaderVersionEXT
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixValidationCacheHeaderVersionEXT
[(ValidationCacheHeaderVersionEXT, String)]
showTableValidationCacheHeaderVersionEXT
String
conNameValidationCacheHeaderVersionEXT
(\(ValidationCacheHeaderVersionEXT Int32
x) -> Int32
x)
(Int -> Int32 -> ShowS
forall a. Show a => Int -> a -> ShowS
showsPrec Int
11)
instance Read ValidationCacheHeaderVersionEXT where
readPrec :: ReadPrec ValidationCacheHeaderVersionEXT
readPrec =
String
-> [(ValidationCacheHeaderVersionEXT, String)]
-> String
-> (Int32 -> ValidationCacheHeaderVersionEXT)
-> ReadPrec ValidationCacheHeaderVersionEXT
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixValidationCacheHeaderVersionEXT
[(ValidationCacheHeaderVersionEXT, String)]
showTableValidationCacheHeaderVersionEXT
String
conNameValidationCacheHeaderVersionEXT
Int32 -> ValidationCacheHeaderVersionEXT
ValidationCacheHeaderVersionEXT
type EXT_VALIDATION_CACHE_SPEC_VERSION = 1
pattern EXT_VALIDATION_CACHE_SPEC_VERSION :: forall a . Integral a => a
pattern $bEXT_VALIDATION_CACHE_SPEC_VERSION :: forall a. Integral a => a
$mEXT_VALIDATION_CACHE_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
EXT_VALIDATION_CACHE_SPEC_VERSION = 1
type EXT_VALIDATION_CACHE_EXTENSION_NAME = "VK_EXT_validation_cache"
pattern EXT_VALIDATION_CACHE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bEXT_VALIDATION_CACHE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
$mEXT_VALIDATION_CACHE_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
EXT_VALIDATION_CACHE_EXTENSION_NAME = "VK_EXT_validation_cache"