mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-01-12 15:04:10 +00:00
7f7686d7f2
* Bump API patch number and header version number to 23 for this update. Github Issues: * Add explicit valid value attributes to pname:sType members in vk.xml (public issue 34). * Clarify usage of flink:vkGetInstanceProcAddr and flink:vkGetDeviceProcAddr (public issue 225). * Fix a copy-and-paste error in the description of pname:pSwapchainImageCount saying that it was the count of ``format pairs'' instead of ``swapchain images'' (public issue 292). * flink:vkCmdExecuteCommandBuffers requires all command buffers to be allocated from command pools created for the same queue family (public issue 296). * Remove bogus +optional+ attribute for flink:vkEnumerateDeviceLayerProperties::pname:physicalDevice from vk.xml (public issue 301). * Clean up the <<resources-image-views-compatibility,image and image view compatibility table>> reference and contents. Use full enumerant names. Refer to pname:layerCount in the ``view parameters'' column instead of pname:arrayLayers. Require N >= 1 for the cube array subview row, not just arrayLayers >= 6 N (public issue 304). * Modify description of <<resources-memory-aliasing,memory aliasing>> to be consistent with the description of <<resources-bufferimagegranularity,buffer image granularity>> (public issue 307). Internal Issues: * Describe remaining +vk_platform.h+ macros in the <<boilerplate,API Boilerplate>> appendix (internal issue 6). * Clarify <<features-features-robustBufferAccess,pname:robustBufferAccess>> feature behavior; what memory can be accessed, how bounds checking is performed, and allowing for vectorization (internal issue 332). * Document markup for automatic extraction of reference pages from the spec sources in the style guide (internal issue 395). * Allow flink:vkCreateDisplayModeKHR to return ename:VK_ERROR_INITIALIZAION_FAILED_KHR if the user requests mode parameters that the specified display does not support (internal issue 411). * Remove atomic counters (atomic_uint style) from KHR_vulkan_glsl, and more clearly remove the subroutine keyword alongside it (internal issue 421). * Clarify behavior of flink:vkCmdBindDescriptorSets for descriptor sets not contained in the layout (internal issue 427). Other Commits: * Change the order in which members of sname:VkAttachmentDescription and sname:VkPipelineInputAssemblyStateCreateInfo are described to match their order in the structures.
95 lines
3.2 KiB
Plaintext
95 lines
3.2 KiB
Plaintext
// Copyright (c) 2014-2016 Khronos Group. This work is licensed under a
|
|
// Creative Commons Attribution 4.0 International License; see
|
|
// http://creativecommons.org/licenses/by/4.0/
|
|
|
|
vkAllocateDescriptorSets(3)
|
|
===========================
|
|
|
|
Name
|
|
----
|
|
vkAllocateDescriptorSets - Allocate one or more descriptor sets.
|
|
|
|
C Specification
|
|
---------------
|
|
|
|
// refBegin vkAllocateDescriptorSets Allocate one or more descriptor sets.
|
|
|
|
To allocate descriptor sets from a descriptor pool, call:
|
|
|
|
include::../api/protos/vkAllocateDescriptorSets.txt[]
|
|
|
|
|
|
Parameters
|
|
----------
|
|
|
|
* pname:device is the logical device that owns the descriptor pool.
|
|
* pname:pAllocateInfo is a pointer to an instance of the
|
|
slink:VkDescriptorSetAllocateInfo structure describing parameters of the
|
|
allocation.
|
|
* pname:pDescriptorSets is a pointer to an array of sname:VkDescriptorSet
|
|
handles in which the resulting descriptor set objects are returned. The
|
|
array must: be at least the length specified by the
|
|
pname:descriptorSetCount member of pname:pAllocateInfo.
|
|
|
|
|
|
Description
|
|
-----------
|
|
|
|
The allocated descriptor sets are returned in pname:pDescriptorSets.
|
|
|
|
When a descriptor set is allocated, the initial state is largely
|
|
uninitialized and all descriptors are undefined. However,
|
|
the descriptor set can: be bound
|
|
in a command buffer without causing errors or exceptions. All entries that
|
|
are statically used by a pipeline in a drawing or dispatching command must:
|
|
have been populated before the descriptor set is bound for use by that command.
|
|
Entries that are not statically used by a pipeline can: have uninitialized
|
|
descriptors or descriptors of resources that have been destroyed, and executing
|
|
a draw or dispatch with such a descriptor set bound does not cause undefined
|
|
behavior. This means applications need not populate unused entries with dummy
|
|
descriptors.
|
|
|
|
If an allocation fails due to fragmentation, an indeterminate error is
|
|
returned with an unspecified error code. Any returned error other than
|
|
ename:VK_ERROR_FRAGMENTED_POOL does not imply its usual meaning:
|
|
applications should: assume that the allocation failed due to fragmentation,
|
|
and create a new descriptor pool.
|
|
|
|
[NOTE]
|
|
.Note
|
|
====
|
|
Applications should check for a negative return value when allocating new
|
|
descriptor sets, assume that any error effectively means
|
|
ename:VK_ERROR_FRAGMENTED_POOL, and try to create a new descriptor pool.
|
|
If ename:VK_ERROR_FRAGMENTED_POOL is the actual return value, it adds
|
|
certainty to that decision.
|
|
|
|
The reason for this is that ename:VK_ERROR_FRAGMENTED_POOL was only added in
|
|
a later revision of the 1.0 specification, and so drivers may: return other
|
|
errors if they were written against earlier revisions.
|
|
To ensure full compatibility with earlier patch revisions, these other
|
|
errors are allowed.
|
|
====
|
|
|
|
include::../validity/protos/vkAllocateDescriptorSets.txt[]
|
|
|
|
|
|
See Also
|
|
--------
|
|
|
|
slink:VkDescriptorSet, slink:VkDescriptorSetAllocateInfo, slink:VkDevice
|
|
|
|
|
|
Document Notes
|
|
--------------
|
|
|
|
For more information, see the Vulkan Specification at URL
|
|
|
|
https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html#vkAllocateDescriptorSets
|
|
|
|
This page is extracted from the Vulkan Specification.
|
|
Fixes and changes should be made to the Specification,not directly.
|
|
|
|
include::footer.txt[]
|
|
|