Skip to content

Commit

Permalink
Change log for April 13, 2021 Vulkan 1.2.175 spec update:
Browse files Browse the repository at this point in the history
  * Update release number to 175 for this update.

Github Issues:

  * Specify that fragment shader invocations in the same quad scope are also
    in the same primitive scope (public issue 1465).
  * Fix an incorrect reference to ename:VK_SHARING_MODE_CONCURRENT to the
    correct ename:VK_SHARING_MODE_EXCLUSIVE in the queue transfer wording
    for slink:VkBufferMemoryBarrier2KHR (public issue 1479).
  * Fix description of <<vertexpostproc-clipping, Primitive Clipping>>
    (public issues 1480 and 1481).

Internal Issues:

  * Use consistent language in describing <<features, feature>> and
    <<limits, property (limit)>> queries. In particular, a few structures
    were described as being usable to query feature support, but not to set
    it. This was incorrect. All feature structures which can appear in the
    pname:pNext chain of slink:VkPhysicalDeviceFeatures2 can be used to both
    query and set (internal issue 2310).
  * Add `limittype` attributes to the XML schema and to `vk.xml` for
    structure members which are part of physical device property queries, to
    annotate how the resulting properties are interpreted and replace some
    manual interpretation of these properties (internal issue 2427).
  * Improve slink:VkAttachmentDescription2 wording around the use of
    slink:VkAttachmentDescriptionStencilLayout for specifying the stencil
    aspect layout (internal issue 2496).
  * Split the <<extendingvulkan-coreversions-versionnumbers, major version
    field>> of a packed pname:apiVersion value, introducing a new `variant`
    field. This field allows identification of APIs based on Vulkan, but not
    fully compatible with Vulkan applications. Vulkan is variant 0, making
    the change backwards compatible with the previous definition of
    pname:apiVersion. This change was introduced to enable variants of the
    Vulkan API that Khronos may release in the future, in particular the
    in-development Vulkan SC API. It is purely a future-proofing measure and
    no near-term further use is planned. To support this split, a set of new
    macros is introduced: dname:VK_API_VERSION_VARIANT,
    dname:VK_API_VERSION_MAJOR, dname:VK_API_VERSION_MINOR, and
    dname:VK_API_VERSION_PATCH (internal issue 2531).
  * Clarify that the slink:VkRectLayerKHR members of a
    slink:VkPresentRegionKHR structure must not be transformed to align with
    the swapchain's pname:pTransform. The presentation engine must do this
    transform (internal issue 2571).
  * Fix minor issues with exposed asciidoctor markup in spec outputs
    (internal issue 2576).
  * Tighten up wording around pool entries of mutable descriptor types. for
    slink:VkDescriptorPoolCreateInfo (internal issue 2578).
  * Expand on wording of code:FPRoundingMode valid usage statement in the
    <<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
    section (internal merge request 4298).
  * Document interaction with `<<VK_KHR_fragment_shading_rate>>` for
    `<<VK_QCOM_render_pass_transform>>` (internal merge request 4221).
  * Require compile-time constants be explicitly tagged as unsigned or float
    in `vk.xml`. Modify the generator scripts and schema documentation to
    require `type` attributes for such constants. This allows generating
    headers compliant with MISRA section 10.4 requirements, where needed
    (internal merge request 4451).
  * Minor editorial fixes (internal merge request 4454).
  * Disallow code:*Offset* decorations on storage images
    in the <<spirvenv-module-validation-standalone, Standalone SPIR-V
    Validation>> section (internal merge request 4465).
  * Improve the code: macro used in spec markup to allow imbedded wildcards
    separating words and a trailing wildcard (internal merge request 4466).
  * Modify `vk.xml` `requires` attributes to reorder definitions of
    dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE and dname:VK_NULL_HANDLE. This
    prevents a corner case where the app overriding the first macro
    explicitly would prevent definition of dname:VK_NULL_HANDLE (internal
    merge request 4476).

