Skip to content

Commit 6c112cf

Browse files
committed
Change log for March 20, 2026 Vulkan 1.4.347 spec update:
Github Issues * Clarify the ordering of shader group handles written out for vkGetRayTracingShaderGroupHandlesKHR and vkGetRayTracingCaptureReplayShaderGroupHandlesKHR (public issue 1859). Internal Issues * Add consistency script check that a structure extending VkPhysicalDeviceFeatures2 must also extend VkDeviceCreateInfo (internal issue 1359). * Rework descriptor and interface chapters to place descriptor heaps first in reading order (internal issue 4011). * Clean up discussion of format compatibility for VkImageViewCreateInfo (internal issue 4507). * Clarify that deprecated parameters are not used, but must be valid in the <<legacy, Legacy appendix> introduction, and change the XML `deprecated` tag value from 'ignored' to 'unused' accordingly (internal issue 4725). * Move non-sampling instructions from the <<textures, Sampling>> to the <<images, Images>> chapter (internal MR 7650). * Fix VkGraphicsPipelineCreateInfo to prevent forcing viewMask, since there is no viewMask for fragment output (internal MR 8031). * Update the <<legacy, Legacy appendix> introduction descriptions to correspond to how such functionality is described in the generated specification (internal MR 8102). * Fix vkCmdBuildClusterAccelerationStructureIndirectNV VU for dstAddressesArray and add a new related VU (internal MR 8104). * Fix weight image sampling language for VK_QCOM_image_processing in the <<textures-input, Sampling Operations>> and <<textures-weightimage-sampler, Weight Sampler Parameters>> sections (internal MR 8109). * Require the attachmentFragmentShadingRate feature to be enabled to create FSR images in VkImageViewCreateInfo (internal MR 8124). * Describe VkShaderCreateInfoEXT::nextStage correctly as an application choice, not an implementation option, by using `can` instead of `must` (internal MR 8129). New Extensions * VK_KHR_device_fault * VK_KHR_shader_abort * VK_KHR_shader_constant_data
1 parent b71f003 commit 6c112cf

41 files changed

Lines changed: 4876 additions & 2858 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

ChangeLog.adoc

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,54 @@ appears frequently in the change log.
1414

1515
'''
1616

17+
Change log for March 20, 2026 Vulkan 1.4.347 spec update:
18+
19+
Github Issues
20+
21+
* Clarify the ordering of shader group handles written out for
22+
vkGetRayTracingShaderGroupHandlesKHR and
23+
vkGetRayTracingCaptureReplayShaderGroupHandlesKHR (public issue 1859).
24+
25+
Internal Issues
26+
27+
* Add consistency script check that a structure extending
28+
VkPhysicalDeviceFeatures2 must also extend VkDeviceCreateInfo (internal
29+
issue 1359).
30+
* Rework descriptor and interface chapters to place descriptor heaps first
31+
in reading order (internal issue 4011).
32+
* Clean up discussion of format compatibility for VkImageViewCreateInfo
33+
(internal issue 4507).
34+
* Clarify that deprecated parameters are not used, but must be valid in
35+
the <<legacy, Legacy appendix> introduction, and change the XML
36+
`deprecated` tag value from 'ignored' to 'unused' accordingly (internal
37+
issue 4725).
38+
* Move non-sampling instructions from the <<textures, Sampling>> to the
39+
<<images, Images>> chapter (internal MR 7650).
40+
* Fix VkGraphicsPipelineCreateInfo to prevent forcing viewMask, since
41+
there is no viewMask for fragment output (internal MR 8031).
42+
* Update the <<legacy, Legacy appendix> introduction descriptions to
43+
correspond to how such functionality is described in the generated
44+
specification (internal MR 8102).
45+
* Fix vkCmdBuildClusterAccelerationStructureIndirectNV VU for
46+
dstAddressesArray and add a new related VU (internal MR 8104).
47+
* Fix weight image sampling language for VK_QCOM_image_processing in the
48+
<<textures-input, Sampling Operations>> and
49+
<<textures-weightimage-sampler, Weight Sampler Parameters>> sections
50+
(internal MR 8109).
51+
* Require the attachmentFragmentShadingRate feature to be enabled to
52+
create FSR images in VkImageViewCreateInfo (internal MR 8124).
53+
* Describe VkShaderCreateInfoEXT::nextStage correctly as an application
54+
choice, not an implementation option, by using `can` instead of `must`
55+
(internal MR 8129).
56+
57+
New Extensions
58+
59+
* VK_KHR_device_fault
60+
* VK_KHR_shader_abort
61+
* VK_KHR_shader_constant_data
62+
63+
'''
64+
1765
Change log for March 13, 2026 Vulkan 1.4.346 spec update:
1866

