C Specification
The VkPipelineLayoutCreateInfo structure is defined as:
typedef struct VkPipelineLayoutCreateInfo {
VkStructureType sType;
const void* pNext;
VkPipelineLayoutCreateFlags flags;
uint32_t setLayoutCount;
const VkDescriptorSetLayout* pSetLayouts;
uint32_t pushConstantRangeCount;
const VkPushConstantRange* pPushConstantRanges;
} VkPipelineLayoutCreateInfo;
Members
-
sTypeis the type of this structure. -
pNextisNULLor a pointer to an extension-specific structure. -
flagsis reserved for future use. -
setLayoutCountis the number of descriptor sets included in the pipeline layout. -
pSetLayoutsis a pointer to an array ofVkDescriptorSetLayoutobjects. -
pushConstantRangeCountis the number of push constant ranges included in the pipeline layout. -
pPushConstantRangesis a pointer to an array ofVkPushConstantRangestructures defining a set of push constant ranges for use in a single pipeline layout. In addition to descriptor set layouts, a pipeline layout also describes how many push constants can be accessed by each stage of the pipeline.NotePush constants represent a high speed path to modify constant data in pipelines that is expected to outperform memory-backed resource updates.
Description
-
setLayoutCountmust be less than or equal toVkPhysicalDeviceLimits::maxBoundDescriptorSets -
The total number of descriptors in descriptor set layouts created without the
VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXTbit set with adescriptorTypeofVK_DESCRIPTOR_TYPE_SAMPLERandVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLERaccessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxPerStageDescriptorSamplers -
The total number of descriptors in descriptor set layouts created without the
VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXTbit set with adescriptorTypeofVK_DESCRIPTOR_TYPE_UNIFORM_BUFFERandVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMICaccessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxPerStageDescriptorUniformBuffers -
The total number of descriptors in descriptor set layouts created without the
VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXTbit set with adescriptorTypeofVK_DESCRIPTOR_TYPE_STORAGE_BUFFERandVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMICaccessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxPerStageDescriptorStorageBuffers -
The total number of descriptors in descriptor set layouts created without the
VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXTbit set with adescriptorTypeofVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, andVK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFERaccessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxPerStageDescriptorSampledImages -
The total number of descriptors in descriptor set layouts created without the
VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXTbit set with adescriptorTypeofVK_DESCRIPTOR_TYPE_STORAGE_IMAGE, andVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFERaccessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxPerStageDescriptorStorageImages -
The total number of descriptors in descriptor set layouts created without the
VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXTbit set with adescriptorTypeofVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENTaccessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxPerStageDescriptorInputAttachments -
The total number of bindings in descriptor set layouts created without the
VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXTbit set with adescriptorTypeofVK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXTaccessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxPerStageDescriptorInlineUniformBlocks -
The total number of descriptors with a
descriptorTypeofVK_DESCRIPTOR_TYPE_SAMPLERandVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLERaccessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxPerStageDescriptorUpdateAfterBindSamplers -
The total number of descriptors with a
descriptorTypeofVK_DESCRIPTOR_TYPE_UNIFORM_BUFFERandVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMICaccessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxPerStageDescriptorUpdateAfterBindUniformBuffers -
The total number of descriptors with a
descriptorTypeofVK_DESCRIPTOR_TYPE_STORAGE_BUFFERandVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMICaccessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxPerStageDescriptorUpdateAfterBindStorageBuffers -
The total number of descriptors with a
descriptorTypeofVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, andVK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFERaccessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxPerStageDescriptorUpdateAfterBindSampledImages -
The total number of descriptors with a
descriptorTypeofVK_DESCRIPTOR_TYPE_STORAGE_IMAGE, andVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFERaccessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxPerStageDescriptorUpdateAfterBindStorageImages -
The total number of descriptors with a
descriptorTypeofVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENTaccessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxPerStageDescriptorUpdateAfterBindInputAttachments -
The total number of bindings with a
descriptorTypeofVK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXTaccessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks -
The total number of descriptors in descriptor set layouts created without the
VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXTbit set with adescriptorTypeofVK_DESCRIPTOR_TYPE_SAMPLERandVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLERaccessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxDescriptorSetSamplers -
The total number of descriptors in descriptor set layouts created without the
VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXTbit set with adescriptorTypeofVK_DESCRIPTOR_TYPE_UNIFORM_BUFFERaccessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxDescriptorSetUniformBuffers -
The total number of descriptors in descriptor set layouts created without the
VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXTbit set with adescriptorTypeofVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMICaccessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxDescriptorSetUniformBuffersDynamic -
The total number of descriptors in descriptor set layouts created without the
VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXTbit set with adescriptorTypeofVK_DESCRIPTOR_TYPE_STORAGE_BUFFERaccessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxDescriptorSetStorageBuffers -
The total number of descriptors in descriptor set layouts created without the
VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXTbit set with adescriptorTypeofVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMICaccessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxDescriptorSetStorageBuffersDynamic -
The total number of descriptors in descriptor set layouts created without the
VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXTbit set with adescriptorTypeofVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, andVK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFERaccessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxDescriptorSetSampledImages -
The total number of descriptors in descriptor set layouts created without the
VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXTbit set with adescriptorTypeofVK_DESCRIPTOR_TYPE_STORAGE_IMAGE, andVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFERaccessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxDescriptorSetStorageImages -
The total number of descriptors in descriptor set layouts created without the
VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXTbit set with adescriptorTypeofVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENTaccessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxDescriptorSetInputAttachments -
The total number of bindings in descriptor set layouts created without the
VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXTbit set with adescriptorTypeofVK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXTaccessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxDescriptorSetInlineUniformBlocks -
The total number of descriptors of the type
VK_DESCRIPTOR_TYPE_SAMPLERandVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLERaccessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxDescriptorSetUpdateAfterBindSamplers -
The total number of descriptors of the type
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFERaccessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxDescriptorSetUpdateAfterBindUniformBuffers -
The total number of descriptors of the type
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMICaccessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxDescriptorSetUpdateAfterBindUniformBuffersDynamic -
The total number of descriptors of the type
VK_DESCRIPTOR_TYPE_STORAGE_BUFFERaccessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxDescriptorSetUpdateAfterBindStorageBuffers -
The total number of descriptors of the type
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMICaccessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxDescriptorSetUpdateAfterBindStorageBuffersDynamic -
The total number of descriptors of the type
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, andVK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFERaccessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxDescriptorSetUpdateAfterBindSampledImages -
The total number of descriptors of the type
VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, andVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFERaccessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxDescriptorSetUpdateAfterBindStorageImages -
The total number of descriptors of the type
VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENTaccessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT::maxDescriptorSetUpdateAfterBindInputAttachments -
The total number of bindings with a
descriptorTypeofVK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXTaccessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxDescriptorSetUpdateAfterBindInlineUniformBlocks -
Any two elements of
pPushConstantRangesmust not include the same stage instageFlags -
pSetLayoutsmust not contain more than one descriptor set layout that was created withVK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHRset -
The total number of bindings with a
descriptorTypeofVK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NVaccessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceRayTracingPropertiesNV::maxDescriptorSetAccelerationStructures
See Also
Document Notes
For more information, see the Vulkan Specification
This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.
Copyright
Copyright (c) 2014-2019 Khronos Group. This work is licensed under a Creative Commons Attribution 4.0 International License.