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