Skip to content

Commit

Permalink
Change log for August 23, 2024 Vulkan 1.3.294 spec update:
Browse files Browse the repository at this point in the history
Public Issues

  * Update registry schema document to describe that XML processing
    frameworks are responsible for all defined tags and attributes, whether
    used or not, and refer to that from two rarely used attributes (public
    issue 2395).

Internal Issues

  * Initial support for generating feature requirements from XML metadata
    (internal issue 1694).
  * Allow resource access to be dynamically uniform within a subgroup via
    minor language changes in many places within the specification (internal
    issue 3745).
  * Update common draw dispatch VU 07752 to refer to the new
    <<spirvenv-image-dimensions, Compatibility Between SPIR-V Image
    Dimensions and Vulkan ImageView Types>> section for sampler-descriptor
    compatibility, and simplify related language in the
    <<textures-operation-validation, Instruction/Sampler/Image View
    Validation>> section (internal issue 3812).
  * Remove common draw indexed VU 07825, replaced by comparable VU 08798
    (internal issue 3961).
  * Fix typos in video codec XML metadata, and add more consistency check to
    the corresponding generator script (internal MR 6840).
  * Clarify VkBuildAccelerationStructureFlagBitsKHR and common build
    acceleration structure VUs to clarify that compact + update is
    explicitly allowed (internal MR 6819).
  * Update VK_NV_low_latency2 specification language to match use the same
    capitalization as the `presentID` formal parameter name in the XML and
    headers (internal MR 6837).
  * Add gitlab CI build test for new extension branches, to verify a
    ratification candidate with just that extension included can be built
    (internal issue 3955).

New Extensions

  * VK_KHR_pipeline_binary
  • Loading branch information
oddhack committed Aug 23, 2024
1 parent 55255e2 commit fb9f45c
Show file tree
Hide file tree
Showing 33 changed files with 2,532 additions and 1,057 deletions.
38 changes: 14 additions & 24 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
# Refer to the container by its SHA instead of the name, to prevent
# caching problems when updating the image.
# image: khronosgroup/docker-images:asciidoctor-spec.20240727
# There are no 'before_script' tags for most stages, because all
# prerequisites are in the default image.
image: khronosgroup/docker-images@sha256:089687083ceb36483a3917389e4278718ab19c594099634f5dd80e22540c960f

# Specify which gitlab runner to use
Expand All @@ -17,8 +19,6 @@ default:
# Verify repository license compliance
license-check:
stage: build
before_script:
# Nothing, all prerequisites are in the Docker image
script:
- reuse lint
allow_failure: false
Expand All @@ -27,8 +27,6 @@ license-check:
# Separate from the generate step to set allow_failure: false
terminology_check:
stage: build
before_script:
# Nothing, all prerequisites are in the Docker image
script:
# Internal self-test of the check_spec_links script
- ( cd scripts && pytest test*.py )
Expand All @@ -39,30 +37,30 @@ terminology_check:
- make CHECK_XREFS= allchecks
allow_failure: false

# Verify SPEC_VERSION = 1 for extension development branches
# This only runs on merge requests
spec_version_check:
# Consistency check for extension development branches
# First verify that SPEC_VERSION >= 1
# Then verify that core + extension spec builds for extension development branches
# This only runs on merge requests where CI_COMMIT_BRANCH is defined, and is
# a valid extension name, or is mapped to one in an exception list in
# scripts/testSpecVersion.py
spec_extension_branch_check:
stage: build
before_script:
# Nothing, all prerequisites are in the Docker image
script:
# Only run the test if CI_COMMIT_BRANCH is defined
- test -z "$CI_COMMIT_BRANCH" || scripts/testSpecVersion.py -branch $CI_COMMIT_BRANCH
allow_failure: false
- extension=`scripts/testSpecVersion.py -canonicalize -branch "$CI_COMMIT_BRANCH"`
# $extension will be empty if $CI_COMMIT_BRANCH is not a valid extension name
- test -z "$extension" || scripts/testSpecVersion.py -branch $extension
- test -z "$extension" || ./makeSpec -clean -spec core -extension $extension html
allow_failure: true

# Build a test spec and check against expectation, to make sure the spec toolchain works as expected
spec-toolchain:
stage: build
before_script:
# Nothing, all prerequisites are in the Docker image
script:
- ./testBuild

