Vulkan-Docs/doc/specs/vulkan/appendices/VK_KHR_maintenance1.txt
Jon Leech e958791a01 Change log for March 16, 2018 Vulkan 1.1.71 spec update:
* First public update for Vulkan 1.1.

Github Issues:

  * Refer to standard sparse image block shape format tables explicitly in
    the <<sparsememory-standard-shapes, Standard Sparse Image Block Shapes>>
    section (public issue 93).
  * Add the missing definition of the code:LocalInvocationIndex decoration
    in the <<interfaces-builtin-variables, Built-In Variables>> section
    (public issue 532).
  * Clarify dynamic state definition in the introduction to the <<pipelines,
    Pipelines>> section and the new <<pipelines-dynamic-state, Dynamic
    State>> subsection (public issue 620).
  * Clarified deprecation statement in the `VK_AMD_negative_viewport_height`
    appendix (public issue 674).
  * Fix parameter descriptions for flink:vkCreateIndirectCommandsLayoutNVX
    (public issue 677).

Internal Issues:

  * Remove description of <<primsrast-points, rasterization point size>>
    being taken from the tessellation control shader, since there are no
    circumstances under which you can have TCS without TES (internal issue
    522).
  * Define <<copies-images-format-size-compatibility, _size-compatible_
    image formats>> for flink:vkCmdCopyImage, add it to the glossary, and
    use that definition for slink:VkImageViewCreateInfo (internal issue
    771).
  * Change brief descriptions of enumerant names, and of parameters which
    are enumerants, from "`enum *indicates*`" to "`enum *specifies*`" for
    consistency, and add a markup style guide rule (internal issue 862).
  * Clarify how execution dependencies interact with
    <<synchronization-submission-order, submission order>> at numerous
    places in the <<renderpass, Render Pass>> and <<synchronization,
    Synchronization>> chapters (internal issue 1062).
  * Clarify statement in the <<interfaces-resources-setandbinding,
    DescriptorSet and Binding Assignment>> section that only interface
    variables statically used by the entry point used in a pipeline must be
    present in the descriptor set layout (internal issue 1172).
  * Flip sparse image diagrams with partially full mip levels vertically, to
    match graph origins of other image diagrams (internal issue 1176).
  * Update new SVG diagrams to have consistent style and base font size,
    increase consistency of primitive topology diagrams, and add a section
    to the style guide on creating and editing images in a consistent style
    (internal issue 1177).
  * Resolve problems with valid usage statement extraction by fixing
    existing VUID tags for interfaces promoted to version 1.1 and fixing
    conditional directives around
    VUID-VkMemoryDedicatedAllocateInfo-image-01797 (internal issue 1184).
  * Strip `KHR` suffixes from a few interfaces promoted to Vulkan 1.1 that
    were missed previously (internal issue 1185).
  * Restrict code:OpImageQuerySizeLod and code:OpImageQueryLevels to only
    work on code:Image operands with their code:Sampled operand set to 1. In
    other words, these operations are not defined to work with storage
    images (internal issue 1193).
  * Recycle extension slot for extension #82 in `vk.xml`. This extension was
    never published (internal issue 1195).
  * Add an issue to the `VK_KHR_maintenance1` appendix noting that zero
    height viewports are allowed when this extension is enabled (internal
    issue 1202).
  * Fix slink:VkDescriptorSetLayoutBinding description so that shader stages
    always use descriptor bindings, not the other way around (internal issue
    1206).
  * Fix field name for
    slink:VkInputAttachmentAspectReference::pname:inputAttachmentIndex
    (internal issue 1210).

Other Issues:

  * Fix a few broken links in the <<versions-1.1, Version 1.1>> appendix.
  * Replace a few old refBegin/refEnd tags with open block markup around
    interfaces, and remove old KHX VUID tags that were breaking the valid
    usage statement extraction.
  * Fix error codes accidentally tagged as success codes in `vk.xml` for
    flink:vkGetSwapchainCounterEXT.
  * Added valid usage statements for ftext:vkBind*Memory2 input structures
    stext:VkBind*MemoryInfo, and fix a pname:image -> pname:buffer typo in a
    couple of places.
  * Fix swapped descriptions of elink:VkDescriptorType enums
    ename:VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE and
    ename:VK_DESCRIPTOR_TYPE_STORAGE_IMAGE (reported via tweet).

New Extensions:

  * `VK_ANDROID_external_memory_android_hardware_buffer`
2018-03-17 04:04:05 -07:00

107 lines
3.5 KiB
Plaintext

// 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