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