{-# language CPP #-}
module Vulkan.Extensions.VK_AMDX_shader_enqueue ( getExecutionGraphPipelineScratchSizeAMDX
, getExecutionGraphPipelineNodeIndexAMDX
, createExecutionGraphPipelinesAMDX
, cmdInitializeGraphScratchMemoryAMDX
, cmdDispatchGraphAMDX
, cmdDispatchGraphIndirectAMDX
, cmdDispatchGraphIndirectCountAMDX
, PhysicalDeviceShaderEnqueuePropertiesAMDX(..)
, PhysicalDeviceShaderEnqueueFeaturesAMDX(..)
, ExecutionGraphPipelineCreateInfoAMDX(..)
, PipelineShaderStageNodeCreateInfoAMDX(..)
, ExecutionGraphPipelineScratchSizeAMDX(..)
, DispatchGraphInfoAMDX(..)
, DispatchGraphCountInfoAMDX(..)
, DeviceOrHostAddressConstAMDX(..)
, BufferUsageFlags2KHR
, BufferUsageFlagBits2KHR( BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR
, BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR
, BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR
, BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR
, BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR
, BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR
, BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR
, BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR
, BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR
, BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT
, BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT
, BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT
, BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT
, BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT
, BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR
, BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR
, BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR
, BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR
, BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR
, BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR
, BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR
, BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT
, BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT
, BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR
, BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT
, BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX
, ..
)
, AMDX_SHADER_ENQUEUE_SPEC_VERSION
, pattern AMDX_SHADER_ENQUEUE_SPEC_VERSION
, AMDX_SHADER_ENQUEUE_EXTENSION_NAME
, pattern AMDX_SHADER_ENQUEUE_EXTENSION_NAME
, PipelineLibraryCreateInfoKHR(..)
, SHADER_INDEX_UNUSED_AMDX
, pattern SHADER_INDEX_UNUSED_AMDX
) 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 Data.Typeable (eqT)
import Foreign.Marshal.Alloc (allocaBytes)
import Foreign.Marshal.Alloc (callocBytes)
import Foreign.Marshal.Alloc (free)
import Foreign.Marshal.Utils (maybePeek)
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 Numeric (showHex)
import Data.ByteString (packCString)
import Data.ByteString (useAsCString)
import Control.Monad.Trans.Class (lift)
import Control.Monad.Trans.Cont (evalContT)
import Control.Monad.Trans.Cont (runContT)
import Data.Vector (generateM)
import qualified Data.Vector (imapM_)
import qualified Data.Vector (length)
import qualified Data.Vector (null)
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.Type.Equality ((:~:)(Refl))
import Data.Typeable (Typeable)
import Foreign.C.Types (CChar)
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.CStruct.Utils (advancePtrBytes)
import Vulkan.Core10.FundamentalTypes (bool32ToBool)
import Vulkan.Core10.FundamentalTypes (boolToBool32)
import Vulkan.CStruct.Extends (forgetExtensions)
import Vulkan.CStruct.Extends (peekSomeCStruct)
import Vulkan.CStruct.Extends (pokeSomeCStruct)
import Vulkan.NamedType ((:::))
import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)
import Vulkan.Core10.FundamentalTypes (Bool32)
import Vulkan.CStruct.Extends (Chain)
import Vulkan.Core10.Handles (CommandBuffer)
import Vulkan.Core10.Handles (CommandBuffer(..))
import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))
import Vulkan.Core10.Handles (CommandBuffer_T)
import Vulkan.Core10.Handles (Device)
import Vulkan.Core10.Handles (Device(..))
import Vulkan.Core10.Handles (Device(Device))
import Vulkan.Core10.FundamentalTypes (DeviceAddress)
import Vulkan.Dynamic (DeviceCmds(pVkCmdDispatchGraphAMDX))
import Vulkan.Dynamic (DeviceCmds(pVkCmdDispatchGraphIndirectAMDX))
import Vulkan.Dynamic (DeviceCmds(pVkCmdDispatchGraphIndirectCountAMDX))
import Vulkan.Dynamic (DeviceCmds(pVkCmdInitializeGraphScratchMemoryAMDX))
import Vulkan.Dynamic (DeviceCmds(pVkCreateExecutionGraphPipelinesAMDX))
import Vulkan.Dynamic (DeviceCmds(pVkGetExecutionGraphPipelineNodeIndexAMDX))
import Vulkan.Dynamic (DeviceCmds(pVkGetExecutionGraphPipelineScratchSizeAMDX))
import Vulkan.Core10.FundamentalTypes (DeviceSize)
import Vulkan.Core10.Handles (Device_T)
import Vulkan.CStruct.Extends (Extends)
import Vulkan.CStruct.Extends (Extendss)
import Vulkan.CStruct.Extends (Extensible(..))
import Vulkan.Core10.FundamentalTypes (Flags64)
import Vulkan.CStruct.Extends (PeekChain)
import Vulkan.CStruct.Extends (PeekChain(..))
import Vulkan.Core10.Handles (Pipeline)
import Vulkan.Core10.Handles (Pipeline(..))
import Vulkan.Core10.Handles (PipelineCache)
import Vulkan.Core10.Handles (PipelineCache(..))
import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_pipeline_compiler_control (PipelineCompilerControlCreateInfoAMD)
import Vulkan.Core10.Enums.PipelineCreateFlagBits (PipelineCreateFlags)
import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback (PipelineCreationFeedbackCreateInfo)
import Vulkan.Core10.Handles (PipelineLayout)
import Vulkan.Extensions.VK_KHR_pipeline_library (PipelineLibraryCreateInfoKHR)
import Vulkan.Core10.Pipeline (PipelineShaderStageCreateInfo)
import Vulkan.CStruct.Extends (PokeChain)
import Vulkan.CStruct.Extends (PokeChain(..))
import Vulkan.Core10.Enums.Result (Result)
import Vulkan.Core10.Enums.Result (Result(..))
import Vulkan.CStruct.Extends (SomeStruct)
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Exception (VulkanException(..))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX))
import Vulkan.Core10.Enums.Result (Result(SUCCESS))
import Vulkan.Extensions.VK_KHR_pipeline_library (PipelineLibraryCreateInfoKHR(..))
import Vulkan.Core10.APIConstants (SHADER_INDEX_UNUSED_AMDX)
import Vulkan.Core10.APIConstants (pattern SHADER_INDEX_UNUSED_AMDX)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetExecutionGraphPipelineScratchSizeAMDX
:: FunPtr (Ptr Device_T -> Pipeline -> Ptr ExecutionGraphPipelineScratchSizeAMDX -> IO Result) -> Ptr Device_T -> Pipeline -> Ptr ExecutionGraphPipelineScratchSizeAMDX -> IO Result
getExecutionGraphPipelineScratchSizeAMDX :: forall io
. (MonadIO io)
=>
Device
->
("executionGraph" ::: Pipeline)
-> io (("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX))
getExecutionGraphPipelineScratchSizeAMDX :: forall (io :: * -> *).
MonadIO io =>
Device
-> ("executionGraph" ::: Pipeline)
-> io ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
getExecutionGraphPipelineScratchSizeAMDX Device
device
"executionGraph" ::: Pipeline
executionGraph = IO ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> io ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> io ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX))
-> (ContT
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
IO
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX))
-> ContT
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
IO
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> io ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
IO
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
IO
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> io ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX))
-> ContT
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
IO
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> io ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
forall a b. (a -> b) -> a -> b
$ do
let vkGetExecutionGraphPipelineScratchSizeAMDXPtr :: FunPtr
(Ptr Device_T
-> ("executionGraph" ::: Pipeline)
-> Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO Result)
vkGetExecutionGraphPipelineScratchSizeAMDXPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> ("executionGraph" ::: Pipeline)
-> Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO Result)
pVkGetExecutionGraphPipelineScratchSizeAMDX (case Device
device of Device{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO ()
-> ContT
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) IO ()
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ()
-> ContT
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) IO ())
-> IO ()
-> ContT
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> ("executionGraph" ::: Pipeline)
-> Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO Result)
vkGetExecutionGraphPipelineScratchSizeAMDXPtr FunPtr
(Ptr Device_T
-> ("executionGraph" ::: Pipeline)
-> Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO Result)
-> FunPtr
(Ptr Device_T
-> ("executionGraph" ::: Pipeline)
-> Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> ("executionGraph" ::: Pipeline)
-> Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> 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 vkGetExecutionGraphPipelineScratchSizeAMDX is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetExecutionGraphPipelineScratchSizeAMDX' :: Ptr Device_T
-> ("executionGraph" ::: Pipeline)
-> Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO Result
vkGetExecutionGraphPipelineScratchSizeAMDX' = FunPtr
(Ptr Device_T
-> ("executionGraph" ::: Pipeline)
-> Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO Result)
-> Ptr Device_T
-> ("executionGraph" ::: Pipeline)
-> Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO Result
mkVkGetExecutionGraphPipelineScratchSizeAMDX FunPtr
(Ptr Device_T
-> ("executionGraph" ::: Pipeline)
-> Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO Result)
vkGetExecutionGraphPipelineScratchSizeAMDXPtr
Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
pPSizeInfo <- ((Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX))
-> IO ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX))
-> ContT
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
IO
(Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (forall a b. ToCStruct a => (Ptr a -> IO b) -> IO b
withZeroCStruct @ExecutionGraphPipelineScratchSizeAMDX)
Result
r <- IO Result
-> ContT
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) IO Result
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Result
-> ContT
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) IO Result)
-> IO Result
-> ContT
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) IO Result
forall a b. (a -> b) -> a -> b
$ String -> IO Result -> IO Result
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetExecutionGraphPipelineScratchSizeAMDX" (Ptr Device_T
-> ("executionGraph" ::: Pipeline)
-> Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO Result
vkGetExecutionGraphPipelineScratchSizeAMDX'
(Device -> Ptr Device_T
deviceHandle (Device
device))
("executionGraph" ::: Pipeline
executionGraph)
(Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
pPSizeInfo))
IO ()
-> ContT
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) IO ()
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ()
-> ContT
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) IO ())
-> IO ()
-> ContT
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) 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))
"sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX
pSizeInfo <- IO ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> ContT
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
IO
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> ContT
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
IO
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX))
-> IO ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> ContT
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
IO
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
forall a b. (a -> b) -> a -> b
$ forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @ExecutionGraphPipelineScratchSizeAMDX Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
pPSizeInfo
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> ContT
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
IO
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
forall a.
a
-> ContT
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> ContT
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
IO
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX))
-> ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> ContT
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
IO
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
forall a b. (a -> b) -> a -> b
$ ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX
pSizeInfo)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkGetExecutionGraphPipelineNodeIndexAMDX
:: FunPtr (Ptr Device_T -> Pipeline -> Ptr PipelineShaderStageNodeCreateInfoAMDX -> Ptr Word32 -> IO Result) -> Ptr Device_T -> Pipeline -> Ptr PipelineShaderStageNodeCreateInfoAMDX -> Ptr Word32 -> IO Result
getExecutionGraphPipelineNodeIndexAMDX :: forall io
. (MonadIO io)
=>
Device
->
("executionGraph" ::: Pipeline)
->
("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> io (("nodeIndex" ::: Word32))
getExecutionGraphPipelineNodeIndexAMDX :: forall (io :: * -> *).
MonadIO io =>
Device
-> ("executionGraph" ::: Pipeline)
-> ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> io ("nodeIndex" ::: Word32)
getExecutionGraphPipelineNodeIndexAMDX Device
device
"executionGraph" ::: Pipeline
executionGraph
"nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX
nodeInfo = IO ("nodeIndex" ::: Word32) -> io ("nodeIndex" ::: Word32)
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ("nodeIndex" ::: Word32) -> io ("nodeIndex" ::: Word32))
-> (ContT ("nodeIndex" ::: Word32) IO ("nodeIndex" ::: Word32)
-> IO ("nodeIndex" ::: Word32))
-> ContT ("nodeIndex" ::: Word32) IO ("nodeIndex" ::: Word32)
-> io ("nodeIndex" ::: Word32)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT ("nodeIndex" ::: Word32) IO ("nodeIndex" ::: Word32)
-> IO ("nodeIndex" ::: Word32)
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT ("nodeIndex" ::: Word32) IO ("nodeIndex" ::: Word32)
-> io ("nodeIndex" ::: Word32))
-> ContT ("nodeIndex" ::: Word32) IO ("nodeIndex" ::: Word32)
-> io ("nodeIndex" ::: Word32)
forall a b. (a -> b) -> a -> b
$ do
let vkGetExecutionGraphPipelineNodeIndexAMDXPtr :: FunPtr
(Ptr Device_T
-> ("executionGraph" ::: Pipeline)
-> Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> Ptr ("nodeIndex" ::: Word32)
-> IO Result)
vkGetExecutionGraphPipelineNodeIndexAMDXPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> ("executionGraph" ::: Pipeline)
-> Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> Ptr ("nodeIndex" ::: Word32)
-> IO Result)
pVkGetExecutionGraphPipelineNodeIndexAMDX (case Device
device of Device{DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO () -> ContT ("nodeIndex" ::: Word32) IO ()
forall (m :: * -> *) a.
Monad m =>
m a -> ContT ("nodeIndex" ::: Word32) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT ("nodeIndex" ::: Word32) IO ())
-> IO () -> ContT ("nodeIndex" ::: Word32) IO ()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> ("executionGraph" ::: Pipeline)
-> Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> Ptr ("nodeIndex" ::: Word32)
-> IO Result)
vkGetExecutionGraphPipelineNodeIndexAMDXPtr FunPtr
(Ptr Device_T
-> ("executionGraph" ::: Pipeline)
-> Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> Ptr ("nodeIndex" ::: Word32)
-> IO Result)
-> FunPtr
(Ptr Device_T
-> ("executionGraph" ::: Pipeline)
-> Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> Ptr ("nodeIndex" ::: Word32)
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> ("executionGraph" ::: Pipeline)
-> Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> Ptr ("nodeIndex" ::: Word32)
-> 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 vkGetExecutionGraphPipelineNodeIndexAMDX is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkGetExecutionGraphPipelineNodeIndexAMDX' :: Ptr Device_T
-> ("executionGraph" ::: Pipeline)
-> Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> Ptr ("nodeIndex" ::: Word32)
-> IO Result
vkGetExecutionGraphPipelineNodeIndexAMDX' = FunPtr
(Ptr Device_T
-> ("executionGraph" ::: Pipeline)
-> Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> Ptr ("nodeIndex" ::: Word32)
-> IO Result)
-> Ptr Device_T
-> ("executionGraph" ::: Pipeline)
-> Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> Ptr ("nodeIndex" ::: Word32)
-> IO Result
mkVkGetExecutionGraphPipelineNodeIndexAMDX FunPtr
(Ptr Device_T
-> ("executionGraph" ::: Pipeline)
-> Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> Ptr ("nodeIndex" ::: Word32)
-> IO Result)
vkGetExecutionGraphPipelineNodeIndexAMDXPtr
Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
pNodeInfo <- ((Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> IO ("nodeIndex" ::: Word32))
-> IO ("nodeIndex" ::: Word32))
-> ContT
("nodeIndex" ::: Word32)
IO
(Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> IO ("nodeIndex" ::: Word32))
-> IO ("nodeIndex" ::: Word32))
-> ContT
("nodeIndex" ::: Word32)
IO
(Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)))
-> ((Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> IO ("nodeIndex" ::: Word32))
-> IO ("nodeIndex" ::: Word32))
-> ContT
("nodeIndex" ::: Word32)
IO
(Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX))
forall a b. (a -> b) -> a -> b
$ ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> (Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> IO ("nodeIndex" ::: Word32))
-> IO ("nodeIndex" ::: Word32)
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> (Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> IO b)
-> IO b
withCStruct ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX
nodeInfo)
Ptr ("nodeIndex" ::: Word32)
pPNodeIndex <- ((Ptr ("nodeIndex" ::: Word32) -> IO ("nodeIndex" ::: Word32))
-> IO ("nodeIndex" ::: Word32))
-> ContT ("nodeIndex" ::: Word32) IO (Ptr ("nodeIndex" ::: Word32))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr ("nodeIndex" ::: Word32) -> IO ("nodeIndex" ::: Word32))
-> IO ("nodeIndex" ::: Word32))
-> ContT
("nodeIndex" ::: Word32) IO (Ptr ("nodeIndex" ::: Word32)))
-> ((Ptr ("nodeIndex" ::: Word32) -> IO ("nodeIndex" ::: Word32))
-> IO ("nodeIndex" ::: Word32))
-> ContT ("nodeIndex" ::: Word32) IO (Ptr ("nodeIndex" ::: Word32))
forall a b. (a -> b) -> a -> b
$ IO (Ptr ("nodeIndex" ::: Word32))
-> (Ptr ("nodeIndex" ::: Word32) -> IO ())
-> (Ptr ("nodeIndex" ::: Word32) -> IO ("nodeIndex" ::: Word32))
-> IO ("nodeIndex" ::: Word32)
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 ("nodeIndex" ::: Word32) -> IO ()
forall a. Ptr a -> IO ()
free
Result
r <- IO Result -> ContT ("nodeIndex" ::: Word32) IO Result
forall (m :: * -> *) a.
Monad m =>
m a -> ContT ("nodeIndex" ::: Word32) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Result -> ContT ("nodeIndex" ::: Word32) IO Result)
-> IO Result -> ContT ("nodeIndex" ::: Word32) IO Result
forall a b. (a -> b) -> a -> b
$ String -> IO Result -> IO Result
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkGetExecutionGraphPipelineNodeIndexAMDX" (Ptr Device_T
-> ("executionGraph" ::: Pipeline)
-> Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> Ptr ("nodeIndex" ::: Word32)
-> IO Result
vkGetExecutionGraphPipelineNodeIndexAMDX'
(Device -> Ptr Device_T
deviceHandle (Device
device))
("executionGraph" ::: Pipeline
executionGraph)
Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
pNodeInfo
(Ptr ("nodeIndex" ::: Word32)
pPNodeIndex))
IO () -> ContT ("nodeIndex" ::: Word32) IO ()
forall (m :: * -> *) a.
Monad m =>
m a -> ContT ("nodeIndex" ::: Word32) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT ("nodeIndex" ::: Word32) IO ())
-> IO () -> ContT ("nodeIndex" ::: Word32) 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))
"nodeIndex" ::: Word32
pNodeIndex <- IO ("nodeIndex" ::: Word32)
-> ContT ("nodeIndex" ::: Word32) IO ("nodeIndex" ::: Word32)
forall (m :: * -> *) a.
Monad m =>
m a -> ContT ("nodeIndex" ::: Word32) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ("nodeIndex" ::: Word32)
-> ContT ("nodeIndex" ::: Word32) IO ("nodeIndex" ::: Word32))
-> IO ("nodeIndex" ::: Word32)
-> ContT ("nodeIndex" ::: Word32) IO ("nodeIndex" ::: Word32)
forall a b. (a -> b) -> a -> b
$ forall a. Storable a => Ptr a -> IO a
peek @Word32 Ptr ("nodeIndex" ::: Word32)
pPNodeIndex
("nodeIndex" ::: Word32)
-> ContT ("nodeIndex" ::: Word32) IO ("nodeIndex" ::: Word32)
forall a. a -> ContT ("nodeIndex" ::: Word32) IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (("nodeIndex" ::: Word32)
-> ContT ("nodeIndex" ::: Word32) IO ("nodeIndex" ::: Word32))
-> ("nodeIndex" ::: Word32)
-> ContT ("nodeIndex" ::: Word32) IO ("nodeIndex" ::: Word32)
forall a b. (a -> b) -> a -> b
$ ("nodeIndex" ::: Word32
pNodeIndex)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCreateExecutionGraphPipelinesAMDX
:: FunPtr (Ptr Device_T -> PipelineCache -> Word32 -> Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX) -> Ptr AllocationCallbacks -> Ptr Pipeline -> IO Result) -> Ptr Device_T -> PipelineCache -> Word32 -> Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX) -> Ptr AllocationCallbacks -> Ptr Pipeline -> IO Result
createExecutionGraphPipelinesAMDX :: forall io
. (MonadIO io)
=>
Device
->
PipelineCache
->
("createInfos" ::: Vector (SomeStruct ExecutionGraphPipelineCreateInfoAMDX))
->
("allocator" ::: Maybe AllocationCallbacks)
-> io (Result, ("pipelines" ::: Vector Pipeline))
createExecutionGraphPipelinesAMDX :: forall (io :: * -> *).
MonadIO io =>
Device
-> PipelineCache
-> ("createInfos"
::: Vector (SomeStruct ExecutionGraphPipelineCreateInfoAMDX))
-> ("allocator" ::: Maybe AllocationCallbacks)
-> io
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
createExecutionGraphPipelinesAMDX Device
device
PipelineCache
pipelineCache
"createInfos"
::: Vector (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)
createInfos
"allocator" ::: Maybe AllocationCallbacks
allocator = IO (Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
-> io
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
-> io
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> (ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
-> io
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
-> io
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
-> io
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
forall a b. (a -> b) -> a -> b
$ do
let vkCreateExecutionGraphPipelinesAMDXPtr :: FunPtr
(Ptr Device_T
-> PipelineCache
-> ("nodeIndex" ::: Word32)
-> Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)
-> Ptr AllocationCallbacks
-> Ptr ("executionGraph" ::: Pipeline)
-> IO Result)
vkCreateExecutionGraphPipelinesAMDXPtr = DeviceCmds
-> FunPtr
(Ptr Device_T
-> PipelineCache
-> ("nodeIndex" ::: Word32)
-> Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)
-> Ptr AllocationCallbacks
-> Ptr ("executionGraph" ::: Pipeline)
-> IO Result)
pVkCreateExecutionGraphPipelinesAMDX (case Device
device of Device{DeviceCmds
$sel:deviceCmds:Device :: Device -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
IO ()
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
()
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
m
a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ()
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
())
-> IO ()
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
()
forall a b. (a -> b) -> a -> b
$ Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr
(Ptr Device_T
-> PipelineCache
-> ("nodeIndex" ::: Word32)
-> Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)
-> Ptr AllocationCallbacks
-> Ptr ("executionGraph" ::: Pipeline)
-> IO Result)
vkCreateExecutionGraphPipelinesAMDXPtr FunPtr
(Ptr Device_T
-> PipelineCache
-> ("nodeIndex" ::: Word32)
-> Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)
-> Ptr AllocationCallbacks
-> Ptr ("executionGraph" ::: Pipeline)
-> IO Result)
-> FunPtr
(Ptr Device_T
-> PipelineCache
-> ("nodeIndex" ::: Word32)
-> Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)
-> Ptr AllocationCallbacks
-> Ptr ("executionGraph" ::: Pipeline)
-> IO Result)
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr Device_T
-> PipelineCache
-> ("nodeIndex" ::: Word32)
-> Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)
-> Ptr AllocationCallbacks
-> Ptr ("executionGraph" ::: Pipeline)
-> 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 vkCreateExecutionGraphPipelinesAMDX is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCreateExecutionGraphPipelinesAMDX' :: Ptr Device_T
-> PipelineCache
-> ("nodeIndex" ::: Word32)
-> Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)
-> Ptr AllocationCallbacks
-> Ptr ("executionGraph" ::: Pipeline)
-> IO Result
vkCreateExecutionGraphPipelinesAMDX' = FunPtr
(Ptr Device_T
-> PipelineCache
-> ("nodeIndex" ::: Word32)
-> Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)
-> Ptr AllocationCallbacks
-> Ptr ("executionGraph" ::: Pipeline)
-> IO Result)
-> Ptr Device_T
-> PipelineCache
-> ("nodeIndex" ::: Word32)
-> Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)
-> Ptr AllocationCallbacks
-> Ptr ("executionGraph" ::: Pipeline)
-> IO Result
mkVkCreateExecutionGraphPipelinesAMDX FunPtr
(Ptr Device_T
-> PipelineCache
-> ("nodeIndex" ::: Word32)
-> Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)
-> Ptr AllocationCallbacks
-> Ptr ("executionGraph" ::: Pipeline)
-> IO Result)
vkCreateExecutionGraphPipelinesAMDXPtr
Ptr (ExecutionGraphPipelineCreateInfoAMDX Any)
pPCreateInfos <- ((Ptr (ExecutionGraphPipelineCreateInfoAMDX Any)
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
(Ptr (ExecutionGraphPipelineCreateInfoAMDX Any))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (ExecutionGraphPipelineCreateInfoAMDX Any)
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
(Ptr (ExecutionGraphPipelineCreateInfoAMDX Any)))
-> ((Ptr (ExecutionGraphPipelineCreateInfoAMDX Any)
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
(Ptr (ExecutionGraphPipelineCreateInfoAMDX Any))
forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @(ExecutionGraphPipelineCreateInfoAMDX _) ((("createInfos"
::: Vector (SomeStruct ExecutionGraphPipelineCreateInfoAMDX))
-> Int
forall a. Vector a -> Int
Data.Vector.length ("createInfos"
::: Vector (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)
createInfos)) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
64)
(Int
-> SomeStruct ExecutionGraphPipelineCreateInfoAMDX
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
())
-> ("createInfos"
::: Vector (SomeStruct ExecutionGraphPipelineCreateInfoAMDX))
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
()
forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i SomeStruct ExecutionGraphPipelineCreateInfoAMDX
e -> ((()
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((()
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
())
-> ((()
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
()
forall a b. (a -> b) -> a -> b
$ Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)
-> SomeStruct ExecutionGraphPipelineCreateInfoAMDX
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
forall (a :: [*] -> *) b.
(forall (es :: [*]).
(Extendss a es, PokeChain es) =>
ToCStruct (a es)) =>
Ptr (SomeStruct a) -> SomeStruct a -> IO b -> IO b
pokeSomeCStruct (Ptr (ExecutionGraphPipelineCreateInfoAMDX Any)
-> Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)
forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions (Ptr (ExecutionGraphPipelineCreateInfoAMDX Any)
pPCreateInfos Ptr (ExecutionGraphPipelineCreateInfoAMDX Any)
-> Int -> Ptr (ExecutionGraphPipelineCreateInfoAMDX w)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
64 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr (ExecutionGraphPipelineCreateInfoAMDX _))) (SomeStruct ExecutionGraphPipelineCreateInfoAMDX
e) (IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> ((()
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> (()
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((()
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> ()
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
forall a b. (a -> b) -> a -> b
$ ())) ("createInfos"
::: Vector (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)
createInfos)
Ptr AllocationCallbacks
pAllocator <- case ("allocator" ::: Maybe AllocationCallbacks
allocator) of
"allocator" ::: Maybe AllocationCallbacks
Nothing -> Ptr AllocationCallbacks
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
(Ptr AllocationCallbacks)
forall a.
a
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr AllocationCallbacks
forall a. Ptr a
nullPtr
Just AllocationCallbacks
j -> ((Ptr AllocationCallbacks
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
(Ptr AllocationCallbacks)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr AllocationCallbacks
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
(Ptr AllocationCallbacks))
-> ((Ptr AllocationCallbacks
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
(Ptr AllocationCallbacks)
forall a b. (a -> b) -> a -> b
$ AllocationCallbacks
-> (Ptr AllocationCallbacks
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
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 ("executionGraph" ::: Pipeline)
pPPipelines <- ((Ptr ("executionGraph" ::: Pipeline)
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
(Ptr ("executionGraph" ::: Pipeline))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr ("executionGraph" ::: Pipeline)
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
(Ptr ("executionGraph" ::: Pipeline)))
-> ((Ptr ("executionGraph" ::: Pipeline)
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
(Ptr ("executionGraph" ::: Pipeline))
forall a b. (a -> b) -> a -> b
$ IO (Ptr ("executionGraph" ::: Pipeline))
-> (Ptr ("executionGraph" ::: Pipeline) -> IO ())
-> (Ptr ("executionGraph" ::: Pipeline)
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
forall a b c. IO a -> (a -> IO b) -> (a -> IO c) -> IO c
bracket (forall a. Int -> IO (Ptr a)
callocBytes @Pipeline ((("nodeIndex" ::: Word32) -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral ((Int -> "nodeIndex" ::: Word32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (("createInfos"
::: Vector (SomeStruct ExecutionGraphPipelineCreateInfoAMDX))
-> Int
forall a. Vector a -> Int
Data.Vector.length (("createInfos"
::: Vector (SomeStruct ExecutionGraphPipelineCreateInfoAMDX))
-> Int)
-> ("createInfos"
::: Vector (SomeStruct ExecutionGraphPipelineCreateInfoAMDX))
-> Int
forall a b. (a -> b) -> a -> b
$ ("createInfos"
::: Vector (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)
createInfos)) :: Word32))) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
8)) Ptr ("executionGraph" ::: Pipeline) -> IO ()
forall a. Ptr a -> IO ()
free
Result
r <- IO Result
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
Result
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
m
a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO Result
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
Result)
-> IO Result
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
Result
forall a b. (a -> b) -> a -> b
$ String -> IO Result -> IO Result
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCreateExecutionGraphPipelinesAMDX" (Ptr Device_T
-> PipelineCache
-> ("nodeIndex" ::: Word32)
-> Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)
-> Ptr AllocationCallbacks
-> Ptr ("executionGraph" ::: Pipeline)
-> IO Result
vkCreateExecutionGraphPipelinesAMDX'
(Device -> Ptr Device_T
deviceHandle (Device
device))
(PipelineCache
pipelineCache)
((Int -> "nodeIndex" ::: Word32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (("createInfos"
::: Vector (SomeStruct ExecutionGraphPipelineCreateInfoAMDX))
-> Int
forall a. Vector a -> Int
Data.Vector.length (("createInfos"
::: Vector (SomeStruct ExecutionGraphPipelineCreateInfoAMDX))
-> Int)
-> ("createInfos"
::: Vector (SomeStruct ExecutionGraphPipelineCreateInfoAMDX))
-> Int
forall a b. (a -> b) -> a -> b
$ ("createInfos"
::: Vector (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)
createInfos)) :: Word32))
(Ptr (ExecutionGraphPipelineCreateInfoAMDX Any)
-> Ptr (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)
forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions (Ptr (ExecutionGraphPipelineCreateInfoAMDX Any)
pPCreateInfos))
Ptr AllocationCallbacks
pAllocator
(Ptr ("executionGraph" ::: Pipeline)
pPPipelines))
IO ()
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
()
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
m
a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ()
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
())
-> IO ()
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
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))
"pipelines" ::: Vector ("executionGraph" ::: Pipeline)
pPipelines <- IO ("pipelines" ::: Vector ("executionGraph" ::: Pipeline))
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
("pipelines" ::: Vector ("executionGraph" ::: Pipeline))
forall (m :: * -> *) a.
Monad m =>
m a
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
m
a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ("pipelines" ::: Vector ("executionGraph" ::: Pipeline))
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
("pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> IO ("pipelines" ::: Vector ("executionGraph" ::: Pipeline))
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
("pipelines" ::: Vector ("executionGraph" ::: Pipeline))
forall a b. (a -> b) -> a -> b
$ Int
-> (Int -> IO ("executionGraph" ::: Pipeline))
-> IO ("pipelines" ::: Vector ("executionGraph" ::: Pipeline))
forall (m :: * -> *) a.
Monad m =>
Int -> (Int -> m a) -> m (Vector a)
generateM (("nodeIndex" ::: Word32) -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral ((Int -> "nodeIndex" ::: Word32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (("createInfos"
::: Vector (SomeStruct ExecutionGraphPipelineCreateInfoAMDX))
-> Int
forall a. Vector a -> Int
Data.Vector.length (("createInfos"
::: Vector (SomeStruct ExecutionGraphPipelineCreateInfoAMDX))
-> Int)
-> ("createInfos"
::: Vector (SomeStruct ExecutionGraphPipelineCreateInfoAMDX))
-> Int
forall a b. (a -> b) -> a -> b
$ ("createInfos"
::: Vector (SomeStruct ExecutionGraphPipelineCreateInfoAMDX)
createInfos)) :: Word32))) (\Int
i -> forall a. Storable a => Ptr a -> IO a
peek @Pipeline ((Ptr ("executionGraph" ::: Pipeline)
pPPipelines Ptr ("executionGraph" ::: Pipeline)
-> Int -> Ptr ("executionGraph" ::: Pipeline)
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
8 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr Pipeline)))
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
forall a.
a
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ((Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)))
-> (Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
-> ContT
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
IO
(Result, "pipelines" ::: Vector ("executionGraph" ::: Pipeline))
forall a b. (a -> b) -> a -> b
$ (Result
r, "pipelines" ::: Vector ("executionGraph" ::: Pipeline)
pPipelines)
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdInitializeGraphScratchMemoryAMDX
:: FunPtr (Ptr CommandBuffer_T -> DeviceAddress -> IO ()) -> Ptr CommandBuffer_T -> DeviceAddress -> IO ()
cmdInitializeGraphScratchMemoryAMDX :: forall io
. (MonadIO io)
=>
CommandBuffer
->
("scratch" ::: DeviceAddress)
-> io ()
cmdInitializeGraphScratchMemoryAMDX :: forall (io :: * -> *).
MonadIO io =>
CommandBuffer -> Flags64 -> io ()
cmdInitializeGraphScratchMemoryAMDX CommandBuffer
commandBuffer Flags64
scratch = IO () -> io ()
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ()) -> IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkCmdInitializeGraphScratchMemoryAMDXPtr :: FunPtr (Ptr CommandBuffer_T -> Flags64 -> IO ())
vkCmdInitializeGraphScratchMemoryAMDXPtr = DeviceCmds -> FunPtr (Ptr CommandBuffer_T -> Flags64 -> IO ())
pVkCmdInitializeGraphScratchMemoryAMDX (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
deviceCmds :: DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr (Ptr CommandBuffer_T -> Flags64 -> IO ())
vkCmdInitializeGraphScratchMemoryAMDXPtr FunPtr (Ptr CommandBuffer_T -> Flags64 -> IO ())
-> FunPtr (Ptr CommandBuffer_T -> Flags64 -> IO ()) -> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr (Ptr CommandBuffer_T -> Flags64 -> 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 vkCmdInitializeGraphScratchMemoryAMDX is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdInitializeGraphScratchMemoryAMDX' :: Ptr CommandBuffer_T -> Flags64 -> IO ()
vkCmdInitializeGraphScratchMemoryAMDX' = FunPtr (Ptr CommandBuffer_T -> Flags64 -> IO ())
-> Ptr CommandBuffer_T -> Flags64 -> IO ()
mkVkCmdInitializeGraphScratchMemoryAMDX FunPtr (Ptr CommandBuffer_T -> Flags64 -> IO ())
vkCmdInitializeGraphScratchMemoryAMDXPtr
String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdInitializeGraphScratchMemoryAMDX" (Ptr CommandBuffer_T -> Flags64 -> IO ()
vkCmdInitializeGraphScratchMemoryAMDX'
(CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer))
(Flags64
scratch))
() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> IO ()) -> () -> IO ()
forall a b. (a -> b) -> a -> b
$ ()
foreign import ccall
#if !defined(SAFE_FOREIGN_CALLS)
unsafe
#endif
"dynamic" mkVkCmdDispatchGraphAMDX
:: FunPtr (Ptr CommandBuffer_T -> DeviceAddress -> Ptr DispatchGraphCountInfoAMDX -> IO ()) -> Ptr CommandBuffer_T -> DeviceAddress -> Ptr DispatchGraphCountInfoAMDX -> IO ()
cmdDispatchGraphAMDX :: forall io
. (MonadIO io)
=>
CommandBuffer
->
("scratch" ::: DeviceAddress)
->
DispatchGraphCountInfoAMDX
-> io ()
cmdDispatchGraphAMDX :: forall (io :: * -> *).
MonadIO io =>
CommandBuffer -> Flags64 -> DispatchGraphCountInfoAMDX -> io ()
cmdDispatchGraphAMDX CommandBuffer
commandBuffer Flags64
scratch DispatchGraphCountInfoAMDX
countInfo = 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 vkCmdDispatchGraphAMDXPtr :: FunPtr
(Ptr CommandBuffer_T
-> Flags64 -> Ptr DispatchGraphCountInfoAMDX -> IO ())
vkCmdDispatchGraphAMDXPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> Flags64 -> Ptr DispatchGraphCountInfoAMDX -> IO ())
pVkCmdDispatchGraphAMDX (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> 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 CommandBuffer_T
-> Flags64 -> Ptr DispatchGraphCountInfoAMDX -> IO ())
vkCmdDispatchGraphAMDXPtr FunPtr
(Ptr CommandBuffer_T
-> Flags64 -> Ptr DispatchGraphCountInfoAMDX -> IO ())
-> FunPtr
(Ptr CommandBuffer_T
-> Flags64 -> Ptr DispatchGraphCountInfoAMDX -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T
-> Flags64 -> Ptr DispatchGraphCountInfoAMDX -> 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 vkCmdDispatchGraphAMDX is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdDispatchGraphAMDX' :: Ptr CommandBuffer_T
-> Flags64 -> Ptr DispatchGraphCountInfoAMDX -> IO ()
vkCmdDispatchGraphAMDX' = FunPtr
(Ptr CommandBuffer_T
-> Flags64 -> Ptr DispatchGraphCountInfoAMDX -> IO ())
-> Ptr CommandBuffer_T
-> Flags64
-> Ptr DispatchGraphCountInfoAMDX
-> IO ()
mkVkCmdDispatchGraphAMDX FunPtr
(Ptr CommandBuffer_T
-> Flags64 -> Ptr DispatchGraphCountInfoAMDX -> IO ())
vkCmdDispatchGraphAMDXPtr
Ptr DispatchGraphCountInfoAMDX
pCountInfo <- ((Ptr DispatchGraphCountInfoAMDX -> IO ()) -> IO ())
-> ContT () IO (Ptr DispatchGraphCountInfoAMDX)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr DispatchGraphCountInfoAMDX -> IO ()) -> IO ())
-> ContT () IO (Ptr DispatchGraphCountInfoAMDX))
-> ((Ptr DispatchGraphCountInfoAMDX -> IO ()) -> IO ())
-> ContT () IO (Ptr DispatchGraphCountInfoAMDX)
forall a b. (a -> b) -> a -> b
$ DispatchGraphCountInfoAMDX
-> (Ptr DispatchGraphCountInfoAMDX -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
DispatchGraphCountInfoAMDX
-> (Ptr DispatchGraphCountInfoAMDX -> IO b) -> IO b
withCStruct (DispatchGraphCountInfoAMDX
countInfo)
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
"vkCmdDispatchGraphAMDX" (Ptr CommandBuffer_T
-> Flags64 -> Ptr DispatchGraphCountInfoAMDX -> IO ()
vkCmdDispatchGraphAMDX'
(CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer))
(Flags64
scratch)
Ptr DispatchGraphCountInfoAMDX
pCountInfo)
() -> 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" mkVkCmdDispatchGraphIndirectAMDX
:: FunPtr (Ptr CommandBuffer_T -> DeviceAddress -> Ptr DispatchGraphCountInfoAMDX -> IO ()) -> Ptr CommandBuffer_T -> DeviceAddress -> Ptr DispatchGraphCountInfoAMDX -> IO ()
cmdDispatchGraphIndirectAMDX :: forall io
. (MonadIO io)
=>
CommandBuffer
->
("scratch" ::: DeviceAddress)
->
DispatchGraphCountInfoAMDX
-> io ()
cmdDispatchGraphIndirectAMDX :: forall (io :: * -> *).
MonadIO io =>
CommandBuffer -> Flags64 -> DispatchGraphCountInfoAMDX -> io ()
cmdDispatchGraphIndirectAMDX CommandBuffer
commandBuffer
Flags64
scratch
DispatchGraphCountInfoAMDX
countInfo = 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 vkCmdDispatchGraphIndirectAMDXPtr :: FunPtr
(Ptr CommandBuffer_T
-> Flags64 -> Ptr DispatchGraphCountInfoAMDX -> IO ())
vkCmdDispatchGraphIndirectAMDXPtr = DeviceCmds
-> FunPtr
(Ptr CommandBuffer_T
-> Flags64 -> Ptr DispatchGraphCountInfoAMDX -> IO ())
pVkCmdDispatchGraphIndirectAMDX (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> 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 CommandBuffer_T
-> Flags64 -> Ptr DispatchGraphCountInfoAMDX -> IO ())
vkCmdDispatchGraphIndirectAMDXPtr FunPtr
(Ptr CommandBuffer_T
-> Flags64 -> Ptr DispatchGraphCountInfoAMDX -> IO ())
-> FunPtr
(Ptr CommandBuffer_T
-> Flags64 -> Ptr DispatchGraphCountInfoAMDX -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr
(Ptr CommandBuffer_T
-> Flags64 -> Ptr DispatchGraphCountInfoAMDX -> 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 vkCmdDispatchGraphIndirectAMDX is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdDispatchGraphIndirectAMDX' :: Ptr CommandBuffer_T
-> Flags64 -> Ptr DispatchGraphCountInfoAMDX -> IO ()
vkCmdDispatchGraphIndirectAMDX' = FunPtr
(Ptr CommandBuffer_T
-> Flags64 -> Ptr DispatchGraphCountInfoAMDX -> IO ())
-> Ptr CommandBuffer_T
-> Flags64
-> Ptr DispatchGraphCountInfoAMDX
-> IO ()
mkVkCmdDispatchGraphIndirectAMDX FunPtr
(Ptr CommandBuffer_T
-> Flags64 -> Ptr DispatchGraphCountInfoAMDX -> IO ())
vkCmdDispatchGraphIndirectAMDXPtr
Ptr DispatchGraphCountInfoAMDX
pCountInfo <- ((Ptr DispatchGraphCountInfoAMDX -> IO ()) -> IO ())
-> ContT () IO (Ptr DispatchGraphCountInfoAMDX)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr DispatchGraphCountInfoAMDX -> IO ()) -> IO ())
-> ContT () IO (Ptr DispatchGraphCountInfoAMDX))
-> ((Ptr DispatchGraphCountInfoAMDX -> IO ()) -> IO ())
-> ContT () IO (Ptr DispatchGraphCountInfoAMDX)
forall a b. (a -> b) -> a -> b
$ DispatchGraphCountInfoAMDX
-> (Ptr DispatchGraphCountInfoAMDX -> IO ()) -> IO ()
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
DispatchGraphCountInfoAMDX
-> (Ptr DispatchGraphCountInfoAMDX -> IO b) -> IO b
withCStruct (DispatchGraphCountInfoAMDX
countInfo)
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
"vkCmdDispatchGraphIndirectAMDX" (Ptr CommandBuffer_T
-> Flags64 -> Ptr DispatchGraphCountInfoAMDX -> IO ()
vkCmdDispatchGraphIndirectAMDX'
(CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer))
(Flags64
scratch)
Ptr DispatchGraphCountInfoAMDX
pCountInfo)
() -> 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" mkVkCmdDispatchGraphIndirectCountAMDX
:: FunPtr (Ptr CommandBuffer_T -> DeviceAddress -> DeviceAddress -> IO ()) -> Ptr CommandBuffer_T -> DeviceAddress -> DeviceAddress -> IO ()
cmdDispatchGraphIndirectCountAMDX :: forall io
. (MonadIO io)
=>
CommandBuffer
->
("scratch" ::: DeviceAddress)
->
("countInfo" ::: DeviceAddress)
-> io ()
cmdDispatchGraphIndirectCountAMDX :: forall (io :: * -> *).
MonadIO io =>
CommandBuffer -> Flags64 -> Flags64 -> io ()
cmdDispatchGraphIndirectCountAMDX CommandBuffer
commandBuffer Flags64
scratch Flags64
countInfo = IO () -> io ()
forall a. IO a -> io a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> io ()) -> IO () -> io ()
forall a b. (a -> b) -> a -> b
$ do
let vkCmdDispatchGraphIndirectCountAMDXPtr :: FunPtr (Ptr CommandBuffer_T -> Flags64 -> Flags64 -> IO ())
vkCmdDispatchGraphIndirectCountAMDXPtr = DeviceCmds
-> FunPtr (Ptr CommandBuffer_T -> Flags64 -> Flags64 -> IO ())
pVkCmdDispatchGraphIndirectCountAMDX (case CommandBuffer
commandBuffer of CommandBuffer{DeviceCmds
$sel:deviceCmds:CommandBuffer :: CommandBuffer -> DeviceCmds
deviceCmds :: DeviceCmds
deviceCmds} -> DeviceCmds
deviceCmds)
Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (FunPtr (Ptr CommandBuffer_T -> Flags64 -> Flags64 -> IO ())
vkCmdDispatchGraphIndirectCountAMDXPtr FunPtr (Ptr CommandBuffer_T -> Flags64 -> Flags64 -> IO ())
-> FunPtr (Ptr CommandBuffer_T -> Flags64 -> Flags64 -> IO ())
-> Bool
forall a. Eq a => a -> a -> Bool
/= FunPtr (Ptr CommandBuffer_T -> Flags64 -> Flags64 -> 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 vkCmdDispatchGraphIndirectCountAMDX is null" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
let vkCmdDispatchGraphIndirectCountAMDX' :: Ptr CommandBuffer_T -> Flags64 -> Flags64 -> IO ()
vkCmdDispatchGraphIndirectCountAMDX' = FunPtr (Ptr CommandBuffer_T -> Flags64 -> Flags64 -> IO ())
-> Ptr CommandBuffer_T -> Flags64 -> Flags64 -> IO ()
mkVkCmdDispatchGraphIndirectCountAMDX FunPtr (Ptr CommandBuffer_T -> Flags64 -> Flags64 -> IO ())
vkCmdDispatchGraphIndirectCountAMDXPtr
String -> IO () -> IO ()
forall a. String -> IO a -> IO a
traceAroundEvent String
"vkCmdDispatchGraphIndirectCountAMDX" (Ptr CommandBuffer_T -> Flags64 -> Flags64 -> IO ()
vkCmdDispatchGraphIndirectCountAMDX'
(CommandBuffer -> Ptr CommandBuffer_T
commandBufferHandle (CommandBuffer
commandBuffer))
(Flags64
scratch)
(Flags64
countInfo))
() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (() -> IO ()) -> () -> IO ()
forall a b. (a -> b) -> a -> b
$ ()
data PhysicalDeviceShaderEnqueuePropertiesAMDX = PhysicalDeviceShaderEnqueuePropertiesAMDX
{
PhysicalDeviceShaderEnqueuePropertiesAMDX -> "nodeIndex" ::: Word32
maxExecutionGraphDepth :: Word32
,
PhysicalDeviceShaderEnqueuePropertiesAMDX -> "nodeIndex" ::: Word32
maxExecutionGraphShaderOutputNodes :: Word32
,
PhysicalDeviceShaderEnqueuePropertiesAMDX -> "nodeIndex" ::: Word32
maxExecutionGraphShaderPayloadSize :: Word32
,
PhysicalDeviceShaderEnqueuePropertiesAMDX -> "nodeIndex" ::: Word32
maxExecutionGraphShaderPayloadCount :: Word32
,
PhysicalDeviceShaderEnqueuePropertiesAMDX -> "nodeIndex" ::: Word32
executionGraphDispatchAddressAlignment :: Word32
}
deriving (Typeable, PhysicalDeviceShaderEnqueuePropertiesAMDX
-> PhysicalDeviceShaderEnqueuePropertiesAMDX -> Bool
(PhysicalDeviceShaderEnqueuePropertiesAMDX
-> PhysicalDeviceShaderEnqueuePropertiesAMDX -> Bool)
-> (PhysicalDeviceShaderEnqueuePropertiesAMDX
-> PhysicalDeviceShaderEnqueuePropertiesAMDX -> Bool)
-> Eq PhysicalDeviceShaderEnqueuePropertiesAMDX
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceShaderEnqueuePropertiesAMDX
-> PhysicalDeviceShaderEnqueuePropertiesAMDX -> Bool
== :: PhysicalDeviceShaderEnqueuePropertiesAMDX
-> PhysicalDeviceShaderEnqueuePropertiesAMDX -> Bool
$c/= :: PhysicalDeviceShaderEnqueuePropertiesAMDX
-> PhysicalDeviceShaderEnqueuePropertiesAMDX -> Bool
/= :: PhysicalDeviceShaderEnqueuePropertiesAMDX
-> PhysicalDeviceShaderEnqueuePropertiesAMDX -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceShaderEnqueuePropertiesAMDX)
#endif
deriving instance Show PhysicalDeviceShaderEnqueuePropertiesAMDX
instance ToCStruct PhysicalDeviceShaderEnqueuePropertiesAMDX where
withCStruct :: forall b.
PhysicalDeviceShaderEnqueuePropertiesAMDX
-> (Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX -> IO b) -> IO b
withCStruct PhysicalDeviceShaderEnqueuePropertiesAMDX
x Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX -> IO b
f = Int
-> (Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
40 ((Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX -> IO b) -> IO b)
-> (Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p -> Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> PhysicalDeviceShaderEnqueuePropertiesAMDX -> IO b -> IO b
forall b.
Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> PhysicalDeviceShaderEnqueuePropertiesAMDX -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p PhysicalDeviceShaderEnqueuePropertiesAMDX
x (Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX -> IO b
f Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> PhysicalDeviceShaderEnqueuePropertiesAMDX -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p PhysicalDeviceShaderEnqueuePropertiesAMDX{"nodeIndex" ::: Word32
$sel:maxExecutionGraphDepth:PhysicalDeviceShaderEnqueuePropertiesAMDX :: PhysicalDeviceShaderEnqueuePropertiesAMDX -> "nodeIndex" ::: Word32
$sel:maxExecutionGraphShaderOutputNodes:PhysicalDeviceShaderEnqueuePropertiesAMDX :: PhysicalDeviceShaderEnqueuePropertiesAMDX -> "nodeIndex" ::: Word32
$sel:maxExecutionGraphShaderPayloadSize:PhysicalDeviceShaderEnqueuePropertiesAMDX :: PhysicalDeviceShaderEnqueuePropertiesAMDX -> "nodeIndex" ::: Word32
$sel:maxExecutionGraphShaderPayloadCount:PhysicalDeviceShaderEnqueuePropertiesAMDX :: PhysicalDeviceShaderEnqueuePropertiesAMDX -> "nodeIndex" ::: Word32
$sel:executionGraphDispatchAddressAlignment:PhysicalDeviceShaderEnqueuePropertiesAMDX :: PhysicalDeviceShaderEnqueuePropertiesAMDX -> "nodeIndex" ::: Word32
maxExecutionGraphDepth :: "nodeIndex" ::: Word32
maxExecutionGraphShaderOutputNodes :: "nodeIndex" ::: Word32
maxExecutionGraphShaderPayloadSize :: "nodeIndex" ::: Word32
maxExecutionGraphShaderPayloadCount :: "nodeIndex" ::: Word32
executionGraphDispatchAddressAlignment :: "nodeIndex" ::: Word32
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr ("nodeIndex" ::: Word32) -> ("nodeIndex" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) ("nodeIndex" ::: Word32
maxExecutionGraphDepth)
Ptr ("nodeIndex" ::: Word32) -> ("nodeIndex" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32)) ("nodeIndex" ::: Word32
maxExecutionGraphShaderOutputNodes)
Ptr ("nodeIndex" ::: Word32) -> ("nodeIndex" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32)) ("nodeIndex" ::: Word32
maxExecutionGraphShaderPayloadSize)
Ptr ("nodeIndex" ::: Word32) -> ("nodeIndex" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Word32)) ("nodeIndex" ::: Word32
maxExecutionGraphShaderPayloadCount)
Ptr ("nodeIndex" ::: Word32) -> ("nodeIndex" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Word32)) ("nodeIndex" ::: Word32
executionGraphDispatchAddressAlignment)
IO b
f
cStructSize :: Int
cStructSize = Int
40
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr ("nodeIndex" ::: Word32) -> ("nodeIndex" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32)) ("nodeIndex" ::: Word32
forall a. Zero a => a
zero)
Ptr ("nodeIndex" ::: Word32) -> ("nodeIndex" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32)) ("nodeIndex" ::: Word32
forall a. Zero a => a
zero)
Ptr ("nodeIndex" ::: Word32) -> ("nodeIndex" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32)) ("nodeIndex" ::: Word32
forall a. Zero a => a
zero)
Ptr ("nodeIndex" ::: Word32) -> ("nodeIndex" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Word32)) ("nodeIndex" ::: Word32
forall a. Zero a => a
zero)
Ptr ("nodeIndex" ::: Word32) -> ("nodeIndex" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Word32)) ("nodeIndex" ::: Word32
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct PhysicalDeviceShaderEnqueuePropertiesAMDX where
peekCStruct :: Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> IO PhysicalDeviceShaderEnqueuePropertiesAMDX
peekCStruct Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p = do
"nodeIndex" ::: Word32
maxExecutionGraphDepth <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word32))
"nodeIndex" ::: Word32
maxExecutionGraphShaderOutputNodes <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32))
"nodeIndex" ::: Word32
maxExecutionGraphShaderPayloadSize <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32))
"nodeIndex" ::: Word32
maxExecutionGraphShaderPayloadCount <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Word32))
"nodeIndex" ::: Word32
executionGraphDispatchAddressAlignment <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
p Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Word32))
PhysicalDeviceShaderEnqueuePropertiesAMDX
-> IO PhysicalDeviceShaderEnqueuePropertiesAMDX
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceShaderEnqueuePropertiesAMDX
-> IO PhysicalDeviceShaderEnqueuePropertiesAMDX)
-> PhysicalDeviceShaderEnqueuePropertiesAMDX
-> IO PhysicalDeviceShaderEnqueuePropertiesAMDX
forall a b. (a -> b) -> a -> b
$ ("nodeIndex" ::: Word32)
-> ("nodeIndex" ::: Word32)
-> ("nodeIndex" ::: Word32)
-> ("nodeIndex" ::: Word32)
-> ("nodeIndex" ::: Word32)
-> PhysicalDeviceShaderEnqueuePropertiesAMDX
PhysicalDeviceShaderEnqueuePropertiesAMDX
"nodeIndex" ::: Word32
maxExecutionGraphDepth
"nodeIndex" ::: Word32
maxExecutionGraphShaderOutputNodes
"nodeIndex" ::: Word32
maxExecutionGraphShaderPayloadSize
"nodeIndex" ::: Word32
maxExecutionGraphShaderPayloadCount
"nodeIndex" ::: Word32
executionGraphDispatchAddressAlignment
instance Storable PhysicalDeviceShaderEnqueuePropertiesAMDX where
sizeOf :: PhysicalDeviceShaderEnqueuePropertiesAMDX -> Int
sizeOf ~PhysicalDeviceShaderEnqueuePropertiesAMDX
_ = Int
40
alignment :: PhysicalDeviceShaderEnqueuePropertiesAMDX -> Int
alignment ~PhysicalDeviceShaderEnqueuePropertiesAMDX
_ = Int
8
peek :: Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> IO PhysicalDeviceShaderEnqueuePropertiesAMDX
peek = Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> IO PhysicalDeviceShaderEnqueuePropertiesAMDX
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> PhysicalDeviceShaderEnqueuePropertiesAMDX -> IO ()
poke Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
poked = Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> PhysicalDeviceShaderEnqueuePropertiesAMDX -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
-> PhysicalDeviceShaderEnqueuePropertiesAMDX -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
ptr PhysicalDeviceShaderEnqueuePropertiesAMDX
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceShaderEnqueuePropertiesAMDX where
zero :: PhysicalDeviceShaderEnqueuePropertiesAMDX
zero = ("nodeIndex" ::: Word32)
-> ("nodeIndex" ::: Word32)
-> ("nodeIndex" ::: Word32)
-> ("nodeIndex" ::: Word32)
-> ("nodeIndex" ::: Word32)
-> PhysicalDeviceShaderEnqueuePropertiesAMDX
PhysicalDeviceShaderEnqueuePropertiesAMDX
"nodeIndex" ::: Word32
forall a. Zero a => a
zero
"nodeIndex" ::: Word32
forall a. Zero a => a
zero
"nodeIndex" ::: Word32
forall a. Zero a => a
zero
"nodeIndex" ::: Word32
forall a. Zero a => a
zero
"nodeIndex" ::: Word32
forall a. Zero a => a
zero
data PhysicalDeviceShaderEnqueueFeaturesAMDX = PhysicalDeviceShaderEnqueueFeaturesAMDX
{
PhysicalDeviceShaderEnqueueFeaturesAMDX -> Bool
shaderEnqueue :: Bool }
deriving (Typeable, PhysicalDeviceShaderEnqueueFeaturesAMDX
-> PhysicalDeviceShaderEnqueueFeaturesAMDX -> Bool
(PhysicalDeviceShaderEnqueueFeaturesAMDX
-> PhysicalDeviceShaderEnqueueFeaturesAMDX -> Bool)
-> (PhysicalDeviceShaderEnqueueFeaturesAMDX
-> PhysicalDeviceShaderEnqueueFeaturesAMDX -> Bool)
-> Eq PhysicalDeviceShaderEnqueueFeaturesAMDX
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PhysicalDeviceShaderEnqueueFeaturesAMDX
-> PhysicalDeviceShaderEnqueueFeaturesAMDX -> Bool
== :: PhysicalDeviceShaderEnqueueFeaturesAMDX
-> PhysicalDeviceShaderEnqueueFeaturesAMDX -> Bool
$c/= :: PhysicalDeviceShaderEnqueueFeaturesAMDX
-> PhysicalDeviceShaderEnqueueFeaturesAMDX -> Bool
/= :: PhysicalDeviceShaderEnqueueFeaturesAMDX
-> PhysicalDeviceShaderEnqueueFeaturesAMDX -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceShaderEnqueueFeaturesAMDX)
#endif
deriving instance Show PhysicalDeviceShaderEnqueueFeaturesAMDX
instance ToCStruct PhysicalDeviceShaderEnqueueFeaturesAMDX where
withCStruct :: forall b.
PhysicalDeviceShaderEnqueueFeaturesAMDX
-> (Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX -> IO b) -> IO b
withCStruct PhysicalDeviceShaderEnqueueFeaturesAMDX
x Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX -> IO b
f = Int
-> (Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX -> IO b) -> IO b)
-> (Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
p -> Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
-> PhysicalDeviceShaderEnqueueFeaturesAMDX -> IO b -> IO b
forall b.
Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
-> PhysicalDeviceShaderEnqueueFeaturesAMDX -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
p PhysicalDeviceShaderEnqueueFeaturesAMDX
x (Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX -> IO b
f Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
p)
pokeCStruct :: forall b.
Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
-> PhysicalDeviceShaderEnqueueFeaturesAMDX -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
p PhysicalDeviceShaderEnqueueFeaturesAMDX{Bool
$sel:shaderEnqueue:PhysicalDeviceShaderEnqueueFeaturesAMDX :: PhysicalDeviceShaderEnqueueFeaturesAMDX -> Bool
shaderEnqueue :: Bool
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
p Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
p Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX -> 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 PhysicalDeviceShaderEnqueueFeaturesAMDX
p Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderEnqueue))
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX -> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
p Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
p Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX -> 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 PhysicalDeviceShaderEnqueueFeaturesAMDX
p Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
IO b
f
instance FromCStruct PhysicalDeviceShaderEnqueueFeaturesAMDX where
peekCStruct :: Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
-> IO PhysicalDeviceShaderEnqueueFeaturesAMDX
peekCStruct Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
p = do
Bool32
shaderEnqueue <- forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
p Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX -> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
PhysicalDeviceShaderEnqueueFeaturesAMDX
-> IO PhysicalDeviceShaderEnqueueFeaturesAMDX
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceShaderEnqueueFeaturesAMDX
-> IO PhysicalDeviceShaderEnqueueFeaturesAMDX)
-> PhysicalDeviceShaderEnqueueFeaturesAMDX
-> IO PhysicalDeviceShaderEnqueueFeaturesAMDX
forall a b. (a -> b) -> a -> b
$ Bool -> PhysicalDeviceShaderEnqueueFeaturesAMDX
PhysicalDeviceShaderEnqueueFeaturesAMDX
(Bool32 -> Bool
bool32ToBool Bool32
shaderEnqueue)
instance Storable PhysicalDeviceShaderEnqueueFeaturesAMDX where
sizeOf :: PhysicalDeviceShaderEnqueueFeaturesAMDX -> Int
sizeOf ~PhysicalDeviceShaderEnqueueFeaturesAMDX
_ = Int
24
alignment :: PhysicalDeviceShaderEnqueueFeaturesAMDX -> Int
alignment ~PhysicalDeviceShaderEnqueueFeaturesAMDX
_ = Int
8
peek :: Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
-> IO PhysicalDeviceShaderEnqueueFeaturesAMDX
peek = Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
-> IO PhysicalDeviceShaderEnqueueFeaturesAMDX
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
-> PhysicalDeviceShaderEnqueueFeaturesAMDX -> IO ()
poke Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
poked = Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
-> PhysicalDeviceShaderEnqueueFeaturesAMDX -> IO () -> IO ()
forall b.
Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
-> PhysicalDeviceShaderEnqueueFeaturesAMDX -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
ptr PhysicalDeviceShaderEnqueueFeaturesAMDX
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero PhysicalDeviceShaderEnqueueFeaturesAMDX where
zero :: PhysicalDeviceShaderEnqueueFeaturesAMDX
zero = Bool -> PhysicalDeviceShaderEnqueueFeaturesAMDX
PhysicalDeviceShaderEnqueueFeaturesAMDX
Bool
forall a. Zero a => a
zero
data ExecutionGraphPipelineCreateInfoAMDX (es :: [Type]) = ExecutionGraphPipelineCreateInfoAMDX
{
forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es -> Chain es
next :: Chain es
,
forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es -> PipelineCreateFlags
flags :: PipelineCreateFlags
,
forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es -> "nodeIndex" ::: Word32
stageCount :: Word32
,
forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es
-> Vector (SomeStruct PipelineShaderStageCreateInfo)
stages :: Vector (SomeStruct PipelineShaderStageCreateInfo)
,
forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es
-> Maybe PipelineLibraryCreateInfoKHR
libraryInfo :: Maybe PipelineLibraryCreateInfoKHR
,
forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es -> PipelineLayout
layout :: PipelineLayout
,
forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es
-> "executionGraph" ::: Pipeline
basePipelineHandle :: Pipeline
,
forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es -> Int32
basePipelineIndex :: Int32
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (ExecutionGraphPipelineCreateInfoAMDX (es :: [Type]))
#endif
deriving instance Show (Chain es) => Show (ExecutionGraphPipelineCreateInfoAMDX es)
instance Extensible ExecutionGraphPipelineCreateInfoAMDX where
extensibleTypeName :: String
extensibleTypeName = String
"ExecutionGraphPipelineCreateInfoAMDX"
setNext :: forall (ds :: [*]) (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX ds
-> Chain es -> ExecutionGraphPipelineCreateInfoAMDX es
setNext ExecutionGraphPipelineCreateInfoAMDX{Int32
Maybe PipelineLibraryCreateInfoKHR
"nodeIndex" ::: Word32
Vector (SomeStruct PipelineShaderStageCreateInfo)
PipelineCreateFlags
"executionGraph" ::: Pipeline
PipelineLayout
Chain ds
$sel:next:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es -> Chain es
$sel:flags:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es -> PipelineCreateFlags
$sel:stageCount:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es -> "nodeIndex" ::: Word32
$sel:stages:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es
-> Vector (SomeStruct PipelineShaderStageCreateInfo)
$sel:libraryInfo:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es
-> Maybe PipelineLibraryCreateInfoKHR
$sel:layout:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es -> PipelineLayout
$sel:basePipelineHandle:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es
-> "executionGraph" ::: Pipeline
$sel:basePipelineIndex:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es -> Int32
next :: Chain ds
flags :: PipelineCreateFlags
stageCount :: "nodeIndex" ::: Word32
stages :: Vector (SomeStruct PipelineShaderStageCreateInfo)
libraryInfo :: Maybe PipelineLibraryCreateInfoKHR
layout :: PipelineLayout
basePipelineHandle :: "executionGraph" ::: Pipeline
basePipelineIndex :: Int32
..} Chain es
next' = ExecutionGraphPipelineCreateInfoAMDX{$sel:next:ExecutionGraphPipelineCreateInfoAMDX :: Chain es
next = Chain es
next', Int32
Maybe PipelineLibraryCreateInfoKHR
"nodeIndex" ::: Word32
Vector (SomeStruct PipelineShaderStageCreateInfo)
PipelineCreateFlags
"executionGraph" ::: Pipeline
PipelineLayout
$sel:flags:ExecutionGraphPipelineCreateInfoAMDX :: PipelineCreateFlags
$sel:stageCount:ExecutionGraphPipelineCreateInfoAMDX :: "nodeIndex" ::: Word32
$sel:stages:ExecutionGraphPipelineCreateInfoAMDX :: Vector (SomeStruct PipelineShaderStageCreateInfo)
$sel:libraryInfo:ExecutionGraphPipelineCreateInfoAMDX :: Maybe PipelineLibraryCreateInfoKHR
$sel:layout:ExecutionGraphPipelineCreateInfoAMDX :: PipelineLayout
$sel:basePipelineHandle:ExecutionGraphPipelineCreateInfoAMDX :: "executionGraph" ::: Pipeline
$sel:basePipelineIndex:ExecutionGraphPipelineCreateInfoAMDX :: Int32
flags :: PipelineCreateFlags
stageCount :: "nodeIndex" ::: Word32
stages :: Vector (SomeStruct PipelineShaderStageCreateInfo)
libraryInfo :: Maybe PipelineLibraryCreateInfoKHR
layout :: PipelineLayout
basePipelineHandle :: "executionGraph" ::: Pipeline
basePipelineIndex :: Int32
..}
getNext :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es -> Chain es
getNext ExecutionGraphPipelineCreateInfoAMDX{Int32
Maybe PipelineLibraryCreateInfoKHR
"nodeIndex" ::: Word32
Vector (SomeStruct PipelineShaderStageCreateInfo)
PipelineCreateFlags
"executionGraph" ::: Pipeline
PipelineLayout
Chain es
$sel:next:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es -> Chain es
$sel:flags:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es -> PipelineCreateFlags
$sel:stageCount:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es -> "nodeIndex" ::: Word32
$sel:stages:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es
-> Vector (SomeStruct PipelineShaderStageCreateInfo)
$sel:libraryInfo:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es
-> Maybe PipelineLibraryCreateInfoKHR
$sel:layout:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es -> PipelineLayout
$sel:basePipelineHandle:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es
-> "executionGraph" ::: Pipeline
$sel:basePipelineIndex:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es -> Int32
next :: Chain es
flags :: PipelineCreateFlags
stageCount :: "nodeIndex" ::: Word32
stages :: Vector (SomeStruct PipelineShaderStageCreateInfo)
libraryInfo :: Maybe PipelineLibraryCreateInfoKHR
layout :: PipelineLayout
basePipelineHandle :: "executionGraph" ::: Pipeline
basePipelineIndex :: Int32
..} = Chain es
next
extends :: forall e b proxy. Typeable e => proxy e -> (Extends ExecutionGraphPipelineCreateInfoAMDX e => b) -> Maybe b
extends :: forall e b (proxy :: * -> *).
Typeable e =>
proxy e
-> (Extends ExecutionGraphPipelineCreateInfoAMDX e => b) -> Maybe b
extends proxy e
_ Extends ExecutionGraphPipelineCreateInfoAMDX e => b
f
| Just e :~: PipelineCompilerControlCreateInfoAMD
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
forall a b. (Typeable a, Typeable b) => Maybe (a :~: b)
eqT @e @PipelineCompilerControlCreateInfoAMD = b -> Maybe b
forall a. a -> Maybe a
Just b
Extends ExecutionGraphPipelineCreateInfoAMDX e => b
f
| Just e :~: PipelineCreationFeedbackCreateInfo
Refl <- forall {k} (a :: k) (b :: k).
(Typeable a, Typeable b) =>
Maybe (a :~: b)
forall a b. (Typeable a, Typeable b) => Maybe (a :~: b)
eqT @e @PipelineCreationFeedbackCreateInfo = b -> Maybe b
forall a. a -> Maybe a
Just b
Extends ExecutionGraphPipelineCreateInfoAMDX e => b
f
| Bool
otherwise = Maybe b
forall a. Maybe a
Nothing
instance ( Extendss ExecutionGraphPipelineCreateInfoAMDX es
, PokeChain es ) => ToCStruct (ExecutionGraphPipelineCreateInfoAMDX es) where
withCStruct :: forall b.
ExecutionGraphPipelineCreateInfoAMDX es
-> (Ptr (ExecutionGraphPipelineCreateInfoAMDX es) -> IO b) -> IO b
withCStruct ExecutionGraphPipelineCreateInfoAMDX es
x Ptr (ExecutionGraphPipelineCreateInfoAMDX es) -> IO b
f = Int
-> (Ptr (ExecutionGraphPipelineCreateInfoAMDX es) -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
64 ((Ptr (ExecutionGraphPipelineCreateInfoAMDX es) -> IO b) -> IO b)
-> (Ptr (ExecutionGraphPipelineCreateInfoAMDX es) -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p -> Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
-> ExecutionGraphPipelineCreateInfoAMDX es -> IO b -> IO b
forall b.
Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
-> ExecutionGraphPipelineCreateInfoAMDX es -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p ExecutionGraphPipelineCreateInfoAMDX es
x (Ptr (ExecutionGraphPipelineCreateInfoAMDX es) -> IO b
f Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p)
pokeCStruct :: forall b.
Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
-> ExecutionGraphPipelineCreateInfoAMDX es -> IO b -> IO b
pokeCStruct Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p ExecutionGraphPipelineCreateInfoAMDX{Int32
Maybe PipelineLibraryCreateInfoKHR
"nodeIndex" ::: Word32
Vector (SomeStruct PipelineShaderStageCreateInfo)
PipelineCreateFlags
"executionGraph" ::: Pipeline
PipelineLayout
Chain es
$sel:next:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es -> Chain es
$sel:flags:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es -> PipelineCreateFlags
$sel:stageCount:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es -> "nodeIndex" ::: Word32
$sel:stages:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es
-> Vector (SomeStruct PipelineShaderStageCreateInfo)
$sel:libraryInfo:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es
-> Maybe PipelineLibraryCreateInfoKHR
$sel:layout:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es -> PipelineLayout
$sel:basePipelineHandle:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es
-> "executionGraph" ::: Pipeline
$sel:basePipelineIndex:ExecutionGraphPipelineCreateInfoAMDX :: forall (es :: [*]).
ExecutionGraphPipelineCreateInfoAMDX es -> Int32
next :: Chain es
flags :: PipelineCreateFlags
stageCount :: "nodeIndex" ::: Word32
stages :: Vector (SomeStruct PipelineShaderStageCreateInfo)
libraryInfo :: Maybe PipelineLibraryCreateInfoKHR
layout :: PipelineLayout
basePipelineHandle :: "executionGraph" ::: Pipeline
basePipelineIndex :: Int32
..} IO b
f = ContT b IO b -> IO b
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT b IO b -> IO b) -> ContT b IO b -> IO b
forall a b. (a -> b) -> a -> b
$ do
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX)
Ptr ()
pNext'' <- (Ptr (Chain es) -> Ptr ())
-> ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ())
forall a b. (a -> b) -> ContT b IO a -> ContT b IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Ptr (Chain es) -> Ptr ()
forall a b. Ptr a -> Ptr b
castPtr (ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ()))
-> (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr (Chain es)))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr (Chain es))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr ()))
-> ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr ())
forall a b. (a -> b) -> a -> b
$ Chain es -> (Ptr (Chain es) -> IO b) -> IO b
forall (es :: [*]) a.
PokeChain es =>
Chain es -> (Ptr (Chain es) -> IO a) -> IO a
forall a. Chain es -> (Ptr (Chain es) -> IO a) -> IO a
withChain (Chain es
next)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) Ptr ()
pNext''
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr PipelineCreateFlags -> PipelineCreateFlags -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
-> Int -> Ptr PipelineCreateFlags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr PipelineCreateFlags)) (PipelineCreateFlags
flags)
let pStagesLength :: Int
pStagesLength = Vector (SomeStruct PipelineShaderStageCreateInfo) -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector (SomeStruct PipelineShaderStageCreateInfo) -> Int)
-> Vector (SomeStruct PipelineShaderStageCreateInfo) -> Int
forall a b. (a -> b) -> a -> b
$ (Vector (SomeStruct PipelineShaderStageCreateInfo)
stages)
"nodeIndex" ::: Word32
stageCount'' <- IO ("nodeIndex" ::: Word32) -> ContT b IO ("nodeIndex" ::: Word32)
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO ("nodeIndex" ::: Word32)
-> ContT b IO ("nodeIndex" ::: Word32))
-> IO ("nodeIndex" ::: Word32)
-> ContT b IO ("nodeIndex" ::: Word32)
forall a b. (a -> b) -> a -> b
$ if ("nodeIndex" ::: Word32
stageCount) ("nodeIndex" ::: Word32) -> ("nodeIndex" ::: Word32) -> Bool
forall a. Eq a => a -> a -> Bool
== "nodeIndex" ::: Word32
0
then ("nodeIndex" ::: Word32) -> IO ("nodeIndex" ::: Word32)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (("nodeIndex" ::: Word32) -> IO ("nodeIndex" ::: Word32))
-> ("nodeIndex" ::: Word32) -> IO ("nodeIndex" ::: Word32)
forall a b. (a -> b) -> a -> b
$ Int -> "nodeIndex" ::: Word32
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
pStagesLength
else do
Bool -> IO () -> IO ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless (Int -> "nodeIndex" ::: Word32
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
pStagesLength ("nodeIndex" ::: Word32) -> ("nodeIndex" ::: Word32) -> Bool
forall a. Eq a => a -> a -> Bool
== ("nodeIndex" ::: Word32
stageCount) Bool -> Bool -> Bool
|| Int
pStagesLength Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== Int
0) (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
"pStages must be empty or have 'stageCount' elements" Maybe CInt
forall a. Maybe a
Nothing Maybe String
forall a. Maybe a
Nothing
("nodeIndex" ::: Word32) -> IO ("nodeIndex" ::: Word32)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ("nodeIndex" ::: Word32
stageCount)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr ("nodeIndex" ::: Word32) -> ("nodeIndex" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
-> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32)) ("nodeIndex" ::: Word32
stageCount'')
Ptr (PipelineShaderStageCreateInfo Any)
pStages'' <- if Vector (SomeStruct PipelineShaderStageCreateInfo) -> Bool
forall a. Vector a -> Bool
Data.Vector.null (Vector (SomeStruct PipelineShaderStageCreateInfo)
stages)
then Ptr (PipelineShaderStageCreateInfo Any)
-> ContT b IO (Ptr (PipelineShaderStageCreateInfo Any))
forall a. a -> ContT b IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr (PipelineShaderStageCreateInfo Any)
forall a. Ptr a
nullPtr
else do
Ptr (PipelineShaderStageCreateInfo Any)
pPStages <- ((Ptr (PipelineShaderStageCreateInfo Any) -> IO b) -> IO b)
-> ContT b IO (Ptr (PipelineShaderStageCreateInfo Any))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (PipelineShaderStageCreateInfo Any) -> IO b) -> IO b)
-> ContT b IO (Ptr (PipelineShaderStageCreateInfo Any)))
-> ((Ptr (PipelineShaderStageCreateInfo Any) -> IO b) -> IO b)
-> ContT b IO (Ptr (PipelineShaderStageCreateInfo Any))
forall a b. (a -> b) -> a -> b
$ forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes @(PipelineShaderStageCreateInfo _) (((Vector (SomeStruct PipelineShaderStageCreateInfo) -> Int
forall a. Vector a -> Int
Data.Vector.length (Vector (SomeStruct PipelineShaderStageCreateInfo)
stages))) Int -> Int -> Int
forall a. Num a => a -> a -> a
* Int
48)
(Int -> SomeStruct PipelineShaderStageCreateInfo -> ContT b IO ())
-> Vector (SomeStruct PipelineShaderStageCreateInfo)
-> ContT b IO ()
forall (m :: * -> *) a b.
Monad m =>
(Int -> a -> m b) -> Vector a -> m ()
Data.Vector.imapM_ (\Int
i SomeStruct PipelineShaderStageCreateInfo
e -> ((() -> IO b) -> IO b) -> ContT b IO ()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((() -> IO b) -> IO b) -> ContT b IO ())
-> ((() -> IO b) -> IO b) -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (SomeStruct PipelineShaderStageCreateInfo)
-> SomeStruct PipelineShaderStageCreateInfo -> IO b -> IO b
forall (a :: [*] -> *) b.
(forall (es :: [*]).
(Extendss a es, PokeChain es) =>
ToCStruct (a es)) =>
Ptr (SomeStruct a) -> SomeStruct a -> IO b -> IO b
pokeSomeCStruct (Ptr (PipelineShaderStageCreateInfo Any)
-> Ptr (SomeStruct PipelineShaderStageCreateInfo)
forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions (Ptr (PipelineShaderStageCreateInfo Any)
pPStages Ptr (PipelineShaderStageCreateInfo Any)
-> Int -> Ptr (PipelineShaderStageCreateInfo w)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` (Int
48 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr (PipelineShaderStageCreateInfo _))) (SomeStruct PipelineShaderStageCreateInfo
e) (IO b -> IO b) -> ((() -> IO b) -> IO b) -> (() -> IO b) -> IO b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((() -> IO b) -> () -> IO b
forall a b. (a -> b) -> a -> b
$ ())) ((Vector (SomeStruct PipelineShaderStageCreateInfo)
stages))
Ptr (PipelineShaderStageCreateInfo Any)
-> ContT b IO (Ptr (PipelineShaderStageCreateInfo Any))
forall a. a -> ContT b IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Ptr (PipelineShaderStageCreateInfo Any)
-> ContT b IO (Ptr (PipelineShaderStageCreateInfo Any)))
-> Ptr (PipelineShaderStageCreateInfo Any)
-> ContT b IO (Ptr (PipelineShaderStageCreateInfo Any))
forall a b. (a -> b) -> a -> b
$ Ptr (PipelineShaderStageCreateInfo Any)
pPStages
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr (PipelineShaderStageCreateInfo Any))
-> Ptr (PipelineShaderStageCreateInfo Any) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
-> Int -> Ptr (Ptr (PipelineShaderStageCreateInfo w))
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr (Ptr (PipelineShaderStageCreateInfo _)))) Ptr (PipelineShaderStageCreateInfo Any)
pStages''
Ptr PipelineLibraryCreateInfoKHR
pLibraryInfo'' <- case (Maybe PipelineLibraryCreateInfoKHR
libraryInfo) of
Maybe PipelineLibraryCreateInfoKHR
Nothing -> Ptr PipelineLibraryCreateInfoKHR
-> ContT b IO (Ptr PipelineLibraryCreateInfoKHR)
forall a. a -> ContT b IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr PipelineLibraryCreateInfoKHR
forall a. Ptr a
nullPtr
Just PipelineLibraryCreateInfoKHR
j -> ((Ptr PipelineLibraryCreateInfoKHR -> IO b) -> IO b)
-> ContT b IO (Ptr PipelineLibraryCreateInfoKHR)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr PipelineLibraryCreateInfoKHR -> IO b) -> IO b)
-> ContT b IO (Ptr PipelineLibraryCreateInfoKHR))
-> ((Ptr PipelineLibraryCreateInfoKHR -> IO b) -> IO b)
-> ContT b IO (Ptr PipelineLibraryCreateInfoKHR)
forall a b. (a -> b) -> a -> b
$ PipelineLibraryCreateInfoKHR
-> (Ptr PipelineLibraryCreateInfoKHR -> IO b) -> IO b
forall a b. ToCStruct a => a -> (Ptr a -> IO b) -> IO b
forall b.
PipelineLibraryCreateInfoKHR
-> (Ptr PipelineLibraryCreateInfoKHR -> IO b) -> IO b
withCStruct (PipelineLibraryCreateInfoKHR
j)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr PipelineLibraryCreateInfoKHR)
-> Ptr PipelineLibraryCreateInfoKHR -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
-> Int -> Ptr (Ptr PipelineLibraryCreateInfoKHR)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr (Ptr PipelineLibraryCreateInfoKHR))) Ptr PipelineLibraryCreateInfoKHR
pLibraryInfo''
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr PipelineLayout -> PipelineLayout -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
-> Int -> Ptr PipelineLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr PipelineLayout)) (PipelineLayout
layout)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr ("executionGraph" ::: Pipeline)
-> ("executionGraph" ::: Pipeline) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
-> Int -> Ptr ("executionGraph" ::: Pipeline)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr Pipeline)) ("executionGraph" ::: Pipeline
basePipelineHandle)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr Int32 -> Int32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p Ptr (ExecutionGraphPipelineCreateInfoAMDX es) -> Int -> Ptr Int32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr Int32)) (Int32
basePipelineIndex)
IO b -> ContT b IO b
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
64
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr (ExecutionGraphPipelineCreateInfoAMDX es) -> IO b -> IO b
pokeZeroCStruct Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p IO b
f = ContT b IO b -> IO b
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT b IO b -> IO b) -> ContT b IO b -> IO b
forall a b. (a -> b) -> a -> b
$ do
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX)
Ptr ()
pNext' <- (Ptr (Chain es) -> Ptr ())
-> ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ())
forall a b. (a -> b) -> ContT b IO a -> ContT b IO b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Ptr (Chain es) -> Ptr ()
forall a b. Ptr a -> Ptr b
castPtr (ContT b IO (Ptr (Chain es)) -> ContT b IO (Ptr ()))
-> (((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr (Chain es)))
-> ((Ptr (Chain es) -> IO b) -> IO b)
-> ContT b IO (Ptr ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr (Chain es))
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr ()))
-> ((Ptr (Chain es) -> IO b) -> IO b) -> ContT b IO (Ptr ())
forall a b. (a -> b) -> a -> b
$ forall (es :: [*]) a.
PokeChain es =>
(Ptr (Chain es) -> IO a) -> IO a
withZeroChain @es
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) Ptr ()
pNext'
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr PipelineLayout -> PipelineLayout -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
-> Int -> Ptr PipelineLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr PipelineLayout)) (PipelineLayout
forall a. Zero a => a
zero)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr Int32 -> Int32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p Ptr (ExecutionGraphPipelineCreateInfoAMDX es) -> Int -> Ptr Int32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr Int32)) (Int32
forall a. Zero a => a
zero)
IO b -> ContT b IO b
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
instance ( Extendss ExecutionGraphPipelineCreateInfoAMDX es
, PeekChain es ) => FromCStruct (ExecutionGraphPipelineCreateInfoAMDX es) where
peekCStruct :: Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
-> IO (ExecutionGraphPipelineCreateInfoAMDX es)
peekCStruct Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p = do
Ptr ()
pNext <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr ()) ((Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ())))
Chain es
next <- Ptr (Chain es) -> IO (Chain es)
forall (es :: [*]). PeekChain es => Ptr (Chain es) -> IO (Chain es)
peekChain (Ptr () -> Ptr (Chain es)
forall a b. Ptr a -> Ptr b
castPtr Ptr ()
pNext)
PipelineCreateFlags
flags <- forall a. Storable a => Ptr a -> IO a
peek @PipelineCreateFlags ((Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
-> Int -> Ptr PipelineCreateFlags
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr PipelineCreateFlags))
"nodeIndex" ::: Word32
stageCount <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
-> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Word32))
Ptr (PipelineShaderStageCreateInfo Any)
pStages <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr (PipelineShaderStageCreateInfo _)) ((Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
-> Int -> Ptr (Ptr (PipelineShaderStageCreateInfo w))
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr (Ptr (PipelineShaderStageCreateInfo _))))
let pStagesLength :: Int
pStagesLength = if Ptr (PipelineShaderStageCreateInfo Any)
pStages Ptr (PipelineShaderStageCreateInfo Any)
-> Ptr (PipelineShaderStageCreateInfo Any) -> Bool
forall a. Eq a => a -> a -> Bool
== Ptr (PipelineShaderStageCreateInfo Any)
forall a. Ptr a
nullPtr then Int
0 else (("nodeIndex" ::: Word32) -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral "nodeIndex" ::: Word32
stageCount)
Vector (SomeStruct PipelineShaderStageCreateInfo)
pStages' <- Int
-> (Int -> IO (SomeStruct PipelineShaderStageCreateInfo))
-> IO (Vector (SomeStruct PipelineShaderStageCreateInfo))
forall (m :: * -> *) a.
Monad m =>
Int -> (Int -> m a) -> m (Vector a)
generateM Int
pStagesLength (\Int
i -> Ptr (SomeStruct PipelineShaderStageCreateInfo)
-> IO (SomeStruct PipelineShaderStageCreateInfo)
forall (a :: [*] -> *).
(Extensible a,
forall (es :: [*]).
(Extendss a es, PeekChain es) =>
FromCStruct (a es)) =>
Ptr (SomeStruct a) -> IO (SomeStruct a)
peekSomeCStruct (Ptr (PipelineShaderStageCreateInfo Any)
-> Ptr (SomeStruct PipelineShaderStageCreateInfo)
forall (a :: [*] -> *) (es :: [*]).
Ptr (a es) -> Ptr (SomeStruct a)
forgetExtensions ((Ptr (PipelineShaderStageCreateInfo Any)
pStages Ptr (PipelineShaderStageCreateInfo Any)
-> Int -> Ptr (PipelineShaderStageCreateInfo Any)
forall a. Ptr a -> Int -> Ptr a
`advancePtrBytes` (Int
48 Int -> Int -> Int
forall a. Num a => a -> a -> a
* (Int
i)) :: Ptr (PipelineShaderStageCreateInfo _)))))
Ptr PipelineLibraryCreateInfoKHR
pLibraryInfo <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr PipelineLibraryCreateInfoKHR) ((Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
-> Int -> Ptr (Ptr PipelineLibraryCreateInfoKHR)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr (Ptr PipelineLibraryCreateInfoKHR)))
Maybe PipelineLibraryCreateInfoKHR
pLibraryInfo' <- (Ptr PipelineLibraryCreateInfoKHR
-> IO PipelineLibraryCreateInfoKHR)
-> Ptr PipelineLibraryCreateInfoKHR
-> IO (Maybe PipelineLibraryCreateInfoKHR)
forall a b. (Ptr a -> IO b) -> Ptr a -> IO (Maybe b)
maybePeek (\Ptr PipelineLibraryCreateInfoKHR
j -> forall a. FromCStruct a => Ptr a -> IO a
peekCStruct @PipelineLibraryCreateInfoKHR (Ptr PipelineLibraryCreateInfoKHR
j)) Ptr PipelineLibraryCreateInfoKHR
pLibraryInfo
PipelineLayout
layout <- forall a. Storable a => Ptr a -> IO a
peek @PipelineLayout ((Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
-> Int -> Ptr PipelineLayout
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr PipelineLayout))
"executionGraph" ::: Pipeline
basePipelineHandle <- forall a. Storable a => Ptr a -> IO a
peek @Pipeline ((Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
-> Int -> Ptr ("executionGraph" ::: Pipeline)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr Pipeline))
Int32
basePipelineIndex <- forall a. Storable a => Ptr a -> IO a
peek @Int32 ((Ptr (ExecutionGraphPipelineCreateInfoAMDX es)
p Ptr (ExecutionGraphPipelineCreateInfoAMDX es) -> Int -> Ptr Int32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr Int32))
ExecutionGraphPipelineCreateInfoAMDX es
-> IO (ExecutionGraphPipelineCreateInfoAMDX es)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (ExecutionGraphPipelineCreateInfoAMDX es
-> IO (ExecutionGraphPipelineCreateInfoAMDX es))
-> ExecutionGraphPipelineCreateInfoAMDX es
-> IO (ExecutionGraphPipelineCreateInfoAMDX es)
forall a b. (a -> b) -> a -> b
$ Chain es
-> PipelineCreateFlags
-> ("nodeIndex" ::: Word32)
-> Vector (SomeStruct PipelineShaderStageCreateInfo)
-> Maybe PipelineLibraryCreateInfoKHR
-> PipelineLayout
-> ("executionGraph" ::: Pipeline)
-> Int32
-> ExecutionGraphPipelineCreateInfoAMDX es
forall (es :: [*]).
Chain es
-> PipelineCreateFlags
-> ("nodeIndex" ::: Word32)
-> Vector (SomeStruct PipelineShaderStageCreateInfo)
-> Maybe PipelineLibraryCreateInfoKHR
-> PipelineLayout
-> ("executionGraph" ::: Pipeline)
-> Int32
-> ExecutionGraphPipelineCreateInfoAMDX es
ExecutionGraphPipelineCreateInfoAMDX
Chain es
next
PipelineCreateFlags
flags
"nodeIndex" ::: Word32
stageCount
Vector (SomeStruct PipelineShaderStageCreateInfo)
pStages'
Maybe PipelineLibraryCreateInfoKHR
pLibraryInfo'
PipelineLayout
layout
"executionGraph" ::: Pipeline
basePipelineHandle
Int32
basePipelineIndex
instance es ~ '[] => Zero (ExecutionGraphPipelineCreateInfoAMDX es) where
zero :: ExecutionGraphPipelineCreateInfoAMDX es
zero = Chain es
-> PipelineCreateFlags
-> ("nodeIndex" ::: Word32)
-> Vector (SomeStruct PipelineShaderStageCreateInfo)
-> Maybe PipelineLibraryCreateInfoKHR
-> PipelineLayout
-> ("executionGraph" ::: Pipeline)
-> Int32
-> ExecutionGraphPipelineCreateInfoAMDX es
forall (es :: [*]).
Chain es
-> PipelineCreateFlags
-> ("nodeIndex" ::: Word32)
-> Vector (SomeStruct PipelineShaderStageCreateInfo)
-> Maybe PipelineLibraryCreateInfoKHR
-> PipelineLayout
-> ("executionGraph" ::: Pipeline)
-> Int32
-> ExecutionGraphPipelineCreateInfoAMDX es
ExecutionGraphPipelineCreateInfoAMDX
()
PipelineCreateFlags
forall a. Zero a => a
zero
"nodeIndex" ::: Word32
forall a. Zero a => a
zero
Vector (SomeStruct PipelineShaderStageCreateInfo)
forall a. Monoid a => a
mempty
Maybe PipelineLibraryCreateInfoKHR
forall a. Maybe a
Nothing
PipelineLayout
forall a. Zero a => a
zero
"executionGraph" ::: Pipeline
forall a. Zero a => a
zero
Int32
forall a. Zero a => a
zero
data PipelineShaderStageNodeCreateInfoAMDX = PipelineShaderStageNodeCreateInfoAMDX
{
("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> Maybe ByteString
name :: Maybe ByteString
,
("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> "nodeIndex" ::: Word32
index :: Word32
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PipelineShaderStageNodeCreateInfoAMDX)
#endif
deriving instance Show PipelineShaderStageNodeCreateInfoAMDX
instance ToCStruct PipelineShaderStageNodeCreateInfoAMDX where
withCStruct :: forall b.
("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> (Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> IO b)
-> IO b
withCStruct "nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX
x Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX) -> IO b
f = Int
-> (Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
32 ((Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> IO b)
-> IO b)
-> (Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
p -> Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> IO b
-> IO b
forall b.
Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> IO b
-> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
p "nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX
x (Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX) -> IO b
f Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
p)
pokeCStruct :: forall b.
Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> IO b
-> IO b
pokeCStruct Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
p PipelineShaderStageNodeCreateInfoAMDX{Maybe ByteString
"nodeIndex" ::: Word32
$sel:name:PipelineShaderStageNodeCreateInfoAMDX :: ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> Maybe ByteString
$sel:index:PipelineShaderStageNodeCreateInfoAMDX :: ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> "nodeIndex" ::: Word32
name :: Maybe ByteString
index :: "nodeIndex" ::: Word32
..} IO b
f = ContT b IO b -> IO b
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT b IO b -> IO b) -> ContT b IO b -> IO b
forall a b. (a -> b) -> a -> b
$ do
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
p Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
p Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr CChar
pName'' <- case (Maybe ByteString
name) of
Maybe ByteString
Nothing -> Ptr CChar -> ContT b IO (Ptr CChar)
forall a. a -> ContT b IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Ptr CChar
forall a. Ptr a
nullPtr
Just ByteString
j -> ((Ptr CChar -> IO b) -> IO b) -> ContT b IO (Ptr CChar)
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((Ptr CChar -> IO b) -> IO b) -> ContT b IO (Ptr CChar))
-> ((Ptr CChar -> IO b) -> IO b) -> ContT b IO (Ptr CChar)
forall a b. (a -> b) -> a -> b
$ ByteString -> (Ptr CChar -> IO b) -> IO b
forall a. ByteString -> (Ptr CChar -> IO a) -> IO a
useAsCString (ByteString
j)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr CChar) -> Ptr CChar -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
p Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> Int -> Ptr (Ptr CChar)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr (Ptr CChar))) Ptr CChar
pName''
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr ("nodeIndex" ::: Word32) -> ("nodeIndex" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
p Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32)) ("nodeIndex" ::: Word32
index)
IO b -> ContT b IO b
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
32
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> IO b -> IO b
pokeZeroCStruct Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
p Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
p Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr ("nodeIndex" ::: Word32) -> ("nodeIndex" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
p Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32)) ("nodeIndex" ::: Word32
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct PipelineShaderStageNodeCreateInfoAMDX where
peekCStruct :: Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> IO ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
peekCStruct Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
p = do
Ptr CChar
pName <- forall a. Storable a => Ptr a -> IO a
peek @(Ptr CChar) ((Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
p Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> Int -> Ptr (Ptr CChar)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr (Ptr CChar)))
Maybe ByteString
pName' <- (Ptr CChar -> IO ByteString) -> Ptr CChar -> IO (Maybe ByteString)
forall a b. (Ptr a -> IO b) -> Ptr a -> IO (Maybe b)
maybePeek (\Ptr CChar
j -> Ptr CChar -> IO ByteString
packCString (Ptr CChar
j)) Ptr CChar
pName
"nodeIndex" ::: Word32
index <- forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
p Ptr ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Word32))
("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> IO ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> IO ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX))
-> ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
-> IO ("nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX)
forall a b. (a -> b) -> a -> b
$ Maybe ByteString
-> ("nodeIndex" ::: Word32)
-> "nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX
PipelineShaderStageNodeCreateInfoAMDX
Maybe ByteString
pName' "nodeIndex" ::: Word32
index
instance Zero PipelineShaderStageNodeCreateInfoAMDX where
zero :: "nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX
zero = Maybe ByteString
-> ("nodeIndex" ::: Word32)
-> "nodeInfo" ::: PipelineShaderStageNodeCreateInfoAMDX
PipelineShaderStageNodeCreateInfoAMDX
Maybe ByteString
forall a. Maybe a
Nothing
"nodeIndex" ::: Word32
forall a. Zero a => a
zero
data ExecutionGraphPipelineScratchSizeAMDX = ExecutionGraphPipelineScratchSizeAMDX
{
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) -> Flags64
size :: DeviceSize }
deriving (Typeable, ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) -> Bool
(("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) -> Bool)
-> (("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) -> Bool)
-> Eq ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) -> Bool
== :: ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) -> Bool
$c/= :: ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) -> Bool
/= :: ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (ExecutionGraphPipelineScratchSizeAMDX)
#endif
deriving instance Show ExecutionGraphPipelineScratchSizeAMDX
instance ToCStruct ExecutionGraphPipelineScratchSizeAMDX where
withCStruct :: forall b.
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> (Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO b)
-> IO b
withCStruct "sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX
x Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) -> IO b
f = Int
-> (Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO b)
-> IO b)
-> (Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
p -> Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO b
-> IO b
forall b.
Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO b
-> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
p "sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX
x (Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) -> IO b
f Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
p)
pokeCStruct :: forall b.
Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO b
-> IO b
pokeCStruct Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
p ExecutionGraphPipelineScratchSizeAMDX{Flags64
$sel:size:ExecutionGraphPipelineScratchSizeAMDX :: ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) -> Flags64
size :: Flags64
..} IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
p Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
p Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Flags64 -> Flags64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
p Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> Int -> Ptr Flags64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize)) (Flags64
size)
IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b.
Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO b -> IO b
pokeZeroCStruct Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
p IO b
f = do
Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
p Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX)
Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
p Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
Ptr Flags64 -> Flags64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
p Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> Int -> Ptr Flags64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize)) (Flags64
forall a. Zero a => a
zero)
IO b
f
instance FromCStruct ExecutionGraphPipelineScratchSizeAMDX where
peekCStruct :: Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
peekCStruct Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
p = do
Flags64
size <- forall a. Storable a => Ptr a -> IO a
peek @DeviceSize ((Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
p Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> Int -> Ptr Flags64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr DeviceSize))
("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX))
-> ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
forall a b. (a -> b) -> a -> b
$ Flags64 -> "sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX
ExecutionGraphPipelineScratchSizeAMDX
Flags64
size
instance Storable ExecutionGraphPipelineScratchSizeAMDX where
sizeOf :: ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) -> Int
sizeOf ~"sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX
_ = Int
24
alignment :: ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) -> Int
alignment ~"sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX
_ = Int
8
peek :: Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
peek = Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
poke :: Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX) -> IO ()
poke Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
ptr "sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX
poked = Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO ()
-> IO ()
forall b.
Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
-> IO b
-> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr ("sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX)
ptr "sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX
poked (() -> IO ()
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())
instance Zero ExecutionGraphPipelineScratchSizeAMDX where
zero :: "sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX
zero = Flags64 -> "sizeInfo" ::: ExecutionGraphPipelineScratchSizeAMDX
ExecutionGraphPipelineScratchSizeAMDX
Flags64
forall a. Zero a => a
zero
data DispatchGraphInfoAMDX = DispatchGraphInfoAMDX
{
DispatchGraphInfoAMDX -> "nodeIndex" ::: Word32
nodeIndex :: Word32
,
DispatchGraphInfoAMDX -> "nodeIndex" ::: Word32
payloadCount :: Word32
,
DispatchGraphInfoAMDX -> DeviceOrHostAddressConstAMDX
payloads :: DeviceOrHostAddressConstAMDX
,
DispatchGraphInfoAMDX -> Flags64
payloadStride :: Word64
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DispatchGraphInfoAMDX)
#endif
deriving instance Show DispatchGraphInfoAMDX
instance ToCStruct DispatchGraphInfoAMDX where
withCStruct :: forall b.
DispatchGraphInfoAMDX
-> (Ptr DispatchGraphInfoAMDX -> IO b) -> IO b
withCStruct DispatchGraphInfoAMDX
x Ptr DispatchGraphInfoAMDX -> IO b
f = Int -> (Ptr DispatchGraphInfoAMDX -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr DispatchGraphInfoAMDX -> IO b) -> IO b)
-> (Ptr DispatchGraphInfoAMDX -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr DispatchGraphInfoAMDX
p -> Ptr DispatchGraphInfoAMDX -> DispatchGraphInfoAMDX -> IO b -> IO b
forall b.
Ptr DispatchGraphInfoAMDX -> DispatchGraphInfoAMDX -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DispatchGraphInfoAMDX
p DispatchGraphInfoAMDX
x (Ptr DispatchGraphInfoAMDX -> IO b
f Ptr DispatchGraphInfoAMDX
p)
pokeCStruct :: forall b.
Ptr DispatchGraphInfoAMDX -> DispatchGraphInfoAMDX -> IO b -> IO b
pokeCStruct Ptr DispatchGraphInfoAMDX
p DispatchGraphInfoAMDX{"nodeIndex" ::: Word32
Flags64
DeviceOrHostAddressConstAMDX
$sel:nodeIndex:DispatchGraphInfoAMDX :: DispatchGraphInfoAMDX -> "nodeIndex" ::: Word32
$sel:payloadCount:DispatchGraphInfoAMDX :: DispatchGraphInfoAMDX -> "nodeIndex" ::: Word32
$sel:payloads:DispatchGraphInfoAMDX :: DispatchGraphInfoAMDX -> DeviceOrHostAddressConstAMDX
$sel:payloadStride:DispatchGraphInfoAMDX :: DispatchGraphInfoAMDX -> Flags64
nodeIndex :: "nodeIndex" ::: Word32
payloadCount :: "nodeIndex" ::: Word32
payloads :: DeviceOrHostAddressConstAMDX
payloadStride :: Flags64
..} IO b
f = ContT b IO b -> IO b
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT b IO b -> IO b) -> ContT b IO b -> IO b
forall a b. (a -> b) -> a -> b
$ do
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr ("nodeIndex" ::: Word32) -> ("nodeIndex" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DispatchGraphInfoAMDX
p Ptr DispatchGraphInfoAMDX -> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) ("nodeIndex" ::: Word32
nodeIndex)
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr ("nodeIndex" ::: Word32) -> ("nodeIndex" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DispatchGraphInfoAMDX
p Ptr DispatchGraphInfoAMDX -> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4 :: Ptr Word32)) ("nodeIndex" ::: Word32
payloadCount)
((() -> IO b) -> IO b) -> ContT b IO ()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((() -> IO b) -> IO b) -> ContT b IO ())
-> ((() -> IO b) -> IO b) -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr DeviceOrHostAddressConstAMDX
-> DeviceOrHostAddressConstAMDX -> IO b -> IO b
forall b.
Ptr DeviceOrHostAddressConstAMDX
-> DeviceOrHostAddressConstAMDX -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ((Ptr DispatchGraphInfoAMDX
p Ptr DispatchGraphInfoAMDX
-> Int -> Ptr DeviceOrHostAddressConstAMDX
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr DeviceOrHostAddressConstAMDX)) (DeviceOrHostAddressConstAMDX
payloads) (IO b -> IO b) -> ((() -> IO b) -> IO b) -> (() -> IO b) -> IO b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((() -> IO b) -> () -> IO b
forall a b. (a -> b) -> a -> b
$ ())
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr Flags64 -> Flags64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DispatchGraphInfoAMDX
p Ptr DispatchGraphInfoAMDX -> Int -> Ptr Flags64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word64)) (Flags64
payloadStride)
IO b -> ContT b IO b
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr DispatchGraphInfoAMDX -> IO b -> IO b
pokeZeroCStruct Ptr DispatchGraphInfoAMDX
p IO b
f = ContT b IO b -> IO b
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT b IO b -> IO b) -> ContT b IO b -> IO b
forall a b. (a -> b) -> a -> b
$ do
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr ("nodeIndex" ::: Word32) -> ("nodeIndex" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DispatchGraphInfoAMDX
p Ptr DispatchGraphInfoAMDX -> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) ("nodeIndex" ::: Word32
forall a. Zero a => a
zero)
((() -> IO b) -> IO b) -> ContT b IO ()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((() -> IO b) -> IO b) -> ContT b IO ())
-> ((() -> IO b) -> IO b) -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr DeviceOrHostAddressConstAMDX
-> DeviceOrHostAddressConstAMDX -> IO b -> IO b
forall b.
Ptr DeviceOrHostAddressConstAMDX
-> DeviceOrHostAddressConstAMDX -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ((Ptr DispatchGraphInfoAMDX
p Ptr DispatchGraphInfoAMDX
-> Int -> Ptr DeviceOrHostAddressConstAMDX
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr DeviceOrHostAddressConstAMDX)) (DeviceOrHostAddressConstAMDX
forall a. Zero a => a
zero) (IO b -> IO b) -> ((() -> IO b) -> IO b) -> (() -> IO b) -> IO b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((() -> IO b) -> () -> IO b
forall a b. (a -> b) -> a -> b
$ ())
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr Flags64 -> Flags64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DispatchGraphInfoAMDX
p Ptr DispatchGraphInfoAMDX -> Int -> Ptr Flags64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word64)) (Flags64
forall a. Zero a => a
zero)
IO b -> ContT b IO b
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
instance Zero DispatchGraphInfoAMDX where
zero :: DispatchGraphInfoAMDX
zero = ("nodeIndex" ::: Word32)
-> ("nodeIndex" ::: Word32)
-> DeviceOrHostAddressConstAMDX
-> Flags64
-> DispatchGraphInfoAMDX
DispatchGraphInfoAMDX
"nodeIndex" ::: Word32
forall a. Zero a => a
zero
"nodeIndex" ::: Word32
forall a. Zero a => a
zero
DeviceOrHostAddressConstAMDX
forall a. Zero a => a
zero
Flags64
forall a. Zero a => a
zero
data DispatchGraphCountInfoAMDX = DispatchGraphCountInfoAMDX
{
DispatchGraphCountInfoAMDX -> "nodeIndex" ::: Word32
count :: Word32
,
DispatchGraphCountInfoAMDX -> DeviceOrHostAddressConstAMDX
infos :: DeviceOrHostAddressConstAMDX
,
DispatchGraphCountInfoAMDX -> Flags64
stride :: Word64
}
deriving (Typeable)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (DispatchGraphCountInfoAMDX)
#endif
deriving instance Show DispatchGraphCountInfoAMDX
instance ToCStruct DispatchGraphCountInfoAMDX where
withCStruct :: forall b.
DispatchGraphCountInfoAMDX
-> (Ptr DispatchGraphCountInfoAMDX -> IO b) -> IO b
withCStruct DispatchGraphCountInfoAMDX
x Ptr DispatchGraphCountInfoAMDX -> IO b
f = Int -> (Ptr DispatchGraphCountInfoAMDX -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr DispatchGraphCountInfoAMDX -> IO b) -> IO b)
-> (Ptr DispatchGraphCountInfoAMDX -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr DispatchGraphCountInfoAMDX
p -> Ptr DispatchGraphCountInfoAMDX
-> DispatchGraphCountInfoAMDX -> IO b -> IO b
forall b.
Ptr DispatchGraphCountInfoAMDX
-> DispatchGraphCountInfoAMDX -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DispatchGraphCountInfoAMDX
p DispatchGraphCountInfoAMDX
x (Ptr DispatchGraphCountInfoAMDX -> IO b
f Ptr DispatchGraphCountInfoAMDX
p)
pokeCStruct :: forall b.
Ptr DispatchGraphCountInfoAMDX
-> DispatchGraphCountInfoAMDX -> IO b -> IO b
pokeCStruct Ptr DispatchGraphCountInfoAMDX
p DispatchGraphCountInfoAMDX{"nodeIndex" ::: Word32
Flags64
DeviceOrHostAddressConstAMDX
$sel:count:DispatchGraphCountInfoAMDX :: DispatchGraphCountInfoAMDX -> "nodeIndex" ::: Word32
$sel:infos:DispatchGraphCountInfoAMDX :: DispatchGraphCountInfoAMDX -> DeviceOrHostAddressConstAMDX
$sel:stride:DispatchGraphCountInfoAMDX :: DispatchGraphCountInfoAMDX -> Flags64
count :: "nodeIndex" ::: Word32
infos :: DeviceOrHostAddressConstAMDX
stride :: Flags64
..} IO b
f = ContT b IO b -> IO b
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT b IO b -> IO b) -> ContT b IO b -> IO b
forall a b. (a -> b) -> a -> b
$ do
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr ("nodeIndex" ::: Word32) -> ("nodeIndex" ::: Word32) -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DispatchGraphCountInfoAMDX
p Ptr DispatchGraphCountInfoAMDX
-> Int -> Ptr ("nodeIndex" ::: Word32)
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr Word32)) ("nodeIndex" ::: Word32
count)
((() -> IO b) -> IO b) -> ContT b IO ()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((() -> IO b) -> IO b) -> ContT b IO ())
-> ((() -> IO b) -> IO b) -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr DeviceOrHostAddressConstAMDX
-> DeviceOrHostAddressConstAMDX -> IO b -> IO b
forall b.
Ptr DeviceOrHostAddressConstAMDX
-> DeviceOrHostAddressConstAMDX -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ((Ptr DispatchGraphCountInfoAMDX
p Ptr DispatchGraphCountInfoAMDX
-> Int -> Ptr DeviceOrHostAddressConstAMDX
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr DeviceOrHostAddressConstAMDX)) (DeviceOrHostAddressConstAMDX
infos) (IO b -> IO b) -> ((() -> IO b) -> IO b) -> (() -> IO b) -> IO b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((() -> IO b) -> () -> IO b
forall a b. (a -> b) -> a -> b
$ ())
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr Flags64 -> Flags64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DispatchGraphCountInfoAMDX
p Ptr DispatchGraphCountInfoAMDX -> Int -> Ptr Flags64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word64)) (Flags64
stride)
IO b -> ContT b IO b
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
cStructSize :: Int
cStructSize = Int
24
cStructAlignment :: Int
cStructAlignment = Int
8
pokeZeroCStruct :: forall b. Ptr DispatchGraphCountInfoAMDX -> IO b -> IO b
pokeZeroCStruct Ptr DispatchGraphCountInfoAMDX
p IO b
f = ContT b IO b -> IO b
forall (m :: * -> *) r. Monad m => ContT r m r -> m r
evalContT (ContT b IO b -> IO b) -> ContT b IO b -> IO b
forall a b. (a -> b) -> a -> b
$ do
((() -> IO b) -> IO b) -> ContT b IO ()
forall {k} (r :: k) (m :: k -> *) a.
((a -> m r) -> m r) -> ContT r m a
ContT (((() -> IO b) -> IO b) -> ContT b IO ())
-> ((() -> IO b) -> IO b) -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr DeviceOrHostAddressConstAMDX
-> DeviceOrHostAddressConstAMDX -> IO b -> IO b
forall b.
Ptr DeviceOrHostAddressConstAMDX
-> DeviceOrHostAddressConstAMDX -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct ((Ptr DispatchGraphCountInfoAMDX
p Ptr DispatchGraphCountInfoAMDX
-> Int -> Ptr DeviceOrHostAddressConstAMDX
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr DeviceOrHostAddressConstAMDX)) (DeviceOrHostAddressConstAMDX
forall a. Zero a => a
zero) (IO b -> IO b) -> ((() -> IO b) -> IO b) -> (() -> IO b) -> IO b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((() -> IO b) -> () -> IO b
forall a b. (a -> b) -> a -> b
$ ())
IO () -> ContT b IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT b IO ()) -> IO () -> ContT b IO ()
forall a b. (a -> b) -> a -> b
$ Ptr Flags64 -> Flags64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr DispatchGraphCountInfoAMDX
p Ptr DispatchGraphCountInfoAMDX -> Int -> Ptr Flags64
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Word64)) (Flags64
forall a. Zero a => a
zero)
IO b -> ContT b IO b
forall (m :: * -> *) a. Monad m => m a -> ContT b m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO b -> ContT b IO b) -> IO b -> ContT b IO b
forall a b. (a -> b) -> a -> b
$ IO b
f
instance Zero DispatchGraphCountInfoAMDX where
zero :: DispatchGraphCountInfoAMDX
zero = ("nodeIndex" ::: Word32)
-> DeviceOrHostAddressConstAMDX
-> Flags64
-> DispatchGraphCountInfoAMDX
DispatchGraphCountInfoAMDX
"nodeIndex" ::: Word32
forall a. Zero a => a
zero
DeviceOrHostAddressConstAMDX
forall a. Zero a => a
zero
Flags64
forall a. Zero a => a
zero
data DeviceOrHostAddressConstAMDX
= DeviceAddressConstAMDX DeviceAddress
| HostAddressConstAMDX (Ptr ())
deriving (Int -> DeviceOrHostAddressConstAMDX -> ShowS
[DeviceOrHostAddressConstAMDX] -> ShowS
DeviceOrHostAddressConstAMDX -> String
(Int -> DeviceOrHostAddressConstAMDX -> ShowS)
-> (DeviceOrHostAddressConstAMDX -> String)
-> ([DeviceOrHostAddressConstAMDX] -> ShowS)
-> Show DeviceOrHostAddressConstAMDX
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DeviceOrHostAddressConstAMDX -> ShowS
showsPrec :: Int -> DeviceOrHostAddressConstAMDX -> ShowS
$cshow :: DeviceOrHostAddressConstAMDX -> String
show :: DeviceOrHostAddressConstAMDX -> String
$cshowList :: [DeviceOrHostAddressConstAMDX] -> ShowS
showList :: [DeviceOrHostAddressConstAMDX] -> ShowS
Show)
instance ToCStruct DeviceOrHostAddressConstAMDX where
withCStruct :: forall b.
DeviceOrHostAddressConstAMDX
-> (Ptr DeviceOrHostAddressConstAMDX -> IO b) -> IO b
withCStruct DeviceOrHostAddressConstAMDX
x Ptr DeviceOrHostAddressConstAMDX -> IO b
f = Int -> (Ptr DeviceOrHostAddressConstAMDX -> IO b) -> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
8 ((Ptr DeviceOrHostAddressConstAMDX -> IO b) -> IO b)
-> (Ptr DeviceOrHostAddressConstAMDX -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr DeviceOrHostAddressConstAMDX
p -> Ptr DeviceOrHostAddressConstAMDX
-> DeviceOrHostAddressConstAMDX -> IO b -> IO b
forall b.
Ptr DeviceOrHostAddressConstAMDX
-> DeviceOrHostAddressConstAMDX -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr DeviceOrHostAddressConstAMDX
p DeviceOrHostAddressConstAMDX
x (Ptr DeviceOrHostAddressConstAMDX -> IO b
f Ptr DeviceOrHostAddressConstAMDX
p)
pokeCStruct :: Ptr DeviceOrHostAddressConstAMDX -> DeviceOrHostAddressConstAMDX -> IO a -> IO a
pokeCStruct :: forall b.
Ptr DeviceOrHostAddressConstAMDX
-> DeviceOrHostAddressConstAMDX -> IO b -> IO b
pokeCStruct Ptr DeviceOrHostAddressConstAMDX
p = (((() -> IO a) -> IO a) -> (IO a -> () -> IO a) -> IO a -> IO a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. IO a -> () -> IO a
forall a b. a -> b -> a
const) (((() -> IO a) -> IO a) -> IO a -> IO a)
-> (DeviceOrHostAddressConstAMDX -> (() -> IO a) -> IO a)
-> DeviceOrHostAddressConstAMDX
-> IO a
-> IO a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ContT a IO () -> (() -> IO a) -> IO a
forall {k} (r :: k) (m :: k -> *) a.
ContT r m a -> (a -> m r) -> m r
runContT (ContT a IO () -> (() -> IO a) -> IO a)
-> (DeviceOrHostAddressConstAMDX -> ContT a IO ())
-> DeviceOrHostAddressConstAMDX
-> (() -> IO a)
-> IO a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
DeviceAddressConstAMDX Flags64
v -> IO () -> ContT a IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT a m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT a IO ()) -> IO () -> ContT a IO ()
forall a b. (a -> b) -> a -> b
$ Ptr Flags64 -> Flags64 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (forall a b. Ptr a -> Ptr b
castPtr @_ @DeviceAddress Ptr DeviceOrHostAddressConstAMDX
p) (Flags64
v)
HostAddressConstAMDX Ptr ()
v -> IO () -> ContT a IO ()
forall (m :: * -> *) a. Monad m => m a -> ContT a m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (IO () -> ContT a IO ()) -> IO () -> ContT a IO ()
forall a b. (a -> b) -> a -> b
$ Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke (forall a b. Ptr a -> Ptr b
castPtr @_ @(Ptr ()) Ptr DeviceOrHostAddressConstAMDX
p) (Ptr ()
v)
pokeZeroCStruct :: Ptr DeviceOrHostAddressConstAMDX -> IO b -> IO b
pokeZeroCStruct :: forall b. Ptr DeviceOrHostAddressConstAMDX -> IO b -> IO b
pokeZeroCStruct Ptr DeviceOrHostAddressConstAMDX
_ IO b
f = IO b
f
cStructSize :: Int
cStructSize = Int
8
cStructAlignment :: Int
cStructAlignment = Int
8
instance Zero DeviceOrHostAddressConstAMDX where
zero :: DeviceOrHostAddressConstAMDX
zero = Flags64 -> DeviceOrHostAddressConstAMDX
DeviceAddressConstAMDX Flags64
forall a. Zero a => a
zero
type BufferUsageFlags2KHR = BufferUsageFlagBits2KHR
newtype BufferUsageFlagBits2KHR = BufferUsageFlagBits2KHR Flags64
deriving newtype (BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Bool
(BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Bool)
-> (BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Bool)
-> Eq BufferUsageFlagBits2KHR
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Bool
== :: BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Bool
$c/= :: BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Bool
/= :: BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Bool
Eq, Eq BufferUsageFlagBits2KHR
Eq BufferUsageFlagBits2KHR =>
(BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Ordering)
-> (BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Bool)
-> (BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Bool)
-> (BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Bool)
-> (BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Bool)
-> (BufferUsageFlagBits2KHR
-> BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR)
-> (BufferUsageFlagBits2KHR
-> BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR)
-> Ord BufferUsageFlagBits2KHR
BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Bool
BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Ordering
BufferUsageFlagBits2KHR
-> BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR
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 :: BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Ordering
compare :: BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Ordering
$c< :: BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Bool
< :: BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Bool
$c<= :: BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Bool
<= :: BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Bool
$c> :: BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Bool
> :: BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Bool
$c>= :: BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Bool
>= :: BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> Bool
$cmax :: BufferUsageFlagBits2KHR
-> BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR
max :: BufferUsageFlagBits2KHR
-> BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR
$cmin :: BufferUsageFlagBits2KHR
-> BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR
min :: BufferUsageFlagBits2KHR
-> BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR
Ord, Ptr BufferUsageFlagBits2KHR -> IO BufferUsageFlagBits2KHR
Ptr BufferUsageFlagBits2KHR -> Int -> IO BufferUsageFlagBits2KHR
Ptr BufferUsageFlagBits2KHR
-> Int -> BufferUsageFlagBits2KHR -> IO ()
Ptr BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> IO ()
BufferUsageFlagBits2KHR -> Int
(BufferUsageFlagBits2KHR -> Int)
-> (BufferUsageFlagBits2KHR -> Int)
-> (Ptr BufferUsageFlagBits2KHR
-> Int -> IO BufferUsageFlagBits2KHR)
-> (Ptr BufferUsageFlagBits2KHR
-> Int -> BufferUsageFlagBits2KHR -> IO ())
-> (forall b. Ptr b -> Int -> IO BufferUsageFlagBits2KHR)
-> (forall b. Ptr b -> Int -> BufferUsageFlagBits2KHR -> IO ())
-> (Ptr BufferUsageFlagBits2KHR -> IO BufferUsageFlagBits2KHR)
-> (Ptr BufferUsageFlagBits2KHR
-> BufferUsageFlagBits2KHR -> IO ())
-> Storable BufferUsageFlagBits2KHR
forall b. Ptr b -> Int -> IO BufferUsageFlagBits2KHR
forall b. Ptr b -> Int -> BufferUsageFlagBits2KHR -> 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 :: BufferUsageFlagBits2KHR -> Int
sizeOf :: BufferUsageFlagBits2KHR -> Int
$calignment :: BufferUsageFlagBits2KHR -> Int
alignment :: BufferUsageFlagBits2KHR -> Int
$cpeekElemOff :: Ptr BufferUsageFlagBits2KHR -> Int -> IO BufferUsageFlagBits2KHR
peekElemOff :: Ptr BufferUsageFlagBits2KHR -> Int -> IO BufferUsageFlagBits2KHR
$cpokeElemOff :: Ptr BufferUsageFlagBits2KHR
-> Int -> BufferUsageFlagBits2KHR -> IO ()
pokeElemOff :: Ptr BufferUsageFlagBits2KHR
-> Int -> BufferUsageFlagBits2KHR -> IO ()
$cpeekByteOff :: forall b. Ptr b -> Int -> IO BufferUsageFlagBits2KHR
peekByteOff :: forall b. Ptr b -> Int -> IO BufferUsageFlagBits2KHR
$cpokeByteOff :: forall b. Ptr b -> Int -> BufferUsageFlagBits2KHR -> IO ()
pokeByteOff :: forall b. Ptr b -> Int -> BufferUsageFlagBits2KHR -> IO ()
$cpeek :: Ptr BufferUsageFlagBits2KHR -> IO BufferUsageFlagBits2KHR
peek :: Ptr BufferUsageFlagBits2KHR -> IO BufferUsageFlagBits2KHR
$cpoke :: Ptr BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> IO ()
poke :: Ptr BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR -> IO ()
Storable, BufferUsageFlagBits2KHR
BufferUsageFlagBits2KHR -> Zero BufferUsageFlagBits2KHR
forall a. a -> Zero a
$czero :: BufferUsageFlagBits2KHR
zero :: BufferUsageFlagBits2KHR
Zero, Eq BufferUsageFlagBits2KHR
BufferUsageFlagBits2KHR
Eq BufferUsageFlagBits2KHR =>
(BufferUsageFlagBits2KHR
-> BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR)
-> (BufferUsageFlagBits2KHR
-> BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR)
-> (BufferUsageFlagBits2KHR
-> BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR)
-> (BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR)
-> (BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR)
-> (BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR)
-> BufferUsageFlagBits2KHR
-> (Int -> BufferUsageFlagBits2KHR)
-> (BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR)
-> (BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR)
-> (BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR)
-> (BufferUsageFlagBits2KHR -> Int -> Bool)
-> (BufferUsageFlagBits2KHR -> Maybe Int)
-> (BufferUsageFlagBits2KHR -> Int)
-> (BufferUsageFlagBits2KHR -> Bool)
-> (BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR)
-> (BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR)
-> (BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR)
-> (BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR)
-> (BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR)
-> (BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR)
-> (BufferUsageFlagBits2KHR -> Int)
-> Bits BufferUsageFlagBits2KHR
Int -> BufferUsageFlagBits2KHR
BufferUsageFlagBits2KHR -> Bool
BufferUsageFlagBits2KHR -> Int
BufferUsageFlagBits2KHR -> Maybe Int
BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR
BufferUsageFlagBits2KHR -> Int -> Bool
BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR
BufferUsageFlagBits2KHR
-> BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR
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.&. :: BufferUsageFlagBits2KHR
-> BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR
.&. :: BufferUsageFlagBits2KHR
-> BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR
$c.|. :: BufferUsageFlagBits2KHR
-> BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR
.|. :: BufferUsageFlagBits2KHR
-> BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR
$cxor :: BufferUsageFlagBits2KHR
-> BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR
xor :: BufferUsageFlagBits2KHR
-> BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR
$ccomplement :: BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR
complement :: BufferUsageFlagBits2KHR -> BufferUsageFlagBits2KHR
$cshift :: BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR
shift :: BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR
$crotate :: BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR
rotate :: BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR
$czeroBits :: BufferUsageFlagBits2KHR
zeroBits :: BufferUsageFlagBits2KHR
$cbit :: Int -> BufferUsageFlagBits2KHR
bit :: Int -> BufferUsageFlagBits2KHR
$csetBit :: BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR
setBit :: BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR
$cclearBit :: BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR
clearBit :: BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR
$ccomplementBit :: BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR
complementBit :: BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR
$ctestBit :: BufferUsageFlagBits2KHR -> Int -> Bool
testBit :: BufferUsageFlagBits2KHR -> Int -> Bool
$cbitSizeMaybe :: BufferUsageFlagBits2KHR -> Maybe Int
bitSizeMaybe :: BufferUsageFlagBits2KHR -> Maybe Int
$cbitSize :: BufferUsageFlagBits2KHR -> Int
bitSize :: BufferUsageFlagBits2KHR -> Int
$cisSigned :: BufferUsageFlagBits2KHR -> Bool
isSigned :: BufferUsageFlagBits2KHR -> Bool
$cshiftL :: BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR
shiftL :: BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR
$cunsafeShiftL :: BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR
unsafeShiftL :: BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR
$cshiftR :: BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR
shiftR :: BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR
$cunsafeShiftR :: BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR
unsafeShiftR :: BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR
$crotateL :: BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR
rotateL :: BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR
$crotateR :: BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR
rotateR :: BufferUsageFlagBits2KHR -> Int -> BufferUsageFlagBits2KHR
$cpopCount :: BufferUsageFlagBits2KHR -> Int
popCount :: BufferUsageFlagBits2KHR -> Int
Bits, Bits BufferUsageFlagBits2KHR
Bits BufferUsageFlagBits2KHR =>
(BufferUsageFlagBits2KHR -> Int)
-> (BufferUsageFlagBits2KHR -> Int)
-> (BufferUsageFlagBits2KHR -> Int)
-> FiniteBits BufferUsageFlagBits2KHR
BufferUsageFlagBits2KHR -> Int
forall b.
Bits b =>
(b -> Int) -> (b -> Int) -> (b -> Int) -> FiniteBits b
$cfiniteBitSize :: BufferUsageFlagBits2KHR -> Int
finiteBitSize :: BufferUsageFlagBits2KHR -> Int
$ccountLeadingZeros :: BufferUsageFlagBits2KHR -> Int
countLeadingZeros :: BufferUsageFlagBits2KHR -> Int
$ccountTrailingZeros :: BufferUsageFlagBits2KHR -> Int
countTrailingZeros :: BufferUsageFlagBits2KHR -> Int
FiniteBits)
pattern $bBUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000001
pattern $bBUFFER_USAGE_2_TRANSFER_DST_BIT_KHR :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_TRANSFER_DST_BIT_KHR :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000002
pattern $bBUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000004
pattern $bBUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000008
pattern $bBUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000010
pattern $bBUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000020
pattern $bBUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000040
pattern $bBUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000080
pattern $bBUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000100
pattern $bBUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000001000000
pattern $bBUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000000800000
pattern $bBUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000004000000
pattern $bBUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000000400000
pattern $bBUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000000200000
pattern $bBUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000100000
pattern $bBUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000080000
pattern $bBUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000020000
pattern $bBUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000010000
pattern $bBUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000008000
pattern $bBUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000004000
pattern $bBUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000002000
pattern $bBUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000000001000
pattern $bBUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000000000800
pattern $bBUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = BufferUsageFlagBits2KHR 0x0000000000000400
pattern $bBUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT = BufferUsageFlagBits2KHR 0x0000000000000200
pattern $bBUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX :: BufferUsageFlagBits2KHR
$mBUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX :: forall {r}.
BufferUsageFlagBits2KHR -> ((# #) -> r) -> ((# #) -> r) -> r
BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = BufferUsageFlagBits2KHR 0x0000000002000000
conNameBufferUsageFlagBits2KHR :: String
conNameBufferUsageFlagBits2KHR :: String
conNameBufferUsageFlagBits2KHR = String
"BufferUsageFlagBits2KHR"
enumPrefixBufferUsageFlagBits2KHR :: String
enumPrefixBufferUsageFlagBits2KHR :: String
enumPrefixBufferUsageFlagBits2KHR = String
"BUFFER_USAGE_2_"
showTableBufferUsageFlagBits2KHR :: [(BufferUsageFlagBits2KHR, String)]
showTableBufferUsageFlagBits2KHR :: [(BufferUsageFlagBits2KHR, String)]
showTableBufferUsageFlagBits2KHR =
[
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR
, String
"TRANSFER_SRC_BIT_KHR"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR
, String
"TRANSFER_DST_BIT_KHR"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR
, String
"UNIFORM_TEXEL_BUFFER_BIT_KHR"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR
, String
"STORAGE_TEXEL_BUFFER_BIT_KHR"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR
, String
"UNIFORM_BUFFER_BIT_KHR"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR
, String
"STORAGE_BUFFER_BIT_KHR"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR
, String
"INDEX_BUFFER_BIT_KHR"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR
, String
"VERTEX_BUFFER_BIT_KHR"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR
, String
"INDIRECT_BUFFER_BIT_KHR"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT
, String
"MICROMAP_STORAGE_BIT_EXT"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT
, String
"MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT
, String
"PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT
, String
"RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT
, String
"SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR
, String
"ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR
, String
"ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR
, String
"SHADER_DEVICE_ADDRESS_BIT_KHR"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR
, String
"VIDEO_ENCODE_SRC_BIT_KHR"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR
, String
"VIDEO_ENCODE_DST_BIT_KHR"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR
, String
"VIDEO_DECODE_DST_BIT_KHR"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR
, String
"VIDEO_DECODE_SRC_BIT_KHR"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT
, String
"TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT
, String
"TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR
, String
"SHADER_BINDING_TABLE_BIT_KHR"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT
, String
"CONDITIONAL_RENDERING_BIT_EXT"
)
,
( BufferUsageFlagBits2KHR
BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX
, String
"EXECUTION_GRAPH_SCRATCH_BIT_AMDX"
)
]
instance Show BufferUsageFlagBits2KHR where
showsPrec :: Int -> BufferUsageFlagBits2KHR -> ShowS
showsPrec =
String
-> [(BufferUsageFlagBits2KHR, String)]
-> String
-> (BufferUsageFlagBits2KHR -> Flags64)
-> (Flags64 -> ShowS)
-> Int
-> BufferUsageFlagBits2KHR
-> ShowS
forall a i.
Eq a =>
String
-> [(a, String)]
-> String
-> (a -> i)
-> (i -> ShowS)
-> Int
-> a
-> ShowS
enumShowsPrec
String
enumPrefixBufferUsageFlagBits2KHR
[(BufferUsageFlagBits2KHR, String)]
showTableBufferUsageFlagBits2KHR
String
conNameBufferUsageFlagBits2KHR
(\(BufferUsageFlagBits2KHR Flags64
x) -> Flags64
x)
(\Flags64
x -> String -> ShowS
showString String
"0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Flags64 -> ShowS
forall a. Integral a => a -> ShowS
showHex Flags64
x)
instance Read BufferUsageFlagBits2KHR where
readPrec :: ReadPrec BufferUsageFlagBits2KHR
readPrec =
String
-> [(BufferUsageFlagBits2KHR, String)]
-> String
-> (Flags64 -> BufferUsageFlagBits2KHR)
-> ReadPrec BufferUsageFlagBits2KHR
forall i a.
Read i =>
String -> [(a, String)] -> String -> (i -> a) -> ReadPrec a
enumReadPrec
String
enumPrefixBufferUsageFlagBits2KHR
[(BufferUsageFlagBits2KHR, String)]
showTableBufferUsageFlagBits2KHR
String
conNameBufferUsageFlagBits2KHR
Flags64 -> BufferUsageFlagBits2KHR
BufferUsageFlagBits2KHR
type AMDX_SHADER_ENQUEUE_SPEC_VERSION = 1
pattern AMDX_SHADER_ENQUEUE_SPEC_VERSION :: forall a . Integral a => a
pattern $bAMDX_SHADER_ENQUEUE_SPEC_VERSION :: forall a. Integral a => a
$mAMDX_SHADER_ENQUEUE_SPEC_VERSION :: forall {r} {a}.
Integral a =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
AMDX_SHADER_ENQUEUE_SPEC_VERSION = 1
type AMDX_SHADER_ENQUEUE_EXTENSION_NAME = "VK_AMDX_shader_enqueue"
pattern AMDX_SHADER_ENQUEUE_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bAMDX_SHADER_ENQUEUE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
$mAMDX_SHADER_ENQUEUE_EXTENSION_NAME :: forall {r} {a}.
(Eq a, IsString a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
AMDX_SHADER_ENQUEUE_EXTENSION_NAME = "VK_AMDX_shader_enqueue"