# Build the vulkan specification and generate any associated files (such as vulkan.h)
spec-generate:
stage: build
before_script:
# Nothing, all prerequisites are in the Docker image
script:
- NODE_PATH="/usr/lib/node_modules"
- export NODE_PATH
Expand Down Expand Up @@ -103,8 +101,6 @@ spec-generate:
# Build the vulkan sc specification and generate any associated files (such as vulkan_sc_core.h)
vksc-generate:
stage: build
before_script:
# Nothing, all prerequisites are in the Docker image
script:
- NODE_PATH="/usr/lib/node_modules"
- export NODE_PATH
Expand Down Expand Up @@ -195,8 +191,6 @@ ash-generate:
# cause problems there.
cts-framework-tests:
stage: build
before_script:
# Nothing, all prerequisites are in the Docker image
script:
# Clone the CTS GitHub repository.
# Use sparse / shallow clone since the repo is enormous and mostly not needed for these tests
Expand All @@ -221,8 +215,6 @@ h-compile:
stage: test
needs:
- spec-generate
before_script:
# Nothing, all prerequisites are in the Docker image
script:
- gcc -c -std=c11 -Igen/include -Itests -Wall -Wextra -Werror tests/htest.c
- clang -c -std=c11 -Igen/include -Itests -Wall -Wextra -Werror tests/htest.c
Expand All @@ -233,8 +225,6 @@ hpp-compile:
needs:
- spec-generate
- hpp-generate
before_script:
# Nothing, all prerequisites are in the Docker image
script:
- g++ -c -std=c++11 -Igen/include -IVulkan-Hpp -Wall -Wextra -Werror tests/hpptest.cpp
- clang++ -c -std=c++11 -Igen/include -IVulkan-Hpp -Wall -Wextra -Werror tests/hpptest.cpp
Expand Down
57 changes: 30 additions & 27 deletions ChangeLog.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -14,42 +14,45 @@ appears frequently in the change log.

'''

Change log for August 16, 2024 Vulkan 1.3.293 spec update:
Change log for August 23, 2024 Vulkan 1.3.294 spec update:

Public Issues

* Fix reference to VkPhysicalDeviceLimits::maxMemoryAllocationCount in
VkMemoryAllocateInfo (public issue 2398).
* Improve vkWriteMicromapsPropertiesEXT VUs 07573 and 07574, and remove
incomplete VU 07575 (public issue 2399).
* Fix markup in vkGetPhysicalDeviceDisplayPropertiesKHR so
VkDisplayPropertiesKHR is formatted as a link (public issue 2401).
* Merge multiple equivalent require blocks in XML and add a script to
detect them (public pull request 2404).
* Update registry schema document to describe that XML processing
frameworks are responsible for all defined tags and attributes, whether
used or not, and refer to that from two rarely used attributes (public
issue 2395).

Internal Issues

* Refactor and clarify a NOTE in VkSparseMemoryBind (internal issue 3938).
* Require VK_EXT_sample_locations for vkCmdSetSampleLocationsEXT in common
draw VU 06666 (internal issue 3944).
* Update `scripts/extdependency.py` to compute version dependencies, and
use this in the `makeSpec` script instead of a hardcoded list of version
tokens required for the requested API version (internal MR 6823).
* Add glossary entries for basic video coding block types (internal merge
request 6765).
* Add depthBoundsTestEnable language to the <<features-depthBounds,
depthBounds>> feature description (internal merge request 6806).
* Clarify VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT to better explain
exactly what it is disabling (internal merge request 6812).
* Fix VkLayerSettingEXT spec language and VU for VK_EXT_layer_settings
(internal merge request 6817).
* Use consistent wording to describe features including removal of
un-needed "`set to`" when referring to a value that is not being set
(internal merge request 6831).
* Initial support for generating feature requirements from XML metadata
(internal issue 1694).
* Allow resource access to be dynamically uniform within a subgroup via
minor language changes in many places within the specification (internal
issue 3745).
* Update common draw dispatch VU 07752 to refer to the new
<<spirvenv-image-dimensions, Compatibility Between SPIR-V Image
Dimensions and Vulkan ImageView Types>> section for sampler-descriptor
compatibility, and simplify related language in the
<<textures-operation-validation, Instruction/Sampler/Image View
Validation>> section (internal issue 3812).
* Remove common draw indexed VU 07825, replaced by comparable VU 08798
(internal issue 3961).
* Fix typos in video codec XML metadata, and add more consistency check to
the corresponding generator script (internal MR 6840).
* Clarify VkBuildAccelerationStructureFlagBitsKHR and common build
acceleration structure VUs to clarify that compact + update is
explicitly allowed (internal MR 6819).
* Update VK_NV_low_latency2 specification language to match use the same
capitalization as the `presentID` formal parameter name in the XML and
headers (internal MR 6837).
* Add gitlab CI build test for new extension branches, to verify a
ratification candidate with just that extension included can be built
(internal issue 3955).

New Extensions

* VK_NV_command_buffer_inheritance
* VK_KHR_pipeline_binary

'''

Expand Down
12 changes: 10 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ VERBOSE =
# ADOCOPTS options for asciidoc->HTML5 output

NOTEOPTS = -a editing-notes -a implementation-guide
PATCHVERSION = 293
PATCHVERSION = 294
BASEOPTS =

ifneq (,$(findstring VKSC_VERSION_1_0,$(VERSIONS)))
Expand Down Expand Up @@ -293,10 +293,11 @@ INTERFACEDEPEND = $(INTERFACEPATH)/timeMarker
SPIRVCAPDEPEND = $(SPIRVCAPPATH)/timeMarker
FORMATSDEPEND = $(FORMATSPATH)/timeMarker
SYNCDEPEND = $(SYNCPATH)/timeMarker
REQSDEPEND = $(GENERATED)/featurerequirements.adoc
RUBYDEPEND = $(RBAPIMAP)
ATTRIBFILE = $(GENERATED)/specattribs.adoc
# All generated dependencies
GENDEPENDS = $(APIDEPEND) $(VALIDITYDEPEND) $(HOSTSYNCDEPEND) $(METADEPEND) $(INTERFACEDEPEND) $(SPIRVCAPDEPEND) $(FORMATSDEPEND) $(SYNCDEPEND) $(RUBYDEPEND) $(ATTRIBFILE)
GENDEPENDS = $(APIDEPEND) $(VALIDITYDEPEND) $(HOSTSYNCDEPEND) $(METADEPEND) $(INTERFACEDEPEND) $(SPIRVCAPDEPEND) $(FORMATSDEPEND) $(SYNCDEPEND) $(REQSDEPEND) $(RUBYDEPEND) $(ATTRIBFILE)
# All non-format-specific dependencies
COMMONDOCS = $(SPECFILES) $(GENDEPENDS)

Expand Down Expand Up @@ -570,6 +571,7 @@ CLEAN_GEN_PATHS = \
$(JSAPIMAP) \
$(PYAPIMAP) \
$(RBAPIMAP) \
$(REQSDEPEND) \
$(ATTRIBFILE)

clean_generated:
Expand Down Expand Up @@ -749,6 +751,12 @@ $(INTERFACEDEPEND): $(VKXML) $(GENVK)
$(QUIET)$(MKDIR) $(INTERFACEPATH)
$(QUIET)$(PYTHON) $(GENVK) $(GENVKOPTS) -o $(INTERFACEPATH) interfaceinc

requirementsinc: $(REQSDEPEND)

$(REQSDEPEND): $(VKXML) $(GENVK)
$(QUIET)$(MKDIR) $(GENERATED)
$(QUIET)$(PYTHON) $(GENVK) $(GENVKOPTS) -o $(GENERATED) requirementsinc

# This generates a single file, so SPIRVCAPDEPEND is the full path to
# the file, rather than to a timeMarker in the same directory.
spirvcapinc: $(SPIRVCAPDEPEND)
Expand Down
41 changes: 41 additions & 0 deletions appendices/VK_KHR_pipeline_binary.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
// Copyright 2023-2024 The Khronos Group, Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

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

=== Other Extension Metadata

*Last Modified Date*::
2024-07-01
*Contributors*::
- Stu Smith, AMD
- Tobias Hector, AMD
- Alan Harrison, AMD
- Maciej Jesionowski, AMD
- Younggwan Kim, Arm
- Jan-Harald Fredriksen, Arm
- Ting Wei, Arm
- Chris Glover, Google
- Shahbaz Youssefi, Google
- Jakub Kuderski, Google
- Piotr Byszewski, Mobica
- Piers Daniell, NVIDIA
- Ralph Potter, Samsung
- Matthew Netsch, Qualcomm
- Hans-Kristian Arntzen, Valve
- Samuel Pitoiset, Valve
- Tatsuyuki Ishi, Valve

=== Description

This extension provides a method to obtain binary data associated with
individual pipelines such that applications can manage caching themselves
instead of using VkPipelineCache objects.

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

=== Version History

* Revision 1, 2021-12-10 (Chris Glover)
** Initial draft.
4 changes: 2 additions & 2 deletions appendices/VK_QCOM_multiview_per_view_viewports.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ viewport and scissor for each view, without using shader-based viewport
indexing as introduced with `apiext:VK_EXT_shader_viewport_index_layer`.

This extension adds a new way to control ViewportIndex with multiview.
When the <<features-multiview-per-view-viewports,
When the <<features-multiviewPerViewViewports,
pname:multiviewPerViewViewports>> feature is enabled and if the last
pre-rasterization shader entry point's interface does not use the
code:ViewportIndex built-in decoration, then each view of a multiview render
Expand All @@ -37,7 +37,7 @@ include::{generated}/interfaces/VK_QCOM_multiview_per_view_viewports.adoc[]
=== Issues

1) Is it possible to enable/disable the
<<features-multiview-per-view-viewports, pname:multiviewPerViewViewports>>
<<features-multiviewPerViewViewports, pname:multiviewPerViewViewports>>
feature for individual render pass instances?

*RESOLVED*: No, when the multiviewPerViewViewports feature is enabled during
Expand Down
1 change: 1 addition & 0 deletions appendices/glossary.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,7 @@ Compressed Texel Block::
elements in units of texels, and a size in bytes of the encoding in
memory.

[[glossary-constant-integral-expression]]
Constant Integral Expressions::
A SPIR-V constant instruction whose type is code:OpTypeInt.
See _Constant Instruction_ in section 2.2.1 "`Instructions`" of the
Expand Down
Loading

0 comments on commit fb9f45c

Please sign in to comment.