New Extensions:

  * `<<VK_EXT_color_write_enable>>`
  * `<<VK_EXT_vertex_input_dynamic_state>>`
  * `<<VK_EXT_ycbcr_2plane_444_format>>`
  * `<<VK_NV_inherited_viewport_scissor>>`
  * Vulkan video core & codecs provisional extension package, including
  ** `<<VK_KHR_video_queue>>`
  ** `<<VK_KHR_video_decode_queue>>`
  ** `<<VK_KHR_video_encode_queue>>`
  ** `<<VK_EXT_video_decode_h264>>`
  ** `<<VK_EXT_video_decode_h265>>`
  ** `<<VK_EXT_video_encode_h264>>`
  • Loading branch information
oddhack committed Apr 13, 2021
1 parent 3fefdc5 commit b82ae46
Show file tree
Hide file tree
Showing 99 changed files with 10,533 additions and 1,911 deletions.
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,12 @@
# Vim temp files
*.swp

# patches
*.patch

# archives
*.zip

# Python cache
__pycache__
*.pyc
Expand Down
87 changes: 87 additions & 0 deletions ChangeLog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,93 @@ public pull requests that have been accepted.

-----------------------------------------------------

Change log for April 13, 2021 Vulkan 1.2.175 spec update:

* Update release number to 175 for this update.

Github Issues:

* Specify that fragment shader invocations in the same quad scope are also
in the same primitive scope (public issue 1465).
* Fix an incorrect reference to ename:VK_SHARING_MODE_CONCURRENT to the
correct ename:VK_SHARING_MODE_EXCLUSIVE in the queue transfer wording
for slink:VkBufferMemoryBarrier2KHR (public issue 1479).
* Fix description of <<vertexpostproc-clipping, Primitive Clipping>>
(public issues 1480 and 1481).

Internal Issues:

* Use consistent language in describing <<features, feature>> and
<<limits, property (limit)>> queries. In particular, a few structures
were described as being usable to query feature support, but not to set
it. This was incorrect. All feature structures which can appear in the
pname:pNext chain of slink:VkPhysicalDeviceFeatures2 can be used to both
query and set (internal issue 2310).
* Add `limittype` attributes to the XML schema and to `vk.xml` for
structure members which are part of physical device property queries, to
annotate how the resulting properties are interpreted and replace some
manual interpretation of these properties (internal issue 2427).
* Improve slink:VkAttachmentDescription2 wording around the use of
slink:VkAttachmentDescriptionStencilLayout for specifying the stencil
aspect layout (internal issue 2496).
* Split the <<extendingvulkan-coreversions-versionnumbers, major version
field>> of a packed pname:apiVersion value, introducing a new `variant`
field. This field allows identification of APIs based on Vulkan, but not
fully compatible with Vulkan applications. Vulkan is variant 0, making
the change backwards compatible with the previous definition of
pname:apiVersion. This change was introduced to enable variants of the
Vulkan API that Khronos may release in the future, in particular the
in-development Vulkan SC API. It is purely a future-proofing measure and
no near-term further use is planned. To support this split, a set of new
macros is introduced: dname:VK_API_VERSION_VARIANT,
dname:VK_API_VERSION_MAJOR, dname:VK_API_VERSION_MINOR, and
dname:VK_API_VERSION_PATCH (internal issue 2531).
* Clarify that the slink:VkRectLayerKHR members of a
slink:VkPresentRegionKHR structure must not be transformed to align with
the swapchain's pname:pTransform. The presentation engine must do this
transform (internal issue 2571).
* Fix minor issues with exposed asciidoctor markup in spec outputs
(internal issue 2576).
* Tighten up wording around pool entries of mutable descriptor types. for
slink:VkDescriptorPoolCreateInfo (internal issue 2578).
* Expand on wording of code:FPRoundingMode valid usage statement in the
<<spirvenv-module-validation-standalone, Standalone SPIR-V Validation>>
section (internal merge request 4298).
* Document interaction with `<<VK_KHR_fragment_shading_rate>>` for
`<<VK_QCOM_render_pass_transform>>` (internal merge request 4221).
* Require compile-time constants be explicitly tagged as unsigned or float
in `vk.xml`. Modify the generator scripts and schema documentation to
require `type` attributes for such constants. This allows generating
headers compliant with MISRA section 10.4 requirements, where needed
(internal merge request 4451).
* Minor editorial fixes (internal merge request 4454).
* Disallow code:*Offset* decorations on storage images
in the <<spirvenv-module-validation-standalone, Standalone SPIR-V
Validation>> section (internal merge request 4465).
* Improve the code: macro used in spec markup to allow imbedded wildcards
separating words and a trailing wildcard (internal merge request 4466).
* Modify `vk.xml` `requires` attributes to reorder definitions of
dname:VK_DEFINE_NON_DISPATCHABLE_HANDLE and dname:VK_NULL_HANDLE. This
prevents a corner case where the app overriding the first macro
explicitly would prevent definition of dname:VK_NULL_HANDLE (internal
merge request 4476).

