Safe Haskell | Safe-Inferred |
---|---|
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 {}
- newtype PipelineLayout = PipelineLayout Word64
Documentation
:: forall io. MonadIO io | |
=> Device |
|
-> PipelineLayoutCreateInfo |
|
-> ("allocator" ::: Maybe AllocationCallbacks) |
|
-> io PipelineLayout |
vkCreatePipelineLayout - Creates a new pipeline layout object
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
VK_VERSION_1_0,
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 last argument.
To just extract the pair pass (,)
as the last argument.
destroyPipelineLayout Source #
:: forall io. MonadIO io | |
=> Device |
|
-> PipelineLayout |
|
-> ("allocator" ::: Maybe AllocationCallbacks) |
|
-> io () |
vkDestroyPipelineLayout - Destroy a pipeline layout object
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
VK_VERSION_1_0,
PipelineLayoutCreateInfo
,
ShaderCreateInfoEXT
,
ShaderStageFlags
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
,DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM
,DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM
, 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 and with adescriptorType
ofDESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
accessible to any given shader stage across all elements ofpSetLayouts
, must be less than or equal toPhysicalDeviceInlineUniformBlockProperties
::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
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceInlineUniformBlockProperties
::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
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceInlineUniformBlockProperties
::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
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceInlineUniformBlockProperties
::maxDescriptorSetUpdateAfterBindInlineUniformBlocks
- The total
number of descriptors with a
descriptorType
ofDESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceVulkan13Properties
::maxInlineUniformTotalSize
- 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 in descriptor set layouts created without the
DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
bit set with adescriptorType
ofDESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceAccelerationStructurePropertiesKHR
::maxPerStageDescriptorAccelerationStructures
- The total
number of bindings with a
descriptorType
ofDESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceAccelerationStructurePropertiesKHR
::maxPerStageDescriptorUpdateAfterBindAccelerationStructures
- 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_ACCELERATION_STRUCTURE_KHR
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceAccelerationStructurePropertiesKHR
::maxDescriptorSetAccelerationStructures
- 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 toPhysicalDeviceAccelerationStructurePropertiesKHR
::maxDescriptorSetUpdateAfterBindAccelerationStructures
- The total
number of bindings with a
descriptorType
ofDESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toPhysicalDeviceRayTracingPropertiesNV
::maxDescriptorSetAccelerationStructures
- The total
number of
pImmutableSamplers
created withflags
containingSAMPLER_CREATE_SUBSAMPLED_BIT_EXT
orSAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT
across all shader stages and across all elements ofpSetLayouts
must be less than or equal to ::maxDescriptorSetSubsampledSamplers - Any element of
pSetLayouts
must not have been created with theDESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT
bit set - If
graphicsPipelineLibrary
is not enabled, elements of
pSetLayouts
must be validDescriptorSetLayout
objects - If any element
of
pSetLayouts
was created with theDESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
bit set, all elements ofpSetLayouts
must have been created with theDESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT
bit set
Valid Usage (Implicit)
-
sType
must beSTRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
-
pNext
must beNULL
-
flags
must be a valid combination ofPipelineLayoutCreateFlagBits
values - If
setLayoutCount
is not0
,pSetLayouts
must be a valid pointer to an array ofsetLayoutCount
valid orNULL_HANDLE
DescriptorSetLayout
handles - If
pushConstantRangeCount
is not0
,pPushConstantRanges
must be a valid pointer to an array ofpushConstantRangeCount
validPushConstantRange
structures
See Also
VK_VERSION_1_0,
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 |
newtype PipelineLayout Source #
VkPipelineLayout - Opaque handle to a pipeline layout object
See Also
VK_VERSION_1_0,
ComputePipelineCreateInfo
,
DescriptorUpdateTemplateCreateInfo
,
ExecutionGraphPipelineCreateInfoAMDX
,
GraphicsPipelineCreateInfo
,
IndirectCommandsLayoutTokenNV
,
RayTracingPipelineCreateInfoKHR
,
RayTracingPipelineCreateInfoNV
,
cmdBindDescriptorBufferEmbeddedSamplersEXT
,
cmdBindDescriptorSets
,
cmdPushConstants
,
cmdPushDescriptorSetKHR
,
cmdPushDescriptorSetWithTemplateKHR
,
cmdSetDescriptorBufferOffsetsEXT
,
createPipelineLayout
,
destroyPipelineLayout