1// Copyright (c) 2016-2018 Khronos Group. This work is licensed under a 2// Creative Commons Attribution 4.0 International License; see 3// http://creativecommons.org/licenses/by/4.0/ 4 5include::meta/VK_KHR_maintenance1.txt[] 6 7*Last Modified Date*:: 8 2018-03-13 9*Interactions and External Dependencies*:: 10 - Promoted to Vulkan 1.1 Core 11*Contributors*:: 12 - Dan Ginsburg, Valve 13 - Daniel Koch, NVIDIA 14 - Daniel Rakos, AMD 15 - Jan-Harald Fredriksen, ARM 16 - Jason 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`VK_KHR_maintenance1` adds a collection of minor features that were 28intentionally left out or overlooked from the original Vulkan 1.0 release. 29 30The new features are as follows: 31 32 * Allow 2D and 2D array image views to be created from 3D images, which 33 can then be used as color framebuffer attachments. 34 This allows applications to render to slices of a 3D image. 35 * Support flink:vkCmdCopyImage between 2D array layers and 3D slices. 36 This extension allows copying from layers of a 2D array image to slices 37 of a 3D image and vice versa. 38 * Allow negative height to be specified in the 39 slink:VkViewport::pname:height field to perform y-inversion of the 40 clip-space to framebuffer-space transform. 41 This allows apps to avoid having to use `gl_Position.y = -gl_Position.y` 42 in shaders also targeting other APIs. 43 * Allow implementations to express support for doing just transfers and 44 clears of image formats that they otherwise support no other format 45 features for. 46 This is done by adding new format feature flags 47 ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR and 48 ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR. 49 * Support flink:vkCmdFillBuffer on transfer-only queues. 50 Previously flink:vkCmdFillBuffer was defined to only work on command 51 buffers allocated from command pools which support graphics or compute 52 queues. 53 It is now allowed on queues that just support transfer operations. 54 * Fix the inconsistency of how error conditions are returned between the 55 flink:vkCreateGraphicsPipelines and flink:vkCreateComputePipelines 56 functions and the flink:vkAllocateDescriptorSets and 57 flink:vkAllocateCommandBuffers functions. 58 * Add new ename:VK_ERROR_OUT_OF_POOL_MEMORY_KHR error so implementations 59 can give a more precise reason for flink:vkAllocateDescriptorSets 60 failures. 61 * Add a new command flink:vkTrimCommandPoolKHR which gives the 62 implementation an opportunity to release any unused command pool memory 63 back to the system. 64 65=== New Object Types 66 67None. 68 69=== New Enum Constants 70 71 * ename:VK_ERROR_OUT_OF_POOL_MEMORY_KHR 72 * ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR 73 * ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR 74 * ename:VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR 75 76=== New Enums 77 78None. 79 80=== New Structures 81 82None. 83 84=== New Functions 85 86 * flink:vkTrimCommandPoolKHR 87 88=== Promotion to Vulkan 1.1 89 90All functionality in this extension is included in core Vulkan 1.1, with the 91KHR suffix omitted. 92The original type, enum and command names are still available as aliases of 93the core functionality. 94 95=== Issues 96 97 . Are viewports with zero height allowed? 98+ 99*RESOLVED*: Yes, although they have low utility. 100 101=== Version History 102 103 * Revision 1, 2016-10-26 (Piers Daniell) 104 - Internal revisions 105 * Revision 2, 2018-03-13 (Jon Leech) 106 - Add issue for zero-height viewports 107