New Extensions:

* `<<VK_EXT_color_write_enable>>`
* `<<VK_EXT_vertex_input_dynamic_state>>`
* `<<VK_EXT_ycbcr_2plane_444_format>>`
* `<<VK_NV_inherited_viewport_scissor>>`
* Vulkan video core & codecs provisional extension package, including
** `<<VK_KHR_video_queue>>`
** `<<VK_KHR_video_decode_queue>>`
** `<<VK_KHR_video_encode_queue>>`
** `<<VK_EXT_video_decode_h264>>`
** `<<VK_EXT_video_decode_h265>>`
** `<<VK_EXT_video_encode_h264>>`

-----------------------------------------------------

Change log for March 29, 2021 Vulkan 1.2.174 spec update:

* Update release number to 174 for this update.
Expand Down
17 changes: 9 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ allchecks:
# are therefore order-dependent in the Makefile

QUIET ?= @
VERYQUIET?= @
PYTHON ?= python3
ASCIIDOC ?= asciidoctor
RUBY = ruby
Expand Down Expand Up @@ -109,7 +110,7 @@ VERBOSE =
# ADOCOPTS options for asciidoc->HTML5 output

NOTEOPTS = -a editing-notes -a implementation-guide
PATCHVERSION = 174
PATCHVERSION = 175
ifneq (,$(findstring VK_VERSION_1_2,$(VERSIONS)))
SPECREVISION = 1.2.$(PATCHVERSION)
else
Expand Down Expand Up @@ -437,17 +438,17 @@ buildmanpages: $(MANHTML)
ADOCREFOPTS = -a cross-file-links -a refprefix='refpage.' -a isrefpage \
-a html_spec_relative='../../html/vkspec.html'

# The refpage build process generates far too much output, so we always
# suppress make output instead of using QUIET
# Running translate_math.js on every refpage is slow since most of them
# The refpage build process normally generates far too much output, so
# use VERYQUIET instead of QUIET
# Running translate_math.js on every refpage is slow and most of them
# don't contain math, so do a quick search for latexmath delimiters.
$(MANHTMLDIR)/%.html: KATEXDIR = ../../katex
$(MANHTMLDIR)/%.html: $(REFPATH)/%.txt $(GENDEPENDS) katexinst
@echo "Building $@ from $< using default options"
@$(MKDIR) $(MANHTMLDIR)
@$(ASCIIDOC) -b html5 $(ADOCOPTS) $(ADOCHTMLOPTS) $(ADOCREFOPTS) \
$(VERYQUIET)echo "Building $@ from $< using default options"
$(VERYQUIET)$(MKDIR) $(MANHTMLDIR)
$(VERYQUIET)$(ASCIIDOC) -b html5 $(ADOCOPTS) $(ADOCHTMLOPTS) $(ADOCREFOPTS) \
-d manpage -o $@ $<
@if egrep -q '\\[([]' $@ ; then \
$(VERYQUIET)if egrep -q '\\[([]' $@ ; then \
$(TRANSLATEMATH) $@ ; \
fi

