{-# language CPP #-}
module Vulkan.Extensions.VK_NV_cooperative_matrix2 ( getPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV
, PhysicalDeviceCooperativeMatrix2FeaturesNV(..)
, PhysicalDeviceCooperativeMatrix2PropertiesNV(..)
, CooperativeMatrixFlexibleDimensionsPropertiesNV(..)
, NV_COOPERATIVE_MATRIX_2_SPEC_VERSION
, pattern NV_COOPERATIVE_MATRIX_2_SPEC_VERSION
, NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME
, pattern NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME
, ScopeKHR(..)
, ComponentTypeKHR(..)
) where
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 (nullFunPtr)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import Control.Monad.Trans.Class (lift)
import Control.Monad.Trans.Cont (evalContT)
import Data.Vector (generateM)
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero(..))
import Control.Monad.IO.Class (MonadIO)
import Data.String (IsString)
import Data.Typeable (Typeable)
import Foreign.Storable (Storable)
import Foreign.Storable (Storable(peek))
import Foreign.Storable (Storable(poke))
import qualified Foreign.Storable (Storable(..))
import GHC.Generics (Generic)
import GHC.IO.Exception (IOErrorType(..))
import GHC.IO.Exception (IOException(..))
import Foreign.Ptr (FunPtr)
import Foreign.Ptr (Ptr)
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.FundamentalTypes (bool32ToBool)
import Vulkan.Core10.FundamentalTypes (boolToBool32)
import Vulkan.NamedType ((:::))
import Vulkan.Core10.FundamentalTypes (Bool32)
import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR)
import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV))
import Vulkan.Core10.Handles (PhysicalDevice)
import Vulkan.Core10.Handles (PhysicalDevice(..))
import Vulkan.Core10.Handles (PhysicalDevice(PhysicalDevice))
import Vulkan.Core10.Handles (PhysicalDevice_T)
import Vulkan.Core10.Enums.Result (Result)
import Vulkan.Core10.Enums.Result (Result(..))
import Vulkan.Extensions.VK_KHR_cooperative_matrix (ScopeKHR)
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Exception (VulkanException(..))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV))
import Vulkan.Core10.Enums.Result (Result(SUCCESS))
import Vulkan.Extensions.VK_KHR_cooperative_matrix (ComponentTypeKHR(..))
import Vulkan.Extensions.VK_KHR_cooperative_matrix (ScopeKHR(..))
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV
:: FunPtr (Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV -> IO Result) -> Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV -> IO Result
getPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV :: forall io
. (MonadIO io)
=>
PhysicalDevice
-> io (Result, ("properties" ::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
getPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV :: forall (io :: * -> *).
MonadIO io =>
PhysicalDevice
-> io
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
getPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV PhysicalDevice
physicalDevice = IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
-> io
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
-> io
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> (ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
-> io
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
-> io
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
-> io
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
forall a b. (a -> b) -> a -> b
$ do
let vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNVPtr :: FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> IO Result)
vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNVPtr = InstanceCmds
-> FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> IO Result)
pVkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV (case PhysicalDevice
physicalDevice of PhysicalDevice{InstanceCmds
instanceCmds :: InstanceCmds
$sel:instanceCmds:PhysicalDevice :: PhysicalDevice -> InstanceCmds
instanceCmds} -> InstanceCmds
instanceCmds)
IO ()
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
()
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
m
a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ()
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
())
-> IO ()
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> IO Result)
vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNVPtr FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> IO Result)
-> FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> 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 vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV' :: Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> IO Result
vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV' = FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> IO Result)
-> Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> IO Result
mkVkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV FunPtr
(Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> IO Result)
vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNVPtr
let physicalDevice' :: Ptr PhysicalDevice_T
physicalDevice' = PhysicalDevice -> Ptr PhysicalDevice_T
physicalDeviceHandle (PhysicalDevice
physicalDevice)
Ptr Word32
pPPropertyCount <- ((Ptr Word32
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
(Ptr Word32)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr Word32
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
(Ptr Word32))
-> ((Ptr Word32
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
(Ptr Word32)
forall a b. (a -> b) -> a -> b
$ IO (Ptr Word32)
-> (Ptr Word32 -> IO ())
-> (Ptr Word32
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
forall a b c. IO a -> (a -> IO b) -> (a -> IO c) -> IO c
bracket (forall a. Int -> IO (Ptr a)
callocBytes @Word32 Int
4) Ptr Word32 -> IO ()
forall a. Ptr a -> IO ()
free
Result
r <- IO Result
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
Result
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
m
a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Result
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
Result)
-> IO Result
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
Result
forall a b. (a -> b) -> a -> b
$ String -> IO Result -> IO Result
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV" (Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> IO Result
vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV'
Ptr PhysicalDevice_T
physicalDevice'
(Ptr Word32
pPPropertyCount)
(Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
forall a. Ptr a
nullPtr))
IO ()
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
()
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
m
a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ()
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
())
-> IO ()
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
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))
Word32
pPropertyCount <- IO Word32
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
Word32
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
m
a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Word32
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
Word32)
-> IO Word32
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
Word32
forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> IO a
peek @Word32 Ptr Word32
pPPropertyCount
Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
pPProperties <- ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
(Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
(Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
(Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV)
forall a b. (a -> b) -> a -> b
$ IO (Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV)
-> (Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV -> IO ())
-> (Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
forall a b c. IO a -> (a -> IO b) -> (a -> IO c) -> IO c
bracket (forall a. Int -> IO (Ptr a)
callocBytes @CooperativeMatrixFlexibleDimensionsPropertiesNV ((Word32 -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Word32
pPropertyCount)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
56)) Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV -> IO ()
forall a. Ptr a -> IO ()
free
[()]
_ <- (Int
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
())
-> [Int]
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
[()]
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
(a -> f b) -> t a -> f (t b)
forall (f :: * -> *) a b.
Applicative f =>
(a -> f b) -> [a] -> f [b]
traverse (\Int
i -> ((()
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((()
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
())
-> ((()
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
()
forall a b. (a -> b) -> a -> b
$ Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
forall b.
Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> IO b -> IO b
pokeZeroCStruct (Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
pPProperties Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
i Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
56) :: Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV) (IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> ((()
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> (()
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((()
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> ()
-> IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
forall a b. (a -> b) -> a -> b
$ ())) [Int
0..(Word32 -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Word32
pPropertyCount)) Int -> Int -> Int
forall a. Num a => a -> a -> a
- Int
1]
Result
r' <- IO Result
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
Result
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
m
a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Result
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
Result)
-> IO Result
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
Result
forall a b. (a -> b) -> a -> b
$ String -> IO Result -> IO Result
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV" (Ptr PhysicalDevice_T
-> Ptr Word32
-> Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> IO Result
vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV'
Ptr PhysicalDevice_T
physicalDevice'
(Ptr Word32
pPPropertyCount)
((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
pPProperties)))
IO ()
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
()
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
m
a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ()
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
())
-> IO ()
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
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'))
Word32
pPropertyCount' <- IO Word32
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
Word32
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
m
a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Word32
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
Word32)
-> IO Word32
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
Word32
forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> IO a
peek @Word32 Ptr Word32
pPPropertyCount
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV
pProperties' <- IO
("properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
("properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
m
a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO
("properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
("properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> IO
("properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
("properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
forall a b. (a -> b) -> a -> b
$ Int
-> (Int -> IO CooperativeMatrixFlexibleDimensionsPropertiesNV)
-> IO
("properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
forall (m :: * -> *) a.
Monad m =>
Int -> (Int -> m a) -> m (Vector a)
generateM (Word32 -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Word32
pPropertyCount')) (\Int
i -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @CooperativeMatrixFlexibleDimensionsPropertiesNV (((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
pPProperties) Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
56 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV)))
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
forall a.
a
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ((Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV))
-> (Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
-> ContT
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
IO
(Result,
"properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV)
forall a b. (a -> b) -> a -> b
$ ((Result
r'), "properties"
::: Vector CooperativeMatrixFlexibleDimensionsPropertiesNV
pProperties')
data PhysicalDeviceCooperativeMatrix2FeaturesNV = PhysicalDeviceCooperativeMatrix2FeaturesNV
{
PhysicalDeviceCooperativeMatrix2FeaturesNV -> Bool
cooperativeMatrixWorkgroupScope :: Bool
,
PhysicalDeviceCooperativeMatrix2FeaturesNV -> Bool
cooperativeMatrixFlexibleDimensions :: Bool
,
PhysicalDeviceCooperativeMatrix2FeaturesNV -> Bool
cooperativeMatrixReductions :: Bool
,
PhysicalDeviceCooperativeMatrix2FeaturesNV -> Bool
cooperativeMatrixConversions :: Bool
,
PhysicalDeviceCooperativeMatrix2FeaturesNV -> Bool
cooperativeMatrixPerElementOperations :: Bool
,
PhysicalDeviceCooperativeMatrix2FeaturesNV -> Bool
cooperativeMatrixTensorAddressing :: Bool
,
PhysicalDeviceCooperativeMatrix2FeaturesNV -> Bool
cooperativeMatrixBlockLoads :: Bool
}
deriving (Typeable, PhysicalDeviceCooperativeMatrix2FeaturesNV
-> PhysicalDeviceCooperativeMatrix2FeaturesNV -> Bool
(PhysicalDeviceCooperativeMatrix2FeaturesNV
-> PhysicalDeviceCooperativeMatrix2FeaturesNV -> Bool)
-> (PhysicalDeviceCooperativeMatrix2FeaturesNV
-> PhysicalDeviceCooperativeMatrix2FeaturesNV -> Bool)
-> Eq PhysicalDeviceCooperativeMatrix2FeaturesNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceCooperativeMatrix2FeaturesNV
-> PhysicalDeviceCooperativeMatrix2FeaturesNV -> Bool
== :: PhysicalDeviceCooperativeMatrix2FeaturesNV
-> PhysicalDeviceCooperativeMatrix2FeaturesNV -> Bool
$c/= :: PhysicalDeviceCooperativeMatrix2FeaturesNV
-> PhysicalDeviceCooperativeMatrix2FeaturesNV -> Bool
/= :: PhysicalDeviceCooperativeMatrix2FeaturesNV
-> PhysicalDeviceCooperativeMatrix2FeaturesNV -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceCooperativeMatrix2FeaturesNV)
#endif
deriving instance Show PhysicalDeviceCooperativeMatrix2FeaturesNV
instance ToCStruct PhysicalDeviceCooperativeMatrix2FeaturesNV where
withCStruct :: forall b.
PhysicalDeviceCooperativeMatrix2FeaturesNV
-> (Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> IO b) -> IO b
withCStruct PhysicalDeviceCooperativeMatrix2FeaturesNV
x Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> IO b
f = Int
-> (Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
48 ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> IO b) -> IO b)
-> (Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p -> Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
-> PhysicalDeviceCooperativeMatrix2FeaturesNV -> IO b -> IO b
forall b.
Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
-> PhysicalDeviceCooperativeMatrix2FeaturesNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p PhysicalDeviceCooperativeMatrix2FeaturesNV
x (Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> IO b
f Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
-> PhysicalDeviceCooperativeMatrix2FeaturesNV -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p PhysicalDeviceCooperativeMatrix2FeaturesNV{Bool
$sel:cooperativeMatrixWorkgroupScope:PhysicalDeviceCooperativeMatrix2FeaturesNV :: PhysicalDeviceCooperativeMatrix2FeaturesNV -> Bool
$sel:cooperativeMatrixFlexibleDimensions:PhysicalDeviceCooperativeMatrix2FeaturesNV :: PhysicalDeviceCooperativeMatrix2FeaturesNV -> Bool
$sel:cooperativeMatrixReductions:PhysicalDeviceCooperativeMatrix2FeaturesNV :: PhysicalDeviceCooperativeMatrix2FeaturesNV -> Bool
$sel:cooperativeMatrixConversions:PhysicalDeviceCooperativeMatrix2FeaturesNV :: PhysicalDeviceCooperativeMatrix2FeaturesNV -> Bool
$sel:cooperativeMatrixPerElementOperations:PhysicalDeviceCooperativeMatrix2FeaturesNV :: PhysicalDeviceCooperativeMatrix2FeaturesNV -> Bool
$sel:cooperativeMatrixTensorAddressing:PhysicalDeviceCooperativeMatrix2FeaturesNV :: PhysicalDeviceCooperativeMatrix2FeaturesNV -> Bool
$sel:cooperativeMatrixBlockLoads:PhysicalDeviceCooperativeMatrix2FeaturesNV :: PhysicalDeviceCooperativeMatrix2FeaturesNV -> Bool
cooperativeMatrixWorkgroupScope :: Bool
cooperativeMatrixFlexibleDimensions :: Bool
cooperativeMatrixReductions :: Bool
cooperativeMatrixConversions :: Bool
cooperativeMatrixPerElementOperations :: Bool
cooperativeMatrixTensorAddressing :: Bool
cooperativeMatrixBlockLoads :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
cooperativeMatrixWorkgroupScope))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
cooperativeMatrixFlexibleDimensions))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
cooperativeMatrixReductions))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
cooperativeMatrixConversions))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
cooperativeMatrixPerElementOperations))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
cooperativeMatrixTensorAddressing))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
cooperativeMatrixBlockLoads))
IO b
f
cStructSize :: Int
cStructSize = Int
48
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceCooperativeMatrix2FeaturesNV where
peekCStruct :: Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
-> IO PhysicalDeviceCooperativeMatrix2FeaturesNV
peekCStruct Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p = do
Bool32
cooperativeMatrixWorkgroupScope <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
Bool32
cooperativeMatrixFlexibleDimensions <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32))
Bool32
cooperativeMatrixReductions <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32))
Bool32
cooperativeMatrixConversions <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Bool32))
Bool32
cooperativeMatrixPerElementOperations <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Bool32))
Bool32
cooperativeMatrixTensorAddressing <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36 :: Ptr Bool32))
Bool32
cooperativeMatrixBlockLoads <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
p Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Bool32))
PhysicalDeviceCooperativeMatrix2FeaturesNV
-> IO PhysicalDeviceCooperativeMatrix2FeaturesNV
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceCooperativeMatrix2FeaturesNV
-> IO PhysicalDeviceCooperativeMatrix2FeaturesNV)
-> PhysicalDeviceCooperativeMatrix2FeaturesNV
-> IO PhysicalDeviceCooperativeMatrix2FeaturesNV
forall a b. (a -> b) -> a -> b
$ Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceCooperativeMatrix2FeaturesNV
PhysicalDeviceCooperativeMatrix2FeaturesNV
(Bool32 -> Bool
bool32ToBool Bool32
cooperativeMatrixWorkgroupScope)
(Bool32 -> Bool
bool32ToBool Bool32
cooperativeMatrixFlexibleDimensions)
(Bool32 -> Bool
bool32ToBool Bool32
cooperativeMatrixReductions)
(Bool32 -> Bool
bool32ToBool Bool32
cooperativeMatrixConversions)
(Bool32 -> Bool
bool32ToBool Bool32
cooperativeMatrixPerElementOperations)
(Bool32 -> Bool
bool32ToBool Bool32
cooperativeMatrixTensorAddressing)
(Bool32 -> Bool
bool32ToBool Bool32
cooperativeMatrixBlockLoads)
instance Storable PhysicalDeviceCooperativeMatrix2FeaturesNV where
sizeOf :: PhysicalDeviceCooperativeMatrix2FeaturesNV -> Int
sizeOf ~PhysicalDeviceCooperativeMatrix2FeaturesNV
_ = Int
48
alignment :: PhysicalDeviceCooperativeMatrix2FeaturesNV -> Int
alignment ~PhysicalDeviceCooperativeMatrix2FeaturesNV
_ = Int
8
peek :: Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
-> IO PhysicalDeviceCooperativeMatrix2FeaturesNV
peek = Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
-> IO PhysicalDeviceCooperativeMatrix2FeaturesNV
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
-> PhysicalDeviceCooperativeMatrix2FeaturesNV -> IO ()
poke Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
poked = Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
-> PhysicalDeviceCooperativeMatrix2FeaturesNV -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
-> PhysicalDeviceCooperativeMatrix2FeaturesNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
ptr PhysicalDeviceCooperativeMatrix2FeaturesNV
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceCooperativeMatrix2FeaturesNV where
zero :: PhysicalDeviceCooperativeMatrix2FeaturesNV
zero = Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceCooperativeMatrix2FeaturesNV
PhysicalDeviceCooperativeMatrix2FeaturesNV
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
data PhysicalDeviceCooperativeMatrix2PropertiesNV = PhysicalDeviceCooperativeMatrix2PropertiesNV
{
PhysicalDeviceCooperativeMatrix2PropertiesNV -> Word32
cooperativeMatrixWorkgroupScopeMaxWorkgroupSize :: Word32
,
PhysicalDeviceCooperativeMatrix2PropertiesNV -> Word32
cooperativeMatrixFlexibleDimensionsMaxDimension :: Word32
,
PhysicalDeviceCooperativeMatrix2PropertiesNV -> Word32
cooperativeMatrixWorkgroupScopeReservedSharedMemory :: Word32
}
deriving (Typeable, PhysicalDeviceCooperativeMatrix2PropertiesNV
-> PhysicalDeviceCooperativeMatrix2PropertiesNV -> Bool
(PhysicalDeviceCooperativeMatrix2PropertiesNV
-> PhysicalDeviceCooperativeMatrix2PropertiesNV -> Bool)
-> (PhysicalDeviceCooperativeMatrix2PropertiesNV
-> PhysicalDeviceCooperativeMatrix2PropertiesNV -> Bool)
-> Eq PhysicalDeviceCooperativeMatrix2PropertiesNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceCooperativeMatrix2PropertiesNV
-> PhysicalDeviceCooperativeMatrix2PropertiesNV -> Bool
== :: PhysicalDeviceCooperativeMatrix2PropertiesNV
-> PhysicalDeviceCooperativeMatrix2PropertiesNV -> Bool
$c/= :: PhysicalDeviceCooperativeMatrix2PropertiesNV
-> PhysicalDeviceCooperativeMatrix2PropertiesNV -> Bool
/= :: PhysicalDeviceCooperativeMatrix2PropertiesNV
-> PhysicalDeviceCooperativeMatrix2PropertiesNV -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceCooperativeMatrix2PropertiesNV)
#endif
deriving instance Show PhysicalDeviceCooperativeMatrix2PropertiesNV
instance ToCStruct PhysicalDeviceCooperativeMatrix2PropertiesNV where
withCStruct :: forall b.
PhysicalDeviceCooperativeMatrix2PropertiesNV
-> (Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV -> IO b)
-> IO b
withCStruct PhysicalDeviceCooperativeMatrix2PropertiesNV
x Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV -> IO b
f = Int
-> (Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV -> IO b)
-> IO b)
-> (Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
p -> Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
-> PhysicalDeviceCooperativeMatrix2PropertiesNV -> IO b -> IO b
forall b.
Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
-> PhysicalDeviceCooperativeMatrix2PropertiesNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
p PhysicalDeviceCooperativeMatrix2PropertiesNV
x (Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV -> IO b
f Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
-> PhysicalDeviceCooperativeMatrix2PropertiesNV -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
p PhysicalDeviceCooperativeMatrix2PropertiesNV{Word32
$sel:cooperativeMatrixWorkgroupScopeMaxWorkgroupSize:PhysicalDeviceCooperativeMatrix2PropertiesNV :: PhysicalDeviceCooperativeMatrix2PropertiesNV -> Word32
$sel:cooperativeMatrixFlexibleDimensionsMaxDimension:PhysicalDeviceCooperativeMatrix2PropertiesNV :: PhysicalDeviceCooperativeMatrix2PropertiesNV -> Word32
$sel:cooperativeMatrixWorkgroupScopeReservedSharedMemory:PhysicalDeviceCooperativeMatrix2PropertiesNV :: PhysicalDeviceCooperativeMatrix2PropertiesNV -> Word32
cooperativeMatrixWorkgroupScopeMaxWorkgroupSize :: Word32
cooperativeMatrixFlexibleDimensionsMaxDimension :: Word32
cooperativeMatrixWorkgroupScopeReservedSharedMemory :: Word32
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
p Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
p Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
p Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
cooperativeMatrixWorkgroupScopeMaxWorkgroupSize)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
p Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32)) (Word32
cooperativeMatrixFlexibleDimensionsMaxDimension)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
p Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32)) (Word32
cooperativeMatrixWorkgroupScopeReservedSharedMemory)
IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
p Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
p Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
p Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
p Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
p Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct PhysicalDeviceCooperativeMatrix2PropertiesNV where
peekCStruct :: Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
-> IO PhysicalDeviceCooperativeMatrix2PropertiesNV
peekCStruct Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
p = do
Word32
cooperativeMatrixWorkgroupScopeMaxWorkgroupSize <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
p Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32))
Word32
cooperativeMatrixFlexibleDimensionsMaxDimension <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
p Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32))
Word32
cooperativeMatrixWorkgroupScopeReservedSharedMemory <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
p Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32))
PhysicalDeviceCooperativeMatrix2PropertiesNV
-> IO PhysicalDeviceCooperativeMatrix2PropertiesNV
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceCooperativeMatrix2PropertiesNV
-> IO PhysicalDeviceCooperativeMatrix2PropertiesNV)
-> PhysicalDeviceCooperativeMatrix2PropertiesNV
-> IO PhysicalDeviceCooperativeMatrix2PropertiesNV
forall a b. (a -> b) -> a -> b
$ Word32
-> Word32 -> Word32 -> PhysicalDeviceCooperativeMatrix2PropertiesNV
PhysicalDeviceCooperativeMatrix2PropertiesNV
Word32
cooperativeMatrixWorkgroupScopeMaxWorkgroupSize
Word32
cooperativeMatrixFlexibleDimensionsMaxDimension
Word32
cooperativeMatrixWorkgroupScopeReservedSharedMemory
instance Storable PhysicalDeviceCooperativeMatrix2PropertiesNV where
sizeOf :: PhysicalDeviceCooperativeMatrix2PropertiesNV -> Int
sizeOf ~PhysicalDeviceCooperativeMatrix2PropertiesNV
_ = Int
32
alignment :: PhysicalDeviceCooperativeMatrix2PropertiesNV -> Int
alignment ~PhysicalDeviceCooperativeMatrix2PropertiesNV
_ = Int
8
peek :: Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
-> IO PhysicalDeviceCooperativeMatrix2PropertiesNV
peek = Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
-> IO PhysicalDeviceCooperativeMatrix2PropertiesNV
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
-> PhysicalDeviceCooperativeMatrix2PropertiesNV -> IO ()
poke Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
poked = Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
-> PhysicalDeviceCooperativeMatrix2PropertiesNV -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
-> PhysicalDeviceCooperativeMatrix2PropertiesNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
ptr PhysicalDeviceCooperativeMatrix2PropertiesNV
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceCooperativeMatrix2PropertiesNV where
zero :: PhysicalDeviceCooperativeMatrix2PropertiesNV
zero = Word32
-> Word32 -> Word32 -> PhysicalDeviceCooperativeMatrix2PropertiesNV
PhysicalDeviceCooperativeMatrix2PropertiesNV
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
data CooperativeMatrixFlexibleDimensionsPropertiesNV = CooperativeMatrixFlexibleDimensionsPropertiesNV
{
CooperativeMatrixFlexibleDimensionsPropertiesNV -> Word32
mGranularity :: Word32
,
CooperativeMatrixFlexibleDimensionsPropertiesNV -> Word32
nGranularity :: Word32
,
CooperativeMatrixFlexibleDimensionsPropertiesNV -> Word32
kGranularity :: Word32
,
CooperativeMatrixFlexibleDimensionsPropertiesNV -> ComponentTypeKHR
aType :: ComponentTypeKHR
,
CooperativeMatrixFlexibleDimensionsPropertiesNV -> ComponentTypeKHR
bType :: ComponentTypeKHR
,
CooperativeMatrixFlexibleDimensionsPropertiesNV -> ComponentTypeKHR
cType :: ComponentTypeKHR
,
CooperativeMatrixFlexibleDimensionsPropertiesNV -> ComponentTypeKHR
resultType :: ComponentTypeKHR
,
CooperativeMatrixFlexibleDimensionsPropertiesNV -> Bool
saturatingAccumulation :: Bool
,
CooperativeMatrixFlexibleDimensionsPropertiesNV -> ScopeKHR
scope :: ScopeKHR
,
CooperativeMatrixFlexibleDimensionsPropertiesNV -> Word32
workgroupInvocations :: Word32
}
deriving (Typeable, CooperativeMatrixFlexibleDimensionsPropertiesNV
-> CooperativeMatrixFlexibleDimensionsPropertiesNV -> Bool
(CooperativeMatrixFlexibleDimensionsPropertiesNV
-> CooperativeMatrixFlexibleDimensionsPropertiesNV -> Bool)
-> (CooperativeMatrixFlexibleDimensionsPropertiesNV
-> CooperativeMatrixFlexibleDimensionsPropertiesNV -> Bool)
-> Eq CooperativeMatrixFlexibleDimensionsPropertiesNV
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CooperativeMatrixFlexibleDimensionsPropertiesNV
-> CooperativeMatrixFlexibleDimensionsPropertiesNV -> Bool
== :: CooperativeMatrixFlexibleDimensionsPropertiesNV
-> CooperativeMatrixFlexibleDimensionsPropertiesNV -> Bool
$c/= :: CooperativeMatrixFlexibleDimensionsPropertiesNV
-> CooperativeMatrixFlexibleDimensionsPropertiesNV -> Bool
/= :: CooperativeMatrixFlexibleDimensionsPropertiesNV
-> CooperativeMatrixFlexibleDimensionsPropertiesNV -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (CooperativeMatrixFlexibleDimensionsPropertiesNV)
#endif
deriving instance Show CooperativeMatrixFlexibleDimensionsPropertiesNV
instance ToCStruct CooperativeMatrixFlexibleDimensionsPropertiesNV where
withCStruct :: forall b.
CooperativeMatrixFlexibleDimensionsPropertiesNV
-> (Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV -> IO b)
-> IO b
withCStruct CooperativeMatrixFlexibleDimensionsPropertiesNV
x Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV -> IO b
f = Int
-> (Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
56 ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV -> IO b)
-> IO b)
-> (Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p -> Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> CooperativeMatrixFlexibleDimensionsPropertiesNV -> IO b -> IO b
forall b.
Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> CooperativeMatrixFlexibleDimensionsPropertiesNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p CooperativeMatrixFlexibleDimensionsPropertiesNV
x (Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV -> IO b
f Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p)
pokeCStruct :: forall b.
Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> CooperativeMatrixFlexibleDimensionsPropertiesNV -> IO b -> IO b
pokeCStruct Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p CooperativeMatrixFlexibleDimensionsPropertiesNV{Bool
Word32
ComponentTypeKHR
ScopeKHR
$sel:mGranularity:CooperativeMatrixFlexibleDimensionsPropertiesNV :: CooperativeMatrixFlexibleDimensionsPropertiesNV -> Word32
$sel:nGranularity:CooperativeMatrixFlexibleDimensionsPropertiesNV :: CooperativeMatrixFlexibleDimensionsPropertiesNV -> Word32
$sel:kGranularity:CooperativeMatrixFlexibleDimensionsPropertiesNV :: CooperativeMatrixFlexibleDimensionsPropertiesNV -> Word32
$sel:aType:CooperativeMatrixFlexibleDimensionsPropertiesNV :: CooperativeMatrixFlexibleDimensionsPropertiesNV -> ComponentTypeKHR
$sel:bType:CooperativeMatrixFlexibleDimensionsPropertiesNV :: CooperativeMatrixFlexibleDimensionsPropertiesNV -> ComponentTypeKHR
$sel:cType:CooperativeMatrixFlexibleDimensionsPropertiesNV :: CooperativeMatrixFlexibleDimensionsPropertiesNV -> ComponentTypeKHR
$sel:resultType:CooperativeMatrixFlexibleDimensionsPropertiesNV :: CooperativeMatrixFlexibleDimensionsPropertiesNV -> ComponentTypeKHR
$sel:saturatingAccumulation:CooperativeMatrixFlexibleDimensionsPropertiesNV :: CooperativeMatrixFlexibleDimensionsPropertiesNV -> Bool
$sel:scope:CooperativeMatrixFlexibleDimensionsPropertiesNV :: CooperativeMatrixFlexibleDimensionsPropertiesNV -> ScopeKHR
$sel:workgroupInvocations:CooperativeMatrixFlexibleDimensionsPropertiesNV :: CooperativeMatrixFlexibleDimensionsPropertiesNV -> Word32
mGranularity :: Word32
nGranularity :: Word32
kGranularity :: Word32
aType :: ComponentTypeKHR
bType :: ComponentTypeKHR
cType :: ComponentTypeKHR
resultType :: ComponentTypeKHR
saturatingAccumulation :: Bool
scope :: ScopeKHR
workgroupInvocations :: Word32
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
mGranularity)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32)) (Word32
nGranularity)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32)) (Word32
kGranularity)
Ptr ComponentTypeKHR -> ComponentTypeKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr ComponentTypeKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr ComponentTypeKHR)) (ComponentTypeKHR
aType)
Ptr ComponentTypeKHR -> ComponentTypeKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr ComponentTypeKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr ComponentTypeKHR)) (ComponentTypeKHR
bType)
Ptr ComponentTypeKHR -> ComponentTypeKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr ComponentTypeKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36 :: Ptr ComponentTypeKHR)) (ComponentTypeKHR
cType)
Ptr ComponentTypeKHR -> ComponentTypeKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr ComponentTypeKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr ComponentTypeKHR)) (ComponentTypeKHR
resultType)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
saturatingAccumulation))
Ptr ScopeKHR -> ScopeKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr ScopeKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr ScopeKHR)) (ScopeKHR
scope)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
52 :: Ptr Word32)) (Word32
workgroupInvocations)
IO b
f
cStructSize :: Int
cStructSize = Int
56
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV -> IO b -> IO b
pokeZeroCStruct Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
Ptr ComponentTypeKHR -> ComponentTypeKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr ComponentTypeKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr ComponentTypeKHR)) (ComponentTypeKHR
forall a. Zero a => a
zero)
Ptr ComponentTypeKHR -> ComponentTypeKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr ComponentTypeKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr ComponentTypeKHR)) (ComponentTypeKHR
forall a. Zero a => a
zero)
Ptr ComponentTypeKHR -> ComponentTypeKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr ComponentTypeKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36 :: Ptr ComponentTypeKHR)) (ComponentTypeKHR
forall a. Zero a => a
zero)
Ptr ComponentTypeKHR -> ComponentTypeKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr ComponentTypeKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr ComponentTypeKHR)) (ComponentTypeKHR
forall a. Zero a => a
zero)
Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
Ptr ScopeKHR -> ScopeKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr ScopeKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr ScopeKHR)) (ScopeKHR
forall a. Zero a => a
zero)
Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
52 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct CooperativeMatrixFlexibleDimensionsPropertiesNV where
peekCStruct :: Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> IO CooperativeMatrixFlexibleDimensionsPropertiesNV
peekCStruct Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p = do
Word32
mGranularity <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32))
Word32
nGranularity <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32))
Word32
kGranularity <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32))
ComponentTypeKHR
aType <- forall a. Storable a => Ptr a -> IO a
peek @ComponentTypeKHR ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr ComponentTypeKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr ComponentTypeKHR))
ComponentTypeKHR
bType <- forall a. Storable a => Ptr a -> IO a
peek @ComponentTypeKHR ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr ComponentTypeKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr ComponentTypeKHR))
ComponentTypeKHR
cType <- forall a. Storable a => Ptr a -> IO a
peek @ComponentTypeKHR ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr ComponentTypeKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36 :: Ptr ComponentTypeKHR))
ComponentTypeKHR
resultType <- forall a. Storable a => Ptr a -> IO a
peek @ComponentTypeKHR ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr ComponentTypeKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr ComponentTypeKHR))
Bool32
saturatingAccumulation <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Bool32))
ScopeKHR
scope <- forall a. Storable a => Ptr a -> IO a
peek @ScopeKHR ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr ScopeKHR
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr ScopeKHR))
Word32
workgroupInvocations <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
p Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
52 :: Ptr Word32))
CooperativeMatrixFlexibleDimensionsPropertiesNV
-> IO CooperativeMatrixFlexibleDimensionsPropertiesNV
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (CooperativeMatrixFlexibleDimensionsPropertiesNV
-> IO CooperativeMatrixFlexibleDimensionsPropertiesNV)
-> CooperativeMatrixFlexibleDimensionsPropertiesNV
-> IO CooperativeMatrixFlexibleDimensionsPropertiesNV
forall a b. (a -> b) -> a -> b
$ Word32
-> Word32
-> Word32
-> ComponentTypeKHR
-> ComponentTypeKHR
-> ComponentTypeKHR
-> ComponentTypeKHR
-> Bool
-> ScopeKHR
-> Word32
-> CooperativeMatrixFlexibleDimensionsPropertiesNV
CooperativeMatrixFlexibleDimensionsPropertiesNV
Word32
mGranularity
Word32
nGranularity
Word32
kGranularity
ComponentTypeKHR
aType
ComponentTypeKHR
bType
ComponentTypeKHR
cType
ComponentTypeKHR
resultType
(Bool32 -> Bool
bool32ToBool Bool32
saturatingAccumulation)
ScopeKHR
scope
Word32
workgroupInvocations
instance Storable CooperativeMatrixFlexibleDimensionsPropertiesNV where
sizeOf :: CooperativeMatrixFlexibleDimensionsPropertiesNV -> Int
sizeOf ~CooperativeMatrixFlexibleDimensionsPropertiesNV
_ = Int
56
alignment :: CooperativeMatrixFlexibleDimensionsPropertiesNV -> Int
alignment ~CooperativeMatrixFlexibleDimensionsPropertiesNV
_ = Int
8
peek :: Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> IO CooperativeMatrixFlexibleDimensionsPropertiesNV
peek = Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> IO CooperativeMatrixFlexibleDimensionsPropertiesNV
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> CooperativeMatrixFlexibleDimensionsPropertiesNV -> IO ()
poke Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
poked = Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> CooperativeMatrixFlexibleDimensionsPropertiesNV
-> IO ()
-> IO ()
forall b.
Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
-> CooperativeMatrixFlexibleDimensionsPropertiesNV -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
ptr CooperativeMatrixFlexibleDimensionsPropertiesNV
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero CooperativeMatrixFlexibleDimensionsPropertiesNV where
zero :: CooperativeMatrixFlexibleDimensionsPropertiesNV
zero = Word32
-> Word32
-> Word32
-> ComponentTypeKHR
-> ComponentTypeKHR
-> ComponentTypeKHR
-> ComponentTypeKHR
-> Bool
-> ScopeKHR
-> Word32
-> CooperativeMatrixFlexibleDimensionsPropertiesNV
CooperativeMatrixFlexibleDimensionsPropertiesNV
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
ComponentTypeKHR
forall a. Zero a => a
zero
ComponentTypeKHR
forall a. Zero a => a
zero
ComponentTypeKHR
forall a. Zero a => a
zero
ComponentTypeKHR
forall a. Zero a => a
zero
Bool
forall a. Zero a => a
zero
ScopeKHR
forall a. Zero a => a
zero
Word32
forall a. Zero a => a
zero
type NV_COOPERATIVE_MATRIX_2_SPEC_VERSION = 1
pattern NV_COOPERATIVE_MATRIX_2_SPEC_VERSION :: forall a . Integral a => a
pattern $mNV_COOPERATIVE_MATRIX_2_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bNV_COOPERATIVE_MATRIX_2_SPEC_VERSION :: forall a. Integral a => a
NV_COOPERATIVE_MATRIX_2_SPEC_VERSION = 1
type NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME = "VK_NV_cooperative_matrix2"
pattern NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $mNV_COOPERATIVE_MATRIX_2_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bNV_COOPERATIVE_MATRIX_2_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME = "VK_NV_cooperative_matrix2"