1// Copyright 2016-2023 The Khronos Group Inc. 2// 3// SPDX-License-Identifier: CC-BY-4.0 4 5include::{generated}/meta/{refprefix}VK_KHR_maintenance4.adoc[] 6 7=== Other Extension Metadata 8 9*Last Modified Date*:: 10 2021-10-25 11*Interactions and External Dependencies*:: 12 - Promoted to Vulkan 1.3 Core 13 - Requires SPIR-V 1.2 for code:LocalSizeId 14*Contributors*:: 15 - Lionel Duc, NVIDIA 16 - Faith Ekstrand, Intel 17 - Spencer Fricke, Samsung 18 - Tobias Hector, AMD 19 - Lionel Landwerlin, Intel 20 - Graeme Leese, Broadcom 21 - Tom Olson, Arm 22 - Stu Smith, AMD 23 - Yiwei Zhang, Google 24 25=== Description 26 27`VK_KHR_maintenance4` adds a collection of minor features, none of which 28would warrant an entire extension of their own. 29 30The new features are as follows: 31 32 * Allow the application to destroy their slink:VkPipelineLayout object 33 immediately after it was used to create another object. 34 It is no longer necessary to keep its handle valid while the created 35 object is in use. 36 * Add a new <<limits-maxBufferSize, pname:maxBufferSize>> 37 implementation-defined limit for the maximum size sname:VkBuffer that 38 can: be created. 39 * Add support for the SPIR-V 1.2 code:LocalSizeId execution mode, which 40 can be used as an alternative to code:LocalSize to specify the local 41 workgroup size with specialization constants. 42 * Add a guarantee that images created with identical creation parameters 43 will always have the same alignment requirements. 44 * Add new flink:vkGetDeviceBufferMemoryRequirementsKHR, 45 flink:vkGetDeviceImageMemoryRequirementsKHR, and 46 flink:vkGetDeviceImageSparseMemoryRequirementsKHR to allow the 47 application to query the image memory requirements without having to 48 create an image object and query it. 49 * Relax the requirement that push constants must be initialized before 50 they are dynamically accessed. 51 * Relax the interface matching rules to allow a larger output vector to 52 match with a smaller input vector, with additional values being 53 discarded. 54 * Add a guarantee for buffer memory requirement that the size memory 55 requirement is never greater than the result of aligning create size 56 with the alignment memory requirement. 57 58include::{generated}/interfaces/VK_KHR_maintenance4.adoc[] 59 60=== Promotion to Vulkan 1.3 61 62Functionality in this extension is included in core Vulkan 1.3, with the KHR 63suffix omitted. 64The original type, enum and command names are still available as aliases of 65the core functionality. 66 67=== Issues 68 69None. 70 71=== Version History 72 73 * Revision 1, 2021-08-18 (Piers Daniell) 74 ** Internal revisions 75 * Revision 2, 2021-10-25 (Yiwei Zhang) 76 ** More guarantees on buffer memory requirements 77