Expand Down
39 changes: 39 additions & 0 deletions appendices/VK_EXT_color_write_enable.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// Copyright (c) 2020 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_EXT_color_write_enable.txt[]

=== Other Extension Metadata

*Last Modified Date*::
2020-02-25
*IP Status*::
No known IP claims.
*Contributors*::
- Sharif Elcott, Google
- Tobias Hector, AMD
- Piers Daniell, NVIDIA

=== Description

This extension allows for selectively enabling and disabling writes to
output color attachments via a pipeline dynamic state.

The intended use cases for this new state are mostly identical to those of
colorWriteMask, such as selectively disabling writes to avoid feedback loops
between subpasses or bandwidth savings for unused outputs.
By making the state dynamic, one additional benefit is the ability to reduce
pipeline counts and pipeline switching via shaders that write a superset of
the desired data of which subsets are selected dynamically.
The reason for a new state, colorWriteEnable, rather than making
colorWriteMask dynamic is that, on many implementations, the more flexible
per-channel semantics of the colorWriteMask state cannot be made dynamic in
a performant manner.

include::{generated}/interfaces/VK_EXT_color_write_enable.txt[]

=== Version History

* Revision 1, 2020-01-25 (Sharif Elcott)
- Internal revisions
40 changes: 40 additions & 0 deletions appendices/VK_EXT_vertex_input_dynamic_state.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
// Copyright (c) 2019-2021 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_EXT_vertex_input_dynamic_state.txt[]

=== Other Extension Metadata

*Last Modified Date*::
2020-08-21
*IP Status*::
No known IP claims.
*Contributors*::
- Jeff Bolz, NVIDIA
- Spencer Fricke, Samsung
- Stu Smith, AMD

=== Description

One of the states that contributes to the combinatorial explosion of
pipeline state objects that need to be created, is the vertex input binding
and attribute descriptions.
By allowing them to be dynamic applications may reduce the number of
pipeline objects they need to create.

This extension adds dynamic state support for what is normally static state
in slink:VkPipelineVertexInputStateCreateInfo.

include::{generated}/interfaces/VK_EXT_vertex_input_dynamic_state.txt[]

=== Version History

* Revision 2, 2020-11-05 (Piers Daniell)
- Make slink:VkVertexInputBindingDescription2EXT extensible
- Add new slink:VkVertexInputAttributeDescription2EXT struct for the
pname:pVertexAttributeDescriptions parameter to
flink:vkCmdSetVertexInputEXT so it is also extensible

* Revision 1, 2020-08-21 (Piers Daniell)
- Internal revisions
28 changes: 28 additions & 0 deletions appendices/VK_EXT_video_decode_h264.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
// Copyright (c) 2018-2021 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_EXT_video_decode_h264.txt[]

*Last Modified Date*:: 2021-03-29

*IP Status*::
No known IP claims.

*Contributors*::
- Chunbo Chen, Intel
- HoHin Lau, AMD
- Jake Beju, AMD
- Peter Fang, AMD
- Ping Liu, Intel
- Srinath Kumarapuram, NVIDIA
- Tony Zlatinski, NVIDIA

include::{generated}/interfaces/VK_EXT_video_decode_h264.txt[]

=== Version History

* Revision 1, 2018-6-11 (Peter Fang)
- Initial draft
* Revision 1.6, March 29 2021 (Tony Zlatinski)
- Spec and API Updates
27 changes: 27 additions & 0 deletions appendices/VK_EXT_video_decode_h265.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// Copyright (c) 2018-2021 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_EXT_video_decode_h265.txt[]

*Last Modified Date*:: 2021-03-29

*IP Status*::
No known IP claims.

*Contributors*::
- HoHin Lau, AMD
- Jake Beju, AMD
- Peter Fang, AMD
- Ping Liu, Intel
- Srinath Kumarapuram, NVIDIA
- Tony Zlatinski, NVIDIA

include::{generated}/interfaces/VK_EXT_video_decode_h265.txt[]

=== Version History