1967
Github Issues

ChangeLogSC.adoc

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,23 @@ with any public pull requests that have been accepted.
1212

1313
-----------------------------------------------------
1414
15+
Change log for March 16, 2026 Vulkan SC 1.0.21 spec update:
16+
17+
Public issues:
18+
19+
* None
20+
21+
Internal issues:
22+
23+
* update release number to 21 for this update and reflow spec language (#277/!421)
24+
* Merge VK 1.4.344 tag to sc_main (!420)
25+
** Note this removes the Vulkan SC JSON tooling, now found in the
26+
VulkanSC-pcutil repository
27+
* Merge VK 1.4.338 tag to sc_main (!419)
28+
* Merge VK 1.4.335 tag to sc_main (!418)
29+
30+
-----------------------------------------------------
31+
1532
Change log for November 10, 2025 Vulkan SC 1.0.20 spec update:
1633

1734
* update release number to 20 for this update and reflow spec language (#273/!417)

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,12 +151,12 @@ VERBOSE =
151151
# ADOCOPTS options for asciidoc->HTML5 output
152152

153153
NOTEOPTS = -a editing-notes -a implementation-guide
154-
PATCHVERSION = 346
154+
PATCHVERSION = 347
155155
BASEOPTS =
156156

157157
ifneq (,$(findstring VKSC_VERSION_1_0,$(VERSIONS)))
158158
VKSPECREVISION := 1.2.$(PATCHVERSION)
159-
SCPATCHVERSION = 20
159+
SCPATCHVERSION = 21
160160
SPECREVISION = 1.0.$(SCPATCHVERSION)
161161
BASEOPTS = -a baserevnumber="$(VKSPECREVISION)"
162162
else
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
// Copyright 2017-2026 The Khronos Group Inc.
2+
//
3+
// SPDX-License-Identifier: CC-BY-4.0
4+
5+
include::{generated}/meta/{refprefix}VK_KHR_device_fault.adoc[]
6+
7+
=== Other Extension Metadata
8+
9+
*Last Modified Date*::
10+
2026-03-18
11+
*IP Status*::
12+
No known IP claims.
13+
*Contributors*::
14+
- Ralph Potter, Samsung
15+
- Craig Graham, Samsung
16+
- Stuart Smith, AMD
17+
- Jan-Harald Fredriksen, ARM
18+
- Mark Bellamy, ARM
19+
- Andrew Ellem, Google
20+
- Alex Walters, IMG
21+
- Jeff Bolz, NVIDIA
22+
- Baldur Karlsson, Valve
23+
- Adrian Ravai, Samsung
24+
- Peter Gal, Samsung
25+
- Matthew Netsch, QUALCOMM
26+
- Tobias Hector, AMD
27+
- Alan Harrison, AMD
28+
- Vikram Tarikere, IMG
29+
- Jon Leech, Khronos
30+
- Samuel Pitoiset, Valve
31+
32+
=== Description
33+
34+
Device loss can be triggered by a variety of issues, including invalid API
35+
usage, implementation errors, or hardware failures.
36+
This extension introduces two new commands:
37+
38+
- flink:vkGetDeviceFaultReportsKHR
39+
- flink:vkGetDeviceFaultDebugInfoKHR
40+
41+
flink:vkGetDeviceFaultReportsKHR allows developers to query for additional
42+
information on GPU faults which may have caused device loss, and to generate
43+
binary crash dumps, which may be loaded into external tools for further
44+
diagnosis.
45+
Additionally this command allows developers to query for additional
46+
information on GPU faults which were internally recovered by the
47+
implementation.
48+
49+
flink:vkGetDeviceFaultReportsKHR differs from flink:vkGetDeviceFaultInfoEXT
50+
in that it can be called at any time, is able to report faults which do not
51+
result in ename:VK_ERROR_DEVICE_LOST and allows the caller to wait for such
52+
an error to occur.
53+
54+
flink:vkGetDeviceFaultDebugInfoKHR provides a separate interface which must:
55+
only be called when a device loss has occurred to provide extended GPU
56+
vendor specific crash post-mortem information.
57+
58+
include::{generated}/interfaces/VK_KHR_device_fault.adoc[]
59+
60+
=== Version History
61+
62+
* Revision 0, 2024-03-01 (Ralph Potter)
63+
** Internal Revision
64+
* Revision 1, 2025-06-10 (Craig Graham)
65+
** Revised API to support async fault queries.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// Copyright 2017-2026 The Khronos Group Inc.
2+
//
3+
// SPDX-License-Identifier: CC-BY-4.0
4+
5+
include::{generated}/meta/{refprefix}VK_KHR_shader_abort.adoc[]
6+
7+
=== Other Extension Metadata
8+
9+
*Last Modified Date*::
10+
2026-03-18
11+
*IP Status*::
12+
No known IP claims.
13+
*Contributors*::
14+
- Tobias Hector, AMD
15+
- Piers Daniell, Nvidia
16+
- Craig Graham, Samsung
17+
- Erik Hogeman, ARM
18+
- Ralph Potter, Samsung
19+
- Vikram Tarikere, IMG
20+
21+
22+
=== Description
23+
24+
This extension enables the use of the code:OpAbortKHR instruction in
25+
shaders.
26+
27+
include::{generated}/interfaces/VK_KHR_shader_abort.adoc[]
28+
29+
=== Version History
30+
31+
* Revision 1, 2024-08-22 (Tobias Hector)
32+
** Initial revision
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// Copyright 2017-2026 The Khronos Group Inc.
2+
//
3+
// SPDX-License-Identifier: CC-BY-4.0
4+
5+
include::{generated}/meta/{refprefix}VK_KHR_shader_constant_data.adoc[]
6+
7+
=== Other Extension Metadata
8+
9+
*Last Modified Date*::
10+
2026-03-18
11+
*IP Status*::
12+
No known IP claims.
13+
*Contributors*::
14+
- Tobias Hector, AMD
15+
- Piers Daniell, Nvidia
16+
- Craig Graham, Samsung
17+
- Vikram Tarikere, IMG
18+
19+
=== Description
20+
21+
This extension allows the use of the `SPV_KHR_constant_data` extension in
22+
SPIR-V shader modules which enables the specification and specialization of
23+
arrays of constant data.
24+
25+
include::{generated}/interfaces/VK_KHR_shader_constant_data.adoc[]
26+
27+
=== New SPIR-V Capabilities
28+
29+
* <<spirvenv-capabilities-table-ConstantDataKHR,ConstantDataKHR>>
30+
31+
=== Version History
32+
33+
* Revision 1, 2024-10-30 (Tobias Hector)
34+
** Initial revision

appendices/legacy.adoc

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,28 @@
99
Functionality in the specification such as commands and structures may: be
1010
marked as _legacy_.
1111
This label indicates that either functionality that supersedes it is
12-
available in a newer core version, or the functionality has simply fallen
13-
out of favor for other reasons.
12+
available, or that the functionality has simply fallen out of favor for
13+
other reasons.
1414
Forward-looking applications should: avoid using functionality marked as
1515
legacy where possible.
1616

17-
A link to an explanatory section is provided to explain why the
18-
functionality was marked as legacy, what functionality supersedes it (if
19-
any), and what applications should: do instead.
17+
All legacy functionality is tagged in the XML registry, with information
18+
about what supersedes it.
19+
Any extension or version can tag functionality in any extension or version
20+
as legacy in the XML, however this is not always reflected in the
21+
specification.
22+
Functionality is only tagged as legacy in the specification if the
23+
superseding solution is added by a core version or extension at the same
24+
level or higher in the following hierarchy:
2025

21-
Newer extensions may: also provide functionality that supersedes existing
22-
functionality, but the original functionality will not be tagged as legacy
23-
in the specification unless a superseding solution has been fully promoted
24-
to the core API.
25-
Explanatory text will still be included below for these cases as reference.
26+
. Core Version
27+
. KHR extension
28+
. EXT extension
29+
. Vendor extension
30+
31+
An explanatory section is provided in all cases to explain why functionality
32+
was marked as legacy, what functionality supersedes it (if any), and what
33+
applications should: do instead.
2634

2735
[NOTE]
2836
====
@@ -48,6 +56,17 @@ See <<extendingvulkan-compatibility-deprecation, the Deprecation section of
4856
the Extensions chapter>> for more information.
4957
====
5058

59+
In very rare instances, some functionality will be tagged as unused; this
60+
indicates when functionality was introduced and later discovered to be
61+
fundamentally flawed in some fashion.
62+
Application input in these cases must: be well formed to handle
63+
implementations which tried to make use of this functionality, newer
64+
applications must: not use the functionality, and newer implementations
65+
must: do nothing with any input they receive.
66+
Unused parameters must: be zeroed out, unused functions must: not be called,
67+
unused enums must: not be passed to APIs, and unused structure types must:
68+
not be passed in pname:pNext chains.
69+
5170

5271
== List of Legacy Functionality
5372

@@ -113,6 +132,10 @@ commands operating on that instance or any of its child objects.
113132
At the time this was marked as legacy, there were no known device-only
114133
layers and no compelling reason to create one.
115134

135+
The pname:enabledLayerCount parameter of slink:VkDeviceCreateInfo must: be
136+
set to 0.
137+
138+
116139
ifdef::VK_GRAPHICS_VERSION_1_2,VK_KHR_create_renderpass2[]
117140
[[legacy-renderpass2]]
118141
=== Render Pass Functions: Superseded via version 2

build_tests/expectations/all-1.0.html

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ <h3 id="lorem-subchapter"><a class="anchor" href="#lorem-subchapter"></a>2.1. Lo
160160
</div>
161161
<div id="vkCmdCopyBufferToImage2KHR" class="listingblock">
162162
<div class="content">
163-
<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_KHR_copy_commands2</span>
163+
<pre class="rouge highlight"><code data-lang="c"><span class="c1">// Provided by VK_KHR_copy_commands2</span>
164164
<span class="kt">void</span> <span class="nf">vkCmdCopyBufferToImage2KHR</span><span class="p">(</span>
165165
<span class="n">VkCommandBuffer</span> <span class="n">commandBuffer</span><span class="p">,</span>
166166
<span class="k">const</span> <span class="n">VkCopyBufferToImageInfo2</span><span class="o">*</span> <span class="n">pCopyBufferToImageInfo</span><span class="p">);</span></code></pre>
@@ -325,7 +325,7 @@ <h3 id="lorem-subchapter"><a class="anchor" href="#lorem-subchapter"></a>2.1. Lo
325325
</div>
326326
<div id="VkCopyBufferToImageInfo2" class="listingblock">
327327
<div class="content">
328-
<pre class="rouge highlight"><code data-lang="c++"><span class="k">typedef</span> <span class="k">struct</span> <span class="nc">VkCopyBufferToImageInfo2</span> <span class="p">{</span>
328+
<pre class="rouge highlight"><code data-lang="c"><span class="k">typedef</span> <span class="k">struct</span> <span class="n">VkCopyBufferToImageInfo2</span> <span class="p">{</span>
329329
<span class="n">VkStructureType</span> <span class="n">sType</span><span class="p">;</span>
330330
<span class="k">const</span> <span class="kt">void</span><span class="o">*</span> <span class="n">pNext</span><span class="p">;</span>
331331
<span class="n">VkBuffer</span> <span class="n">srcBuffer</span><span class="p">;</span>
@@ -338,7 +338,7 @@ <h3 id="lorem-subchapter"><a class="anchor" href="#lorem-subchapter"></a>2.1. Lo
338338
</div>
339339
<div id="VkCopyBufferToImageInfo2KHR" class="listingblock">
340340
<div class="content">
341-
<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_KHR_copy_commands2</span>
341+
<pre class="rouge highlight"><code data-lang="c"><span class="c1">// Provided by VK_KHR_copy_commands2</span>
342342
<span class="c1">// Equivalent to VkCopyBufferToImageInfo2</span>
343343
<span class="k">typedef</span> <span class="n">VkCopyBufferToImageInfo2</span> <span class="n">VkCopyBufferToImageInfo2KHR</span><span class="p">;</span></code></pre>
344344
</div>
@@ -523,7 +523,7 @@ <h3 id="lorem-subchapter"><a class="anchor" href="#lorem-subchapter"></a>2.1. Lo
523523
</div>
524524
<div id="VkBufferImageCopy2" class="listingblock">
525525
<div class="content">
526-
<pre class="rouge highlight"><code data-lang="c++"><span class="k">typedef</span> <span class="k">struct</span> <span class="nc">VkBufferImageCopy2</span> <span class="p">{</span>
526+
<pre class="rouge highlight"><code data-lang="c"><span class="k">typedef</span> <span class="k">struct</span> <span class="n">VkBufferImageCopy2</span> <span class="p">{</span>
527527
<span class="n">VkStructureType</span> <span class="n">sType</span><span class="p">;</span>
528528
<span class="k">const</span> <span class="kt">void</span><span class="o">*</span> <span class="n">pNext</span><span class="p">;</span>
529529
<span class="n">VkDeviceSize</span> <span class="n">bufferOffset</span><span class="p">;</span>
@@ -537,7 +537,7 @@ <h3 id="lorem-subchapter"><a class="anchor" href="#lorem-subchapter"></a>2.1. Lo
537537
</div>
538538
<div id="VkBufferImageCopy2KHR" class="listingblock">
539539
<div class="content">
540-
<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_KHR_copy_commands2</span>
540+
<pre class="rouge highlight"><code data-lang="c"><span class="c1">// Provided by VK_KHR_copy_commands2</span>
541541
<span class="c1">// Equivalent to VkBufferImageCopy2</span>
542542
<span class="k">typedef</span> <span class="n">VkBufferImageCopy2</span> <span class="n">VkBufferImageCopy2KHR</span><span class="p">;</span></code></pre>
543543
</div>
@@ -670,7 +670,7 @@ <h2 id="hic"><a class="anchor" href="#hic"></a>3. Host Image Copy</h2>
670670
</div>
671671
<div id="vkCopyMemoryToImageEXT" class="listingblock">
672672
<div class="content">
673-
<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_EXT_host_image_copy</span>
673+
<pre class="rouge highlight"><code data-lang="c"><span class="c1">// Provided by VK_EXT_host_image_copy</span>
674674
<span class="n">VkResult</span> <span class="nf">vkCopyMemoryToImageEXT</span><span class="p">(</span>
675675
<span class="n">VkDevice</span> <span class="n">device</span><span class="p">,</span>
676676
<span class="k">const</span> <span class="n">VkCopyMemoryToImageInfo</span><span class="o">*</span> <span class="n">pCopyMemoryToImageInfo</span><span class="p">);</span></code></pre>
@@ -776,7 +776,7 @@ <h2 id="hic"><a class="anchor" href="#hic"></a>3. Host Image Copy</h2>
776776
</div>
777777
<div id="VkCopyMemoryToImageInfoEXT" class="listingblock">
778778
<div class="content">
779-
<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_EXT_host_image_copy</span>
779+
<pre class="rouge highlight"><code data-lang="c"><span class="c1">// Provided by VK_EXT_host_image_copy</span>
780780
<span class="c1">// Equivalent to VkCopyMemoryToImageInfo</span>
781781
<span class="k">typedef</span> <span class="n">VkCopyMemoryToImageInfo</span> <span class="n">VkCopyMemoryToImageInfoEXT</span><span class="p">;</span></code></pre>
782782
</div>
@@ -867,7 +867,7 @@ <h2 id="hic"><a class="anchor" href="#hic"></a>3. Host Image Copy</h2>
867867
</div>
868868
<div id="VkMemoryToImageCopyEXT" class="listingblock">
869869
<div class="content">
870-
<pre class="rouge highlight"><code data-lang="c++"><span class="c1">// Provided by VK_EXT_host_image_copy</span>
870+
<pre class="rouge highlight"><code data-lang="c"><span class="c1">// Provided by VK_EXT_host_image_copy</span>
871871
<span class="c1">// Equivalent to VkMemoryToImageCopy</span>
872872
<span class="k">typedef</span> <span class="n">VkMemoryToImageCopy</span> <span class="n">VkMemoryToImageCopyEXT</span><span class="p">;</span></code></pre>
873873
</div>

0 commit comments

Comments
 (0)