/ appendices / VK_KHR_maintenance1.txt
VK_KHR_maintenance1.txt
  1  // Copyright (c) 2016-2019 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  
  5  include::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
 28  intentionally left out or overlooked from the original Vulkan 1.0 release.
 29  
 30  The 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  
 67  None.
 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  
 78  None.
 79  
 80  === New Structures
 81  
 82  None.
 83  
 84  === New Functions
 85  
 86    * flink:vkTrimCommandPoolKHR
 87  
 88  === Promotion to Vulkan 1.1
 89  
 90  All functionality in this extension is included in core Vulkan 1.1, with the
 91  KHR suffix omitted.
 92  The original type, enum and command names are still available as aliases of
 93  the 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