* Revision 1, 2018-6-11 (Peter Fang)
- Initial draft
* Revision 1.6, March 29 2021 (Tony Zlatinski)
- Spec and API updates.
35 changes: 35 additions & 0 deletions appendices/VK_EXT_video_encode_h264.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// Copyright (c) 2018-2021 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_EXT_video_encode_h264.txt[]

*Last Modified Date*:: 2021-03-29

*IP Status*::
No known IP claims.

*Contributors*::
- Ahmed Abdelkhalek, AMD
- Daniel Rakos, AMD
- George Hao, AMD
- Jake Beju, AMD
- Peter Fang, AMD
- Ping Liu, Intel
- Srinath Kumarapuram, NVIDIA
- Tony Zlatinski, NVIDIA
- Yang Liu, AMD

include::{generated}/interfaces/VK_EXT_video_encode_h264.txt[]

=== Version History

* Revision 0, 2018-7-23 (Ahmed Abdelkhalek)
- Initial draft
* Revision 0.5, 2020-02-13 (Tony Zlatinski)
- General Spec cleanup
- Added DPB structures
- Change the VCL frame encode structure
- Added a common Non-VCL Picture Paramarameters structure
* Revision 0.8, 2021-03-29 (Tony Zlatinski)
- Spec and API updates
28 changes: 28 additions & 0 deletions appendices/VK_EXT_ycbcr_2plane_444_formats.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
// Copyright 2020-2021 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_EXT_ycbcr_2plane_444_formats.txt[]

=== Other Extension Metadata

*Last Modified Date*::
2020-07-28
*IP Status*::
No known IP claims.
*Contributors*::
- Piers Daniell, NVIDIA
- Ping Liu, Intel

=== Description

This extension adds some {YCbCr} formats that are in common use for video
encode and decode, but were not part of the
<<VK_KHR_sampler_ycbcr_conversion>> extension.

include::{generated}/interfaces/VK_EXT_ycbcr_2plane_444_formats.txt[]

=== Version History

* Revision 1, 2020-03-08 (Piers Daniell)
- Initial draft
16 changes: 16 additions & 0 deletions appendices/VK_KHR_incremental_present.txt
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,23 @@ the swapchain.
However, all other semantics of flink:vkQueuePresentKHR must still be
honored, including waiting for semaphores to signal.

5) When the swapchain is created with
sname:VkSwapchainCreateInfoKHR::pname:preTransform set to a value other than
ename:VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, should the rectangular region,
slink:VkRectLayerKHR, be transformed to align with the pname:preTransform?

*RESOLVED*: No.
The rectangular region in slink:VkRectLayerKHR should not be tranformed.
As such, it may not align with the extents of the swapchain's image(s).
It is the responsibility of the presentation engine to transform the
rectangular region.
This matches the behavior of the Android presentation engine, which set the
precedent.

=== Version History

* Revision 1, 2016-11-02 (Ian Elliott)
- Internal revisions
* Revision 2, 2021-03-18 (Ian Elliott)
- Clarified alignment of rectangles for presentation engines that support
transformed swapchains.
9 changes: 4 additions & 5 deletions appendices/VK_KHR_shader_clock.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,10 @@ incrementing counter at the subgroup level or across the device level.
The two valid SPIR-V scopes for code:OpReadClockKHR are code:Subgroup and
code:Device.

When using GLSL source-based shading languages, the
code:clockRealtime*code:EXT() timing functions map to the
code:OpReadClockKHR instruction with a scope of code:Device, and the
code:clock*code:ARB() timing functions map to the code:OpReadClockKHR
instruction with a scope of code:Subgroup.
When using GLSL source-based shading languages, the code:clockRealtime*EXT()
timing functions map to the code:OpReadClockKHR instruction with a scope of
code:Device, and the code:clock*ARB() timing functions map to the
code:OpReadClockKHR instruction with a scope of code:Subgroup.

include::{generated}/interfaces/VK_KHR_shader_clock.txt[]

Expand Down
Loading

0 comments on commit b82ae46

Please sign in to comment.