• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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