VkPushDescriptorSetInfoKHR
The VkPushDescriptorSetInfoKHR
structure is defined as:
typedef struct VkPushDescriptorSetInfoKHR {
VkStructureType sType;
const void* pNext;
VkShaderStageFlags stageFlags;
VkPipelineLayout layout;
uint32_t set;
uint32_t descriptorWriteCount;
const VkWriteDescriptorSet* pDescriptorWrites;
} VkPushDescriptorSetInfoKHR;
sType
is a VkStructureType value identifying this structure.pNext
isNULL
or a pointer to a structure extending this structure.stageFlags
is a bitmask of VkShaderStageFlagBits specifying the shader stages that will use the descriptors.layout
is a VkPipelineLayout object used to program the bindings. If thedynamicPipelineLayout
feature is enabled,layout
can be VK_NULL_HANDLE and the layout must be specified by chaining VkPipelineLayoutCreateInfo structure off thepNext
set
is the set number of the descriptor set in the pipeline layout that will be updated.descriptorWriteCount
is the number of elements in thepDescriptorWrites
array.pDescriptorWrites
is a pointer to an array of VkWriteDescriptorSet structures describing the descriptors to be updated.
If stageFlags
specifies a subset of all stages corresponding to one or
more pipeline bind points, the binding operation still affects all stages
corresponding to the given pipeline bind point(s) as if the equivalent
original version of this command had been called with the same parameters.
For example, specifying a stageFlags
value of
VK_SHADER_STAGE_VERTEX_BIT
| VK_SHADER_STAGE_FRAGMENT_BIT
|
VK_SHADER_STAGE_COMPUTE_BIT
is equivalent to calling the original
version of this command once with VK_PIPELINE_BIND_POINT_GRAPHICS
and
once with VK_PIPELINE_BIND_POINT_COMPUTE
.
Valid Usage
VUID-VkPushDescriptorSetInfoKHR-set-00364
set
must be less than
VkPipelineLayoutCreateInfo::setLayoutCount
provided when
layout
was created
VUID-VkPushDescriptorSetInfoKHR-set-00365
set
must be the unique set number in the pipeline layout that
uses a descriptor set layout that was created with
VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR
VUID-VkPushDescriptorSetInfoKHR-pDescriptorWrites-06494
For each element i where
pDescriptorWrites
[i].descriptorType
is
VK_DESCRIPTOR_TYPE_SAMPLER
,
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
,
VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE
,
VK_DESCRIPTOR_TYPE_STORAGE_IMAGE
, or
VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT
,
pDescriptorWrites
[i].pImageInfo
must be a valid pointer to
an array of pDescriptorWrites
[i].descriptorCount
valid
VkDescriptorImageInfo
structures
VUID-VkPushDescriptorSetInfoKHR-None-09495
If the dynamicPipelineLayout
feature is not enabled,
layout
must be a valid VkPipelineLayout handle
VUID-VkPushDescriptorSetInfoKHR-layout-09496
If layout
is VK_NULL_HANDLE, the pNext
chain must
include a valid VkPipelineLayoutCreateInfo structure
Valid Usage (Implicit)
VUID-VkPushDescriptorSetInfoKHR-sType-sType
sType
must be VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR
VUID-VkPushDescriptorSetInfoKHR-pNext-pNext
pNext
must be NULL
or a pointer to a valid instance of VkPipelineLayoutCreateInfo
VUID-VkPushDescriptorSetInfoKHR-sType-unique
The sType
value of each struct in the pNext
chain must be unique
VUID-VkPushDescriptorSetInfoKHR-stageFlags-parameter
stageFlags
must be a valid combination of VkShaderStageFlagBits values
VUID-VkPushDescriptorSetInfoKHR-stageFlags-requiredbitmask
stageFlags
must not be 0
VUID-VkPushDescriptorSetInfoKHR-layout-parameter
If layout
is not VK_NULL_HANDLE, layout
must be a valid VkPipelineLayout handle
VUID-VkPushDescriptorSetInfoKHR-pDescriptorWrites-parameter
pDescriptorWrites
must be a valid pointer to an array of descriptorWriteCount
valid VkWriteDescriptorSet structures
VUID-VkPushDescriptorSetInfoKHR-descriptorWriteCount-arraylength
descriptorWriteCount
must be greater than 0