C Specification
The VkPipelineLayoutCreateInfo structure is defined as:
// Provided by VK_VERSION_1_0
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 a VkStructureType value identifying this structure. -
pNextisNULLor a pointer to a structure extending this structure. -
flagsis a bitmask of VkPipelineLayoutCreateFlagBits specifying options for pipeline layout creation. -
setLayoutCountis the number of descriptor sets included in the pipeline layout. -
pSetLayoutsis a pointer to an array ofVkDescriptorSetLayoutobjects. The implementation must not access these objects outside of the duration of the command this structure is passed to. -
pushConstantRangeCountis the number of push constant ranges included in the pipeline layout. -
pPushConstantRangesis a pointer to an array of VkPushConstantRange 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
In Vulkan SC, the pipeline compilation process occurs
offline, but the application must still
provide values to VkPipelineLayoutCreateInfo that match the values
used for offline compilation of pipelines using this VkPipelineLayout.
-
VUID-VkPipelineLayoutCreateInfo-setLayoutCount-00286
setLayoutCountmust be less than or equal toVkPhysicalDeviceLimits::maxBoundDescriptorSets -
VUID-VkPipelineLayoutCreateInfo-descriptorType-03016
The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with adescriptorTypeof VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxPerStageDescriptorSamplers -
VUID-VkPipelineLayoutCreateInfo-descriptorType-03017
The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with adescriptorTypeof VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER and VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxPerStageDescriptorUniformBuffers -
VUID-VkPipelineLayoutCreateInfo-descriptorType-03018
The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with adescriptorTypeof VK_DESCRIPTOR_TYPE_STORAGE_BUFFER and VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxPerStageDescriptorStorageBuffers -
VUID-VkPipelineLayoutCreateInfo-descriptorType-06939
The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with adescriptorTypeof VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, accessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxPerStageDescriptorSampledImages -
VUID-VkPipelineLayoutCreateInfo-descriptorType-03020
The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with adescriptorTypeof VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxPerStageDescriptorStorageImages -
VUID-VkPipelineLayoutCreateInfo-descriptorType-03021
The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with adescriptorTypeof VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxPerStageDescriptorInputAttachments -
VUID-VkPipelineLayoutCreateInfo-descriptorType-03022
If thedescriptorBindingSampledImageUpdateAfterBindfeature is supported on the device, the total number of descriptors with adescriptorTypeof VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindSamplers -
VUID-VkPipelineLayoutCreateInfo-descriptorType-03023
If thedescriptorBindingUniformBufferUpdateAfterBindfeature is supported on the device, the total number of descriptors with adescriptorTypeof VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER and VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindUniformBuffers -
VUID-VkPipelineLayoutCreateInfo-descriptorType-03024
If thedescriptorBindingStorageBufferUpdateAfterBindfeature is supported on the device, the total number of descriptors with adescriptorTypeof VK_DESCRIPTOR_TYPE_STORAGE_BUFFER and VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindStorageBuffers -
VUID-VkPipelineLayoutCreateInfo-descriptorType-03025
If thedescriptorBindingSampledImageUpdateAfterBindfeature is supported on the device, the total number of descriptors with adescriptorTypeof VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindSampledImages -
VUID-VkPipelineLayoutCreateInfo-descriptorType-03026
If thedescriptorBindingStorageImageUpdateAfterBindfeature is supported on the device, the total number of descriptors with adescriptorTypeof VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindStorageImages -
VUID-VkPipelineLayoutCreateInfo-descriptorType-03027
If any element ofpSetLayoutsis created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set, the total number of descriptors with adescriptorTypeof VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible to any given shader stage across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindInputAttachments -
VUID-VkPipelineLayoutCreateInfo-descriptorType-03028
The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with adescriptorTypeof VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxDescriptorSetSamplers -
VUID-VkPipelineLayoutCreateInfo-descriptorType-03029
The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with adescriptorTypeof VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER accessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxDescriptorSetUniformBuffers -
VUID-VkPipelineLayoutCreateInfo-descriptorType-03030
The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with adescriptorTypeof VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxDescriptorSetUniformBuffersDynamic -
VUID-VkPipelineLayoutCreateInfo-descriptorType-03031
The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with adescriptorTypeof VK_DESCRIPTOR_TYPE_STORAGE_BUFFER accessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxDescriptorSetStorageBuffers -
VUID-VkPipelineLayoutCreateInfo-descriptorType-03032
The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with adescriptorTypeof VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxDescriptorSetStorageBuffersDynamic -
VUID-VkPipelineLayoutCreateInfo-descriptorType-03033
The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with adescriptorTypeof VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxDescriptorSetSampledImages -
VUID-VkPipelineLayoutCreateInfo-descriptorType-03034
The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with adescriptorTypeof VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxDescriptorSetStorageImages -
VUID-VkPipelineLayoutCreateInfo-descriptorType-03035
The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with adescriptorTypeof VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxDescriptorSetInputAttachments -
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03036
If thedescriptorBindingSampledImageUpdateAfterBindfeature is supported on the device, the total number of descriptors of the type VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindSamplers -
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03037
If thedescriptorBindingUniformBufferUpdateAfterBindfeature is supported on the device, the total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER accessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindUniformBuffers -
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03038
If thedescriptorBindingUniformBufferUpdateAfterBindfeature is supported on the device, the total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxDescriptorSetUpdateAfterBindUniformBuffersDynamic -
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03039
If thedescriptorBindingStorageBufferUpdateAfterBindfeature is supported on the device, the total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER accessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindStorageBuffers -
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03040
If thedescriptorBindingStorageBufferUpdateAfterBindfeature is supported on the device, the total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceLimits::maxDescriptorSetUpdateAfterBindStorageBuffersDynamic -
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03041
If thedescriptorBindingSampledImageUpdateAfterBindfeature is supported on the device, the total number of descriptors of the type VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindSampledImages -
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03042
If thedescriptorBindingStorageImageUpdateAfterBindfeature is supported on the device, the total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindStorageImages -
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03043
If any element ofpSetLayoutsis created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set, the total number of descriptors of the type VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible across all shader stages and across all elements ofpSetLayoutsmust be less than or equal toVkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindInputAttachments -
VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-00292
Any two elements ofpPushConstantRangesmust not include the same stage instageFlags -
VUID-VkPipelineLayoutCreateInfo-graphicsPipelineLibrary-06753
Elements ofpSetLayoutsmust be valid VkDescriptorSetLayout objects
-
VUID-VkPipelineLayoutCreateInfo-sType-sType
sTypemust be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO -
VUID-VkPipelineLayoutCreateInfo-flags-zerobitmask
flagsmust be0 -
VUID-VkPipelineLayoutCreateInfo-pSetLayouts-parameter
IfsetLayoutCountis not0,pSetLayoutsmust be a valid pointer to an array ofsetLayoutCountvalid or VK_NULL_HANDLE VkDescriptorSetLayout handles -
VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-parameter
IfpushConstantRangeCountis not0,pPushConstantRangesmust be a valid pointer to an array ofpushConstantRangeCountvalid VkPushConstantRange structures
- Extends the structure
-
-
slink:
-
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.