| // Copyright 2020-2021 The Khronos Group Inc. |
| // |
| // SPDX-License-Identifier: CC-BY-4.0 |
| |
| include::{generated}/meta/{refprefix}VK_VALVE_mutable_descriptor_type.txt[] |
| |
| === Other Extension Metadata |
| |
| *Last Modified Date*:: |
| 2020-12-02 |
| *IP Status*:: |
| No known IP claims. |
| *Contributors*:: |
| - Joshua Ashton, Valve |
| - Hans-Kristian Arntzen, Valve |
| |
| === Description |
| |
| This extension allows applications to reduce descriptor memory footprint by |
| allowing a descriptor to be able to mutate to a given list of descriptor |
| types depending on which descriptor types are written into, or copied into a |
| descriptor set. |
| |
| The main use case this extension intends to address is descriptor indexing |
| with ename:VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT where the |
| descriptor types are completely generic, as this means applications can |
| allocate one large descriptor set, rather than having one large descriptor |
| set per descriptor type, which significantly bloats descriptor memory usage |
| and causes performance issues. |
| |
| This extension also adds a mechanism to declare that a descriptor pool, and |
| therefore the descriptor sets that are allocated from it, reside only in |
| host memory; as such these descriptors can only be updated/copied, but not |
| bound. |
| |
| These features together allow much more efficient emulation of the raw D3D12 |
| binding model. |
| This extension is primarily intended to be useful for API layering efforts. |
| |
| include::{generated}/interfaces/VK_VALVE_mutable_descriptor_type.txt[] |
| |
| === Version History |
| |
| * Revision 1, 2020-12-01 (Joshua Ashton, Hans-Kristian Arntzen) |
| - Initial specification, squashed from public draft. |