| // Copyright (c) 2016-2018 Khronos Group. This work is licensed under a |
| // Creative Commons Attribution 4.0 International License; see |
| // http://creativecommons.org/licenses/by/4.0/ |
| |
| include::meta/VK_KHR_maintenance1.txt[] |
| |
| *Last Modified Date*:: |
| 2018-03-13 |
| *Interactions and External Dependencies*:: |
| - Promoted to Vulkan 1.1 Core |
| *Contributors*:: |
| - Dan Ginsburg, Valve |
| - Daniel Koch, NVIDIA |
| - Daniel Rakos, AMD |
| - Jan-Harald Fredriksen, ARM |
| - Jason Ekstrand, Intel |
| - Jeff Bolz, NVIDIA |
| - Jesse Hall, Google |
| - John Kessenich, Google |
| - Michael Worcester, Imagination Technologies |
| - Neil Henning, Codeplay Software Ltd. |
| - Piers Daniell, NVIDIA |
| - Slawomir Grajewski, Intel |
| - Tobias Hector, Imagination Technologies |
| - Tom Olson, ARM |
| |
| `VK_KHR_maintenance1` adds a collection of minor features that were |
| intentionally left out or overlooked from the original Vulkan 1.0 release. |
| |
| The new features are as follows: |
| |
| * Allow 2D and 2D array image views to be created from 3D images, which |
| can then be used as color framebuffer attachments. |
| This allows applications to render to slices of a 3D image. |
| * Support flink:vkCmdCopyImage between 2D array layers and 3D slices. |
| This extension allows copying from layers of a 2D array image to slices |
| of a 3D image and vice versa. |
| * Allow negative height to be specified in the |
| slink:VkViewport::pname:height field to perform y-inversion of the |
| clip-space to framebuffer-space transform. |
| This allows apps to avoid having to use `gl_Position.y = -gl_Position.y` |
| in shaders also targeting other APIs. |
| * Allow implementations to express support for doing just transfers and |
| clears of image formats that they otherwise support no other format |
| features for. |
| This is done by adding new format feature flags |
| ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR and |
| ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR. |
| * Support flink:vkCmdFillBuffer on transfer-only queues. |
| Previously flink:vkCmdFillBuffer was defined to only work on command |
| buffers allocated from command pools which support graphics or compute |
| queues. |
| It is now allowed on queues that just support transfer operations. |
| * Fix the inconsistency of how error conditions are returned between the |
| flink:vkCreateGraphicsPipelines and flink:vkCreateComputePipelines |
| functions and the flink:vkAllocateDescriptorSets and |
| flink:vkAllocateCommandBuffers functions. |
| * Add new ename:VK_ERROR_OUT_OF_POOL_MEMORY_KHR error so implementations |
| can give a more precise reason for flink:vkAllocateDescriptorSets |
| failures. |
| * Add a new command flink:vkTrimCommandPoolKHR which gives the |
| implementation an opportunity to release any unused command pool memory |
| back to the system. |
| |
| === New Object Types |
| |
| None. |
| |
| === New Enum Constants |
| |
| * ename:VK_ERROR_OUT_OF_POOL_MEMORY_KHR |
| * ename:VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR |
| * ename:VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR |
| * ename:VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR |
| |
| === New Enums |
| |
| None. |
| |
| === New Structures |
| |
| None. |
| |
| === New Functions |
| |
| * flink:vkTrimCommandPoolKHR |
| |
| === Promotion to Vulkan 1.1 |
| |
| All functionality in this extension is included in core Vulkan 1.1, with the |
| KHR suffix omitted. |
| The original type, enum and command names are still available as aliases of |
| the core functionality. |
| |
| === Issues |
| |
| . Are viewports with zero height allowed? |
| + |
| *RESOLVED*: Yes, although they have low utility. |
| |
| === Version History |
| |
| * Revision 1, 2016-10-26 (Piers Daniell) |
| - Internal revisions |
| * Revision 2, 2018-03-13 (Jon Leech) |
| - Add issue for zero-height viewports |