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