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
-
sType
is the type of this structure. -
pNext
isNULL
or a pointer to an extension-specific structure. -
flags
is reserved for future use. -
setLayoutCount
is the number of descriptor sets included in the pipeline layout. -
pSetLayouts
is a pointer to an array ofVkDescriptorSetLayout
objects. -
pushConstantRangeCount
is the number of push constant ranges included in the pipeline layout. -
pPushConstantRanges
is a pointer to an array ofVkPushConstantRange
structures 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
-
setLayoutCount
must 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_EXT
bit set with adescriptorType
ofVK_DESCRIPTOR_TYPE_SAMPLER
andVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
accessible to any given shader stage across all elements ofpSetLayouts
must 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_EXT
bit set with adescriptorType
ofVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
andVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
accessible to any given shader stage across all elements ofpSetLayouts
must 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_EXT
bit set with adescriptorType
ofVK_DESCRIPTOR_TYPE_STORAGE_BUFFER
andVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
accessible to any given shader stage across all elements ofpSetLayouts
must 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_EXT
bit set with adescriptorType
ofVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
,VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
, andVK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
accessible to any given shader stage across all elements ofpSetLayouts
must 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_EXT
bit set with adescriptorType
ofVK_DESCRIPTOR_TYPE_STORAGE_IMAGE
, andVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
accessible to any given shader stage across all elements ofpSetLayouts
must 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_EXT
bit set with adescriptorType
ofVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
accessible to any given shader stage across all elements ofpSetLayouts
must 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_EXT
bit set with adescriptorType
ofVK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toVkPhysicalDeviceInlineUniformBlockPropertiesEXT
::maxPerStageDescriptorInlineUniformBlocks
-
The total number of descriptors with a
descriptorType
ofVK_DESCRIPTOR_TYPE_SAMPLER
andVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT
::maxPerStageDescriptorUpdateAfterBindSamplers
-
The total number of descriptors with a
descriptorType
ofVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
andVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT
::maxPerStageDescriptorUpdateAfterBindUniformBuffers
-
The total number of descriptors with a
descriptorType
ofVK_DESCRIPTOR_TYPE_STORAGE_BUFFER
andVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT
::maxPerStageDescriptorUpdateAfterBindStorageBuffers
-
The total number of descriptors with a
descriptorType
ofVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
,VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
, andVK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT
::maxPerStageDescriptorUpdateAfterBindSampledImages
-
The total number of descriptors with a
descriptorType
ofVK_DESCRIPTOR_TYPE_STORAGE_IMAGE
, andVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT
::maxPerStageDescriptorUpdateAfterBindStorageImages
-
The total number of descriptors with a
descriptorType
ofVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
accessible to any given shader stage across all elements ofpSetLayouts
must be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT
::maxPerStageDescriptorUpdateAfterBindInputAttachments
-
The total number of bindings with a
descriptorType
ofVK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT
accessible to any given shader stage across all elements ofpSetLayouts
must 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_EXT
bit set with adescriptorType
ofVK_DESCRIPTOR_TYPE_SAMPLER
andVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
accessible across all shader stages and across all elements ofpSetLayouts
must 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_EXT
bit set with adescriptorType
ofVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
accessible across all shader stages and across all elements ofpSetLayouts
must 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_EXT
bit set with adescriptorType
ofVK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
accessible across all shader stages and across all elements ofpSetLayouts
must 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_EXT
bit set with adescriptorType
ofVK_DESCRIPTOR_TYPE_STORAGE_BUFFER
accessible across all shader stages and across all elements ofpSetLayouts
must 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_EXT
bit set with adescriptorType
ofVK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
accessible across all shader stages and across all elements ofpSetLayouts
must 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_EXT
bit set with adescriptorType
ofVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
,VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
, andVK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER
accessible across all shader stages and across all elements ofpSetLayouts
must 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_EXT
bit set with adescriptorType
ofVK_DESCRIPTOR_TYPE_STORAGE_IMAGE
, andVK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
accessible across all shader stages and across all elements ofpSetLayouts
must 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_EXT
bit set with adescriptorType
ofVK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
accessible across all shader stages and across all elements ofpSetLayouts
must 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_EXT
bit set with adescriptorType
ofVK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toVkPhysicalDeviceInlineUniformBlockPropertiesEXT
::maxDescriptorSetInlineUniformBlocks
-
The total number of descriptors of the type
VK_DESCRIPTOR_TYPE_SAMPLER
andVK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT
::maxDescriptorSetUpdateAfterBindSamplers
-
The total number of descriptors of the type
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT
::maxDescriptorSetUpdateAfterBindUniformBuffers
-
The total number of descriptors of the type
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT
::maxDescriptorSetUpdateAfterBindUniformBuffersDynamic
-
The total number of descriptors of the type
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT
::maxDescriptorSetUpdateAfterBindStorageBuffers
-
The total number of descriptors of the type
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
accessible across all shader stages and across all elements ofpSetLayouts
must 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_BUFFER
accessible across all shader stages and across all elements ofpSetLayouts
must 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_BUFFER
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT
::maxDescriptorSetUpdateAfterBindStorageImages
-
The total number of descriptors of the type
VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toVkPhysicalDeviceDescriptorIndexingPropertiesEXT
::maxDescriptorSetUpdateAfterBindInputAttachments
-
The total number of bindings with a
descriptorType
ofVK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT
accessible across all shader stages and across all elements ofpSetLayouts
must be less than or equal toVkPhysicalDeviceInlineUniformBlockPropertiesEXT
::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 withVK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR
set -
The total number of bindings with a
descriptorType
ofVK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV
accessible across all shader stages and across all elements ofpSetLayouts
must 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.