Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- createPipelineLayout :: forall io. MonadIO io => Device -> PipelineLayoutCreateInfo -> ("allocator" ::: Maybe AllocationCallbacks) -> io PipelineLayout
- withPipelineLayout :: forall io r. MonadIO io => Device -> PipelineLayoutCreateInfo -> Maybe AllocationCallbacks -> (io PipelineLayout -> (PipelineLayout -> io ()) -> r) -> r
- destroyPipelineLayout :: forall io. MonadIO io => Device -> PipelineLayout -> ("allocator" ::: Maybe AllocationCallbacks) -> io ()
- data PushConstantRange = PushConstantRange {
- stageFlags :: ShaderStageFlags
- offset :: Word32
- size :: Word32
- data PipelineLayoutCreateInfo = PipelineLayoutCreateInfo {}
Documentation
createPipelineLayout :: forall io. MonadIO io => Device -> PipelineLayoutCreateInfo -> ("allocator" ::: Maybe AllocationCallbacks) -> io PipelineLayout Source #
vkCreatePipelineLayout - Creates a new pipeline layout object
Parameters
device
is the logical device that creates the pipeline layout.
pCreateInfo
is a pointer to aPipelineLayoutCreateInfo
structure specifying the state of the pipeline layout object.pAllocator
controls host memory allocation as described in the Memory Allocation chapter.pPipelineLayout
is a pointer to aPipelineLayout
handle in which the resulting pipeline layout object is returned.
Valid Usage (Implicit)
device
must be a validDevice
handle
pCreateInfo
must be a valid pointer to a validPipelineLayoutCreateInfo
structure- If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validAllocationCallbacks
structure pPipelineLayout
must be a valid pointer to aPipelineLayout
handle
Return Codes
See Also
AllocationCallbacks
,
Device
, PipelineLayout
,
PipelineLayoutCreateInfo
withPipelineLayout :: forall io r. MonadIO io => Device -> PipelineLayoutCreateInfo -> Maybe AllocationCallbacks -> (io PipelineLayout -> (PipelineLayout -> io ()) -> r) -> r Source #
A convenience wrapper to make a compatible pair of calls to
createPipelineLayout
and destroyPipelineLayout
To ensure that destroyPipelineLayout
is always called: pass
bracket
(or the allocate function from your
favourite resource management library) as the first argument.
To just extract the pair pass (,)
as the first argument.
destroyPipelineLayout :: forall io. MonadIO io => Device -> PipelineLayout -> ("allocator" ::: Maybe AllocationCallbacks) -> io () Source #
vkDestroyPipelineLayout - Destroy a pipeline layout object
Parameters
device
is the logical device that destroys the pipeline layout.
pipelineLayout
is the pipeline layout to destroy.pAllocator
controls host memory allocation as described in the Memory Allocation chapter.
Valid Usage
- If
AllocationCallbacks
were provided whenpipelineLayout
was created, a compatible set of callbacks must be provided here
- If no
AllocationCallbacks
were provided whenpipelineLayout
was created,pAllocator
must beNULL
pipelineLayout
must not have been passed to anyvkCmd*
command for any command buffers that are still in the recording state whendestroyPipelineLayout
is called
Valid Usage (Implicit)
device
must be a validDevice
handle
- If
pipelineLayout
is notNULL_HANDLE
,pipelineLayout
must be a validPipelineLayout
handle - If
pAllocator
is notNULL
,pAllocator
must be a valid pointer to a validAllocationCallbacks
structure - If
pipelineLayout
is a valid handle, it must have been created, allocated, or retrieved fromdevice
Host Synchronization
- Host access to
pipelineLayout
must be externally synchronized
See Also
data PushConstantRange Source #
VkPushConstantRange - Structure specifying a push constant range
Valid Usage (Implicit)
See Also
PushConstantRange | |
|
Instances
data PipelineLayoutCreateInfo Source #
VkPipelineLayoutCreateInfo - Structure specifying the parameters of a newly created pipeline layout object
Valid Usage
setLayoutCount
must be less than or equal toPhysicalDeviceLimits
::maxBoundDescriptorSets
- The total number of descriptors in descriptor set layouts created
without the
DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set with adescriptorType
ofDESCRIPTOR_TYPE_SAMPLER
andDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceLimits
::maxPerStageDescriptorSamplers
- The total number of descriptors in descriptor set layouts created
without the
DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set with adescriptorType
ofDESCRIPTOR_TYPE_UNIFORM_BUFFER
andDESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceLimits
::maxPerStageDescriptorUniformBuffers
- The total number of descriptors in descriptor set layouts created
without the
DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set with adescriptorType
ofDESCRIPTOR_TYPE_STORAGE_BUFFER
andDESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceLimits
::maxPerStageDescriptorStorageBuffers
- The total number of descriptors in descriptor set layouts created
without the
DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set with adescriptorType
ofDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
,DESCRIPTOR_TYPE_SAMPLED_IMAGE
, andDESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceLimits
::maxPerStageDescriptorSampledImages
- The total number of descriptors in descriptor set layouts created
without the
DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set with adescriptorType
ofDESCRIPTOR_TYPE_STORAGE_IMAGE
, andDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceLimits
::maxPerStageDescriptorStorageImages
- The total number of descriptors in descriptor set layouts created
without the
DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set with adescriptorType
ofDESCRIPTOR_TYPE_INPUT_ATTACHMENT
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceLimits
::maxPerStageDescriptorInputAttachments
- The total number of bindings in descriptor set layouts created
without the
DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set with adescriptorType
ofDESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceInlineUniformBlockPropertiesEXT
::maxPerStageDescriptorInlineUniformBlocks
- The total number of descriptors with a
descriptorType
ofDESCRIPTOR_TYPE_SAMPLER
andDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceDescriptorIndexingProperties
::maxPerStageDescriptorUpdateAfterBindSamplers
- The total number of descriptors with a
descriptorType
ofDESCRIPTOR_TYPE_UNIFORM_BUFFER
andDESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceDescriptorIndexingProperties
::maxPerStageDescriptorUpdateAfterBindUniformBuffers
- The total number of descriptors with a
descriptorType
ofDESCRIPTOR_TYPE_STORAGE_BUFFER
andDESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceDescriptorIndexingProperties
::maxPerStageDescriptorUpdateAfterBindStorageBuffers
- The total number of descriptors with a
descriptorType
ofDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
,DESCRIPTOR_TYPE_SAMPLED_IMAGE
, andDESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceDescriptorIndexingProperties
::maxPerStageDescriptorUpdateAfterBindSampledImages
- The total number of descriptors with a
descriptorType
ofDESCRIPTOR_TYPE_STORAGE_IMAGE
, andDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceDescriptorIndexingProperties
::maxPerStageDescriptorUpdateAfterBindStorageImages
- The total number of descriptors with a
descriptorType
ofDESCRIPTOR_TYPE_INPUT_ATTACHMENT
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceDescriptorIndexingProperties
::maxPerStageDescriptorUpdateAfterBindInputAttachments
- The total number of bindings with a
descriptorType
ofDESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceInlineUniformBlockPropertiesEXT
::maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks
- The total number of descriptors in descriptor set layouts created
without the
DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set with adescriptorType
ofDESCRIPTOR_TYPE_SAMPLER
andDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceLimits
::maxDescriptorSetSamplers
- The total number of descriptors in descriptor set layouts created
without the
DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set with adescriptorType
ofDESCRIPTOR_TYPE_UNIFORM_BUFFER
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceLimits
::maxDescriptorSetUniformBuffers
- The total number of descriptors in descriptor set layouts created
without the
DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set with adescriptorType
ofDESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceLimits
::maxDescriptorSetUniformBuffersDynamic
- The total number of descriptors in descriptor set layouts created
without the
DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set with adescriptorType
ofDESCRIPTOR_TYPE_STORAGE_BUFFER
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceLimits
::maxDescriptorSetStorageBuffers
- The total number of descriptors in descriptor set layouts created
without the
DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set with adescriptorType
ofDESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceLimits
::maxDescriptorSetStorageBuffersDynamic
- The total number of descriptors in descriptor set layouts created
without the
DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set with adescriptorType
ofDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
,DESCRIPTOR_TYPE_SAMPLED_IMAGE
, andDESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceLimits
::maxDescriptorSetSampledImages
- The total number of descriptors in descriptor set layouts created
without the
DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set with adescriptorType
ofDESCRIPTOR_TYPE_STORAGE_IMAGE
, andDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceLimits
::maxDescriptorSetStorageImages
- The total number of descriptors in descriptor set layouts created
without the
DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set with adescriptorType
ofDESCRIPTOR_TYPE_INPUT_ATTACHMENT
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceLimits
::maxDescriptorSetInputAttachments
- The total number of bindings in descriptor set layouts created
without the
DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set with adescriptorType
ofDESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceInlineUniformBlockPropertiesEXT
::maxDescriptorSetInlineUniformBlocks
- The total number of descriptors of the type
DESCRIPTOR_TYPE_SAMPLER
andDESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceDescriptorIndexingProperties
::maxDescriptorSetUpdateAfterBindSamplers
- The total number of descriptors of the type
DESCRIPTOR_TYPE_UNIFORM_BUFFER
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceDescriptorIndexingProperties
::maxDescriptorSetUpdateAfterBindUniformBuffers
- The total number of descriptors of the type
DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceDescriptorIndexingProperties
::maxDescriptorSetUpdateAfterBindUniformBuffersDynamic
- The total number of descriptors of the type
DESCRIPTOR_TYPE_STORAGE_BUFFER
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceDescriptorIndexingProperties
::maxDescriptorSetUpdateAfterBindStorageBuffers
- The total number of descriptors of the type
DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceDescriptorIndexingProperties
::maxDescriptorSetUpdateAfterBindStorageBuffersDynamic
- The total number of descriptors of the type
DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
,DESCRIPTOR_TYPE_SAMPLED_IMAGE
, andDESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceDescriptorIndexingProperties
::maxDescriptorSetUpdateAfterBindSampledImages
- The total number of descriptors of the type
DESCRIPTOR_TYPE_STORAGE_IMAGE
, andDESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceDescriptorIndexingProperties
::maxDescriptorSetUpdateAfterBindStorageImages
- The total number of descriptors of the type
DESCRIPTOR_TYPE_INPUT_ATTACHMENT
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceDescriptorIndexingProperties
::maxDescriptorSetUpdateAfterBindInputAttachments
- The total number of bindings with a
descriptorType
ofDESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceInlineUniformBlockPropertiesEXT
::maxDescriptorSetUpdateAfterBindInlineUniformBlocks
- Any two elements of
pPushConstantRanges
must not include the same stage instageFlags
pSetLayouts
must not contain more than one descriptor set layout that was created withDESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR
set- The total number of bindings with a
descriptorType
ofDESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceRayTracingPropertiesKHR
::maxDescriptorSetAccelerationStructures
Valid Usage (Implicit)
sType
must beSTRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
pNext
must beNULL
flags
must be0
- If
setLayoutCount
is not0
,pSetLayouts
must be a valid pointer to an array ofsetLayoutCount
validDescriptorSetLayout
handles - If
pushConstantRangeCount
is not0
,pPushConstantRanges
must be a valid pointer to an array ofpushConstantRangeCount
validPushConstantRange
structures
See Also
DescriptorSetLayout
,
PipelineLayoutCreateFlags
,
PushConstantRange
, StructureType
,
createPipelineLayout
PipelineLayoutCreateInfo | |
|
Instances
Show PipelineLayoutCreateInfo Source # | |
Defined in Vulkan.Core10.PipelineLayout showsPrec :: Int -> PipelineLayoutCreateInfo -> ShowS # show :: PipelineLayoutCreateInfo -> String # showList :: [PipelineLayoutCreateInfo] -> ShowS # | |
FromCStruct PipelineLayoutCreateInfo Source # | |
ToCStruct PipelineLayoutCreateInfo Source # | |
Defined in Vulkan.Core10.PipelineLayout withCStruct :: PipelineLayoutCreateInfo -> (Ptr PipelineLayoutCreateInfo -> IO b) -> IO b Source # pokeCStruct :: Ptr PipelineLayoutCreateInfo -> PipelineLayoutCreateInfo -> IO b -> IO b Source # withZeroCStruct :: (Ptr PipelineLayoutCreateInfo -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr PipelineLayoutCreateInfo -> IO b -> IO b Source # cStructSize :: Int Source # | |
Zero PipelineLayoutCreateInfo Source # | |
Defined in Vulkan.Core10.PipelineLayout |