Skip to content

Commit

Permalink
Change log for January 25, 2024 Vulkan 1.3.276 spec update:
Browse files Browse the repository at this point in the history
Github Issues

  * Add missing VUs to structures taking elink:VkFormat parameters where
    formats cannot be ename:VK_FORMAT_UNDEFINED (public issue 2165).
  * Add EPUB generation target to the Makefile. NOTE: the `epub` target is
    not supported by Khronos, but provided in case it is of use to people
    building their own specification outputs. Please see
    #2286 for more about
    this (public PR 2286).

Internal Issues

  * Fix VU 06604 to allow omitting fragment shaders when creating a graphics
    pipeline library (internal issue 3178).
  * Clarify pname:maxCombinedClipAndCullDistances and related VUs (internal
    issue 3325).
  * Refactor apiext:VK_EXT_extended_dynamic_state3 and
    apiext:VK_EXT_shader_object XML to include extension dependencies
    (internal issue 3360).
  * Add <<spirvenv-module-validation-standalone, Standalone SPIR-V
    Validation>> VU banning code:PhysicalStorageBuffer pointers in shader
    interfaces (internal issue 3677).
  * Clarified image requirement for slink:VkSparseImageFormatProperties
    (internal issue 3686).
  * Add slink:VkQueryPoolCreateInfo VU requiring pname:pipelineStatistics
    not be zero for that query type (internal issue 3722).
  * Add slink:VkWriteDescriptorSet and flink:vkGetDescriptorEXT VUs banning
    dlink:VK_NULL_HANDLE YCbCr descriptors (internal issue 3727).
  * Clarify acceleration structure binding requirements in a NOTE for
    flink:vkCreateAccelerationStructureKHR and new VUs for
    flink:vkGetAccelerationStructureDeviceAddressKHR (internal issue 3735).
  * Add `optional` attribute to shader parameter of flink:vkDestroyShaderEXT
    (internal issue 3754).
  * Add flink:vkSetEvent VU for pending command buffers (internal MR 6326).
  * Allow pname:pMessage to be `NULL` in
    slink:VkDebugUtilsMessengerCallbackDataEXT (internal MR 6331).
  * Fix link to the H.265 specification (internal MR 6334).
  * Remove redundant slink:VkDeferredOperationKHR check formerly in VUID
    03677 (internal MR 6374).
  * Add VU requiring pname:commandBuffer to not be protected for
    flink:vkCmdBuildAccelerationStructuresKHR (internal MR 6375).
  * Update `genvk.py` to not load generators when they are not available, as
    may be the case in VulkanSC-Headers or downstream repositories (internal
    MR 6384).
  * Add `returnedonly` attributes to some Properties structs missing them
    (internal MR 6392).
  * Remove redundant slink:VkDebugUtilsMessengerCreateInfoEXT VU 01914
    (internal MR 6404).
  * Clarify the conditions under which <<shaders-helper-invocations, shader
    helper invocations>> may become inactive (internal MR 6405).
  * Fix typo in
    slink:VkPipelineMultisampleStateCreateInfo::pname:sampleShadingEnable
    member name (internal MR 6407).

New Extensions

  * Roadmap 2024 Extensions
  ** VK_KHR_dynamic_rendering_local_read
  ** VK_KHR_index_type_uint8 (promoted from EXT)
  ** VK_KHR_line_rasterization (promoted from EXT)
  ** VK_KHR_load_store_op_none (promoted from EXT)
  ** VK_KHR_shader_expect_assume
  ** VK_KHR_shader_float_controls2
  ** VK_KHR_shader_maximal_reconvergence
  ** VK_KHR_shader_quad_control
  ** VK_KHR_shader_subgroup_rotate
  • Loading branch information
oddhack committed Jan 25, 2024
1 parent 7abf6f0 commit bf11e6d
Show file tree
Hide file tree
Showing 86 changed files with 3,639 additions and 845 deletions.
1 change: 1 addition & 0 deletions .mailmap
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@
Faith Ekstrand <[email protected]> <[email protected]>
Faith Ekstrand <[email protected]> <[email protected]>
Faith Ekstrand <[email protected]> <[email protected]>
Rylie Pavlik <[email protected]> <[email protected]>
2 changes: 1 addition & 1 deletion .reuse/dep5
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: Vulkan-Docs
Source: https://github.com/KhronosGroup/Vulkan-Docs

Files: images/*.svg config/chunkindex/custom.patch config/CI/contractions* config/CI/writing config/CI/txt-files-allowed config/*/docinfo-header.html build_tests/expectations/* build_tests/images/*.svg
Files: images/*.svg config/chunkindex/custom.patch config/CI/contractions* config/CI/writing config/CI/txt-files-allowed config/*/docinfo-header.html build_tests/expectations/* build_tests/images/*.svg images/proposals/*.svg
Copyright: 2015-2024 The Khronos Group Inc.
License: CC-BY-4.0

Expand Down
18 changes: 18 additions & 0 deletions BUILD.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -103,18 +103,24 @@ Vulkan Specification::
dependency in $(OUTDIR)/katex
* `chunked` -- Chunked HTML5 in `$(OUTDIR)/html/chap?.html`
* `pdf` -- PDF in `$(OUTDIR)/pdf/vkspec.pdf`

"`styleguide`" (Vulkan Documentation and Extensions: Procedures and Conventions)::
* `styleguide` -- Single-file HTML5 in `$(OUTDIR)/styleguide.html`

XML Registry schema document::
* `registry` -- Single-file HTML5 in `$(OUTDIR)/registry.html`

<<building-diff,Diff spec>>::
* `diff_html` -- Single-file HTML5 in `$(OUTDIR)/html/diff.html`

<<refpages,Reference pages>>::
* `manhtmlpages` -- File-per-entry-point HTML in `$(OUTDIR)/man/html/*`.
Must be built with all extensions enabled (using `makeSpec -spec all`).

<<validation-scripts,Validator output>>::
* None at present. The `allchecks` target writes to standard output unless
the underlying script is given additional options.

Valid usage database::
* `validusage` - json database of all valid usage statements in the
specification. Must be built with `./makeAllExts` (for now).
Expand Down Expand Up @@ -171,6 +177,7 @@ Valid values for the `VULKAN_API` environment are:

If `VULKAN_API` is not set, the repository default is used.


[[building-extensions]]
=== Building With Extensions Included

Expand Down Expand Up @@ -463,9 +470,20 @@ toolchain yourself.
====


[[building-epub-outputs]]
=== Building EPUB Outputs

The `epub` target will generate an EPUB file in in
`$(OUTDIR)/epub/vkspec.epub`. Note that the `epub` target is
community-contributed, and not supported by Khronos. See
https://github.com/KhronosGroup/Vulkan-Docs/pull/2286 for more.


[[history]]
== Revision History

* 2024-01-24 - Add <<building-epub-outputs, Building EPUB Outputs>>
section describing a community-contributed EPUB spec output target.
* 2023-05-29 - Add Vulkan SC spec build instructions.
* 2022-10-11 - Update descriptions of using the Docker image to use the
`runDocker` script and the same SHA256 of the latest image as used by
Expand Down
71 changes: 71 additions & 0 deletions ChangeLog.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,77 @@ appears frequently in the change log.

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

Change log for January 25, 2024 Vulkan 1.3.276 spec update:

Github Issues

* Add missing VUs to structures taking elink:VkFormat parameters where
formats cannot be ename:VK_FORMAT_UNDEFINED (public issue 2165).
* Add EPUB generation target to the Makefile. NOTE: the `epub` target is
not supported by Khronos, but provided in case it is of use to people
building their own specification outputs. Please see
https://github.com/KhronosGroup/Vulkan-Docs/pull/2286 for more about
this (public PR 2286).

Internal Issues

* Fix VU 06604 to allow omitting fragment shaders when creating a graphics
pipeline library (internal issue 3178).
* Clarify pname:maxCombinedClipAndCullDistances and related VUs (internal
issue 3325).
* Refactor apiext:VK_EXT_extended_dynamic_state3 and
apiext:VK_EXT_shader_object XML to include extension dependencies
(internal issue 3360).
* Add <<spirvenv-module-validation-standalone, Standalone SPIR-V
Validation>> VU banning code:PhysicalStorageBuffer pointers in shader
interfaces (internal issue 3677).
* Clarified image requirement for slink:VkSparseImageFormatProperties
(internal issue 3686).
* Add slink:VkQueryPoolCreateInfo VU requiring pname:pipelineStatistics
not be zero for that query type (internal issue 3722).
* Add slink:VkWriteDescriptorSet and flink:vkGetDescriptorEXT VUs banning
dlink:VK_NULL_HANDLE YCbCr descriptors (internal issue 3727).
* Clarify acceleration structure binding requirements in a NOTE for
flink:vkCreateAccelerationStructureKHR and new VUs for
flink:vkGetAccelerationStructureDeviceAddressKHR (internal issue 3735).
* Add `optional` attribute to shader parameter of flink:vkDestroyShaderEXT
(internal issue 3754).
* Add flink:vkSetEvent VU for pending command buffers (internal MR 6326).
* Allow pname:pMessage to be `NULL` in
slink:VkDebugUtilsMessengerCallbackDataEXT (internal MR 6331).
* Fix link to the H.265 specification (internal MR 6334).
* Remove redundant slink:VkDeferredOperationKHR check formerly in VUID
03677 (internal MR 6374).
* Add VU requiring pname:commandBuffer to not be protected for
flink:vkCmdBuildAccelerationStructuresKHR (internal MR 6375).
* Update `genvk.py` to not load generators when they are not available, as
may be the case in VulkanSC-Headers or downstream repositories (internal
MR 6384).
* Add `returnedonly` attributes to some Properties structs missing them
(internal MR 6392).
* Remove redundant slink:VkDebugUtilsMessengerCreateInfoEXT VU 01914
(internal MR 6404).
* Clarify the conditions under which <<shaders-helper-invocations, shader
helper invocations>> may become inactive (internal MR 6405).
* Fix typo in
slink:VkPipelineMultisampleStateCreateInfo::pname:sampleShadingEnable
member name (internal MR 6407).

New Extensions

* Roadmap 2024 Extensions
** VK_KHR_dynamic_rendering_local_read
** VK_KHR_index_type_uint8 (promoted from EXT)
** VK_KHR_line_rasterization (promoted from EXT)
** VK_KHR_load_store_op_none (promoted from EXT)
** VK_KHR_shader_expect_assume
** VK_KHR_shader_float_controls2
** VK_KHR_shader_maximal_reconvergence
** VK_KHR_shader_quad_control
** VK_KHR_shader_subgroup_rotate

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

Change log for January 5, 2024 Vulkan 1.3.275 spec update:

Github Issues
Expand Down
4 changes: 3 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ VERBOSE =
# ADOCOPTS options for asciidoc->HTML5 output

NOTEOPTS = -a editing-notes -a implementation-guide
PATCHVERSION = 275
PATCHVERSION = 276
BASEOPTS =

ifneq (,$(findstring VKSC_VERSION_1_0,$(VERSIONS)))
Expand Down Expand Up @@ -371,6 +371,8 @@ $(PDFDIR)/vkspec.pdf: $(SPECSRC) $(COMMONDOCS)
$(QUIET)$(OPTIMIZEPDF) $@ $@.out.pdf && mv $@.out.pdf $@
$(QUIET)$(RMRF) $(PDFMATHDIR)

# EPUB generation is community-contributed and not supported by Khronos.
# See https://github.com/KhronosGroup/Vulkan-Docs/pull/2286
epub: $(EPUBDIR)/vkspec.epub $(SPECSRC) $(COMMONDOCS)

$(EPUBDIR)/vkspec.epub: $(SPECSRC) $(COMMONDOCS)
Expand Down
7 changes: 7 additions & 0 deletions appendices/VK_EXT_index_type_uint8.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,13 @@ include::{generated}/meta/{refprefix}VK_EXT_index_type_uint8.adoc[]
This extension allows code:uint8_t indices to be used with
flink:vkCmdBindIndexBuffer.

=== Promotion to `VK_KHR_index_type_uint8`

All functionality in this extension is included in
`apiext:VK_KHR_index_type_uint8`, with the suffix changed to KHR.
The original enum names are still available as aliases of the KHR
functionality.

include::{generated}/interfaces/VK_EXT_index_type_uint8.adoc[]

=== Version History
Expand Down
7 changes: 7 additions & 0 deletions appendices/VK_EXT_line_rasterization.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,13 @@ Bresenham-style line rasterization is supported, smooth rectangular lines
(coverage to alpha) are supported, and stippled lines are supported for all
three line rasterization modes.

=== Promotion to `VK_KHR_line_rasterization`

All functionality in this extension is included in
`apiext:VK_KHR_line_rasterization`, with the suffix changed to KHR.
The original enum names are still available as aliases of the KHR
functionality.

include::{generated}/interfaces/VK_EXT_line_rasterization.adoc[]

=== Issues
Expand Down
7 changes: 7 additions & 0 deletions appendices/VK_EXT_load_store_op_none.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,13 @@ an alternative to preserve attachments in applications that cannot decide if
an attachment will be used in a render pass until after the necessary
pipelines have been created.

=== Promotion to `VK_KHR_load_store_op_none`

All functionality in this extension is included in
`apiext:VK_KHR_load_store_op_none`, with the suffix changed to KHR.
The original enum names are still available as aliases of the KHR
functionality.

include::{generated}/interfaces/VK_EXT_load_store_op_none.adoc[]

=== Version History
Expand Down
47 changes: 47 additions & 0 deletions appendices/VK_KHR_dynamic_rendering_local_read.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
// Copyright 2023-2024 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_KHR_dynamic_rendering_local_read.adoc[]

=== Other Extension Metadata

*Last Modified Date*::
2023-11-03
*Contributors*::
- Tobias Hector, AMD
- Hans-Kristian Arntzen, Valve
- Connor Abbot, Valve
- Pan Gao, Huawei
- Lionel Landwerlin, Intel
- Shahbaz Youssefi, Google
- Alyssa Rosenzweig, Valve
- Jan-Harald Fredriksen, Arm
- Mike Blumenkrantz, Valve
- Graeme Leese, Broadcom
- Piers Daniell, Nvidia
- Stuart Smith, AMD
- Daniel Story, Nintendo
- James Fitzpatrick, Imagination
- Piotr Byszewski, Mobica
- Spencer Fricke, LunarG
- Tom Olson, Arm
- Michal Pietrasiuk, Intel
- Matthew Netsch, Qualcomm
- Marty Johnson, Khronos
- Huilong Wang, Huawei
- Jeff Bolz, Nvidia
- Samuel (Sheng-Wen) Huang, MediaTek


=== Description

This extension enables reads from attachments and resources written by
previous fragment shaders within a dynamic render pass.

include::{generated}/interfaces/VK_KHR_dynamic_rendering_local_read.adoc[]

=== Version History

* Revision 1, 2023-11-03 (Tobias Hector)
** Initial revision
26 changes: 26 additions & 0 deletions appendices/VK_KHR_index_type_uint8.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
// Copyright 2019-2024 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_KHR_index_type_uint8.adoc[]

=== Other Extension Metadata

*Last Modified Date*::
2023-06-06
*IP Status*::
No known IP claims.
*Contributors*::
- Jeff Bolz, NVIDIA

=== Description

This extension allows code:uint8_t indices to be used with
flink:vkCmdBindIndexBuffer.

include::{generated}/interfaces/VK_KHR_index_type_uint8.adoc[]

=== Version History

* Revision 1, 2023-06-06 (Piers Daniell)
** Internal revisions
42 changes: 42 additions & 0 deletions appendices/VK_KHR_line_rasterization.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
// Copyright 2019-2024 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_KHR_line_rasterization.adoc[]

=== Other Extension Metadata

*Last Modified Date*::
2023-06-08
*IP Status*::
No known IP claims.
*Contributors*::
- Jeff Bolz, NVIDIA
- Allen Jensen, NVIDIA
- Faith Ekstrand, Intel

=== Description

This extension adds some line rasterization features that are commonly used
in CAD applications and supported in other APIs like OpenGL.
Bresenham-style line rasterization is supported, smooth rectangular lines
(coverage to alpha) are supported, and stippled lines are supported for all
three line rasterization modes.

include::{generated}/interfaces/VK_KHR_line_rasterization.adoc[]

=== Issues

1) Do we need to support Bresenham-style and smooth lines with more than one
rasterization sample? i.e. the equivalent of glDisable(GL_MULTISAMPLE) in
OpenGL when the framebuffer has more than one sample?

*RESOLVED*: Yes.
For simplicity, Bresenham line rasterization carries forward a few
restrictions from OpenGL, such as not supporting per-sample shading, alpha
to coverage, or alpha to one.

=== Version History

* Revision 1, 2019-05-09 (Jeff Bolz)
** Initial draft
27 changes: 27 additions & 0 deletions appendices/VK_KHR_load_store_op_none.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// Copyright 2023-2024 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_KHR_load_store_op_none.adoc[]

=== Other Extension Metadata

*Last Modified Date*::
2023-05-16
*Contributors*::
- Shahbaz Youssefi, Google
- Bill Licea-Kane, Qualcomm Technologies, Inc.
- Tobias Hector, AMD

=== Description

This extension provides ename:VK_ATTACHMENT_LOAD_OP_NONE_KHR and
ename:VK_ATTACHMENT_STORE_OP_NONE_KHR, which are identically promoted from
the `apiext:VK_EXT_load_store_op_none` extension.

include::{generated}/interfaces/VK_KHR_load_store_op_none.adoc[]

=== Version History

* Revision 1, 2023-05-16 (Shahbaz Youssefi)
** Initial revision, based on VK_EXT_load_store_op_none.
33 changes: 33 additions & 0 deletions appendices/VK_KHR_shader_expect_assume.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// Copyright 2021-2024 The Khronos Group, Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_KHR_shader_expect_assume.adoc[]

=== Other Extension Metadata

*Last Modified Date*::
2023-12-06
*IP Status*::
No known IP claims.
*Contributors*::
- Kevin Petit, Arm
- Tobias Hector, AMD
- James Fitzpatrick, Imagination Technologies

=== Description

This extension allows the use of the `SPV_KHR_expect_assume` extension in
SPIR-V shader modules which enables SPIR-V producers to provide optimization
hints to the Vulkan implementation.

include::{generated}/interfaces/VK_KHR_shader_expect_assume.adoc[]

=== New SPIR-V Capabilities

* <<spirvenv-capabilities-table-ExpectAssumeKHR,ExpectAssumeKHR>>

=== Version History

* Revision 1, 2023-12-06 (Kevin Petit)
** Initial revision
Loading

0 comments on commit bf11e6d

Please sign in to comment.