1// Copyright 2016-2023 The Khronos Group Inc. 2// 3// SPDX-License-Identifier: CC-BY-4.0 4 5include::{generated}/meta/{refprefix}VK_KHR_maintenance1.adoc[] 6 7=== Other Extension Metadata 8 9*Last Modified Date*:: 10 2018-03-13 11*Interactions and External Dependencies*:: 12 - Promoted to Vulkan 1.1 Core 13*Contributors*:: 14 - Dan Ginsburg, Valve 15 - Daniel Koch, NVIDIA 16 - Daniel Rakos, AMD 17 - Jan-Harald Fredriksen, ARM 18 - Faith Ekstrand, Intel 19 - Jeff Bolz, NVIDIA 20 - Jesse Hall, Google 21 - John Kessenich, Google 22 - Michael Worcester, Imagination Technologies 23 - Neil Henning, Codeplay Software Ltd. 24 - Piers Daniell, NVIDIA 25 - Slawomir Grajewski, Intel 26 - Tobias Hector, Imagination Technologies 27 - Tom Olson, ARM 28 29=== Description 30 31`VK_KHR_maintenance1` adds a collection of minor features that were 32intentionally left out or overlooked from the original Vulkan 1.0 release. 33 34The new features are as follows: 35 36 * Allow 2D and 2D array image views to be created from 3D images, which 37 can then be used as color framebuffer attachments. 38 This allows applications to render to slices of a 3D image. 39 * Support flink:vkCmdCopyImage between 2D array layers and 3D slices. 40 This extension allows copying from layers of a 2D array image to slices 41 of a 3D image and vice versa. 42 * Allow negative height to be specified in the 43 slink:VkViewport::pname:height field to perform y-inversion of the 44 clip-space to framebuffer-space transform. 45 This allows apps to avoid having to use `gl_Position.y = -gl_Position.y` 46 in shaders also targeting other APIs. 47 * Allow implementations to express support for doing just transfers and 48 clears of image formats that they otherwise support no other format 49 features for. 50 This is done by adding new format feature flags 51 ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR and 52 ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR. 53 * Support flink:vkCmdFillBuffer on transfer-only queues. 54 Previously flink:vkCmdFillBuffer was defined to only work on command 55 buffers allocated from command pools which support graphics or compute 56 queues. 57 It is now allowed on queues that just support transfer operations. 58 * Fix the inconsistency of how error conditions are returned between the 59 flink:vkCreateGraphicsPipelines and flink:vkCreateComputePipelines 60 functions and the flink:vkAllocateDescriptorSets and 61 flink:vkAllocateCommandBuffers functions. 62 * Add new ename:VK_ERROR_OUT_OF_POOL_MEMORY_KHR error so implementations 63 can give a more precise reason for flink:vkAllocateDescriptorSets 64 failures. 65 * Add a new command flink:vkTrimCommandPoolKHR which gives the 66 implementation an opportunity to release any unused command pool memory 67 back to the system. 68 69=== Promotion to Vulkan 1.1 70 71All functionality in this extension is included in core Vulkan 1.1, with the 72KHR suffix omitted. 73The original type, enum and command names are still available as aliases of 74the core functionality. 75 76include::{generated}/interfaces/VK_KHR_maintenance1.adoc[] 77 78=== Issues 79 80 . Are viewports with zero height allowed? 81+ 82*RESOLVED*: Yes, although they have low utility. 83 84=== Version History 85 86 * Revision 1, 2016-10-26 (Piers Daniell) 87 ** Internal revisions 88 * Revision 2, 2018-03-13 (Jon Leech) 89 ** Add issue for zero-height viewports 90