Vulkan-Docs/doc/specs/vulkan/man/vkCreateDescriptorSetLayout...

76 lines
3.1 KiB
Plaintext
Raw Normal View History

2016-02-16 09:53:44 +00:00
vkCreateDescriptorSetLayout(3)
===============================
Name
----
vkCreateDescriptorSetLayout - Create a new descriptor set layout.
C Specification
---------------
include::../protos/vkCreateDescriptorSetLayout.txt[]
Parameters
----------
pname:device::
The device with which to create the layout object.
pname:pCreateInfo::
Pointer to a structure specifying information to be placed in the object
pname:pSetLayout::
Pointer to a variable which will receive the new handle.
Description
-----------
fname:vkCreateDescriptorSetLayout creates a new descriptor set layout usable by the device specified in
pname:device using the information contained in the structure pointed to by pname:pCreateInfo. If successful,
a handle to the newly created layout object is placed in the variable pointed to by pname:pSetLayout. The
description of the layout is specified in pname:pCreateInfo, which is a pointer to an instance of the
slink:VkDescriptorSetLayoutCreateInfo structure, the definition of which is:
include::../structs/VkDescriptorSetLayoutCreateInfo.txt[]
The pname:bindingCount member of pname:pCreateInfo specifies the number of
bindings contained in the set. This is the number of elements in the array
pointed to by pname:pBinding, which is an array of
slink:VkDescriptorSetLayoutBinding structures. The definition of
slink:VkDescriptorSetLayoutBinding is:
include::../structs/VkDescriptorSetLayoutBinding.txt[]
Each element of the ptext:pBinding array specifies a descriptor or an array
of descriptors to be included in the set layout. pname:descriptorType
contains the descriptor type and must be one of the elink:VkDescriptorType
enumerants, the complete list of which is:
include::../enums/VkDescriptorType.txt[]
The pname:stageFlags member specifies which pipeline shader stages may access the resource. This is a bitwise
combination of the elink:VkShaderStageFlags enumerant, the list of which is:
include::../enums/VkShaderStageFlagBits.txt[]
If a shader stage is not included in pname:stageFlags, then the resource may not be accessed from that
stage within any pipeline using the set layout.
If pname:descriptorType member specifies a ename:VK_DESCRIPTOR_TYPE_SAMPLER or ename:VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER
type descriptor, then the pname:pImmutableSamplers member may be used to initialize a set of _immutable samplers_.
Immutable samplers are permanently bound into the set layout; later binding a sampler into an immutable sampler slot in
a descriptor set is not allowed. If pname:pImmutableSamplers is not code:NULL, then it is considered to be a pointer to an
array of pname:arraySize sampler handles that will be consumed by the set layout and used for the corresponding binding.
If pname:pImmutableSamplers is code:NULL, then the sampler slots are dynamic and sampler handles must be bound into
descriptor sets using this layout. If pname:descriptorType is not one of these descriptor types, then
pname:pImmutableSamplers is ignored.
include::../validity/protos/vkCreateDescriptorSetLayout.txt[]
See Also
--------
flink:vkAllocateDescriptorSets, flink:vkFreeDescriptorSets, flink:vkCreateDescriptorPool
include::footer.txt[]