Skip to content

Commit b71f003

Browse files
committed
Change log for March 13, 2026 Vulkan 1.4.346 spec update:
Github Issues * Clarify winding order for micromap triangle 3 (public issue 2686). * Clarify VkStructureType naming derivation in the <<fundamentals>> chapter to avoid double underscores (public PR 2698). Internal Issues * Add <<glossary>> definitions of "`Undefined Values`" and "`Poison`". Use the latter throughout the spec where relevant in place of the current "`undefined values`" terminology (internal issue 4442). * Clarify interactions between VK_EXT_rasterization_order_attachment_access and dynamic rendering for VkSubpassDescriptionFlagBits and in the extension appendix (internal issue 4627). * Clarify binding reports on sparse objects in the VK_EXT_device_address_binding_report appendix (internal issue 4674). * Require that two SPIR-V variables placed in the same Location have the same numeric type, not the same "`underlying type`" (internal issue 4722). * Move LongVector VUs 12295 and 12297 from runtime SPIR-V to standalone SPIR-V (internal MR 8106). * Pass `supersededby` XML attribute into VulkanObject (internal MR 8107). * Add `returnedonly` to VkDeviceFaultAddressInfoEXT and VkDeviceFaultVendorInfoEXT XML definitions (internal MR 8121). * Add VkPipeline*FlagBits types unconditionally in Vulkan 1.0 to work around modular headers problems (internal MR 8122). * Move VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE to VK_COMPUTE_VERSION_1_2 XML feature from VK_BASE_VERSION_1_0 (internal MR 8123). * Remove duplicate VUs from vkCmdCopyAccelerationStructureKHR (internal MR 8125). New Extensions * VK_KHR_device_address_commands
1 parent bde26d7 commit b71f003

76 files changed

Lines changed: 4166 additions & 617 deletions

File tree

Some content is hidden

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

.gitlab-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ proposed-check:
5656
spec_extension_branch_check:
5757
stage: build
5858
script:
59-
- python3 scripts/testSpecVersion.py -branch "$CI_COMMIT_BRANCH" -test -build
59+
- python3 scripts/testSpecVersion.py -branch "$CI_COMMIT_BRANCH" -test -build -build_log
6060
allow_failure: false
6161

6262
# Build a test spec and check against expectation, to make sure the spec toolchain works as expected

ChangeLog.adoc

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

1515
'''
1616

17+
Change log for March 13, 2026 Vulkan 1.4.346 spec update:
18+
19+
Github Issues
20+
21+
* Clarify winding order for micromap triangle 3 (public issue 2686).
22+
* Clarify VkStructureType naming derivation in the <<fundamentals>>
23+
chapter to avoid double underscores (public PR 2698).
24+
25+
Internal Issues
26+
27+
* Add <<glossary>> definitions of "`Undefined Values`" and "`Poison`". Use
28+
the latter throughout the spec where relevant in place of the current
29+
"`undefined values`" terminology (internal issue 4442).
30+
* Clarify interactions between
31+
VK_EXT_rasterization_order_attachment_access and dynamic rendering for
32+
VkSubpassDescriptionFlagBits and in the extension appendix (internal
33+
issue 4627).
34+
* Clarify binding reports on sparse objects in the
35+
VK_EXT_device_address_binding_report appendix (internal issue 4674).
36+
* Require that two SPIR-V variables placed in the same Location have the
37+
same numeric type, not the same "`underlying type`" (internal issue
38+
4722).
39+
* Move LongVector VUs 12295 and 12297 from runtime SPIR-V to standalone
40+
SPIR-V (internal MR 8106).
41+
* Pass `supersededby` XML attribute into VulkanObject (internal MR 8107).
42+
* Add `returnedonly` to VkDeviceFaultAddressInfoEXT and
43+
VkDeviceFaultVendorInfoEXT XML definitions (internal MR 8121).
44+
* Add VkPipeline*FlagBits types unconditionally in Vulkan 1.0 to work
45+
around modular headers problems (internal MR 8122).
46+
* Move VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE to
47+
VK_COMPUTE_VERSION_1_2 XML feature from VK_BASE_VERSION_1_0 (internal MR
48+
8123).
49+
* Remove duplicate VUs from vkCmdCopyAccelerationStructureKHR (internal MR
50+
8125).
51+
52+
New Extensions
53+
54+
* VK_KHR_device_address_commands
55+
56+
'''
57+
1758
Change log for March 6, 2026 Vulkan 1.4.345 spec update:
1859

1960
Github Issues

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ VERBOSE =
151151
# ADOCOPTS options for asciidoc->HTML5 output
152152

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

157157
ifneq (,$(findstring VKSC_VERSION_1_0,$(VERSIONS)))

appendices/VK_ARM_rasterization_order_attachment_access.adoc

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ include::{generated}/meta/{refprefix}VK_ARM_rasterization_order_attachment_acces
77
=== Other Extension Metadata
88

99
*Last Modified Date*::
10-
2021-11-12
10+
2026-01-16
1111
*IP Status*::
1212
No known IP claims.
1313
*Contributors*::
@@ -33,14 +33,7 @@ include::{generated}/interfaces/VK_ARM_rasterization_order_attachment_access.ado
3333

3434
=== Issues
3535

36-
1) Is there any interaction with the `apiext:VK_KHR_dynamic_rendering`
37-
extension?
38-
39-
No.
40-
This extension only affects reads from input attachments.
41-
Render pass instances begun with flink:vkCmdBeginRenderingKHR do not have
42-
input attachments and a different mechanism will be needed to provide
43-
similar functionality in this case.
36+
See the Issues for `apiext:VK_EXT_rasterization_order_attachment_access`.
4437

4538
=== Examples
4639

@@ -50,3 +43,4 @@ None.
5043

5144
* Revision 1, 2021-11-12 (Jan-Harald Fredriksen)
5245
** Initial draft
46+
** Updated Issues section 2026-01-16

appendices/VK_EXT_device_address_binding_report.adoc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,12 @@ If the device memory is subsequently bound to a buffer or image via
125125
vkBind*Memory, the callbacks should be triggered a second time, reporting
126126
the association between virtual address range and the buffer/image.
127127

128+
12.) Should binding reports be emitted for vkQueueBindSparse() operations?
129+
130+
*RESOLVED*: binding reports for sparse objects are best effort, some
131+
implementations might report events on vkQueueBindSparse() other
132+
implementations might report events on sparse object creation/destruction.
133+
128134
=== Version History
129135

130136
* Revision 1, 2020-09-23 (Ralph Potter)

appendices/VK_EXT_opacity_micromap.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ This extension provides:
5050

5151
include::{generated}/interfaces/VK_EXT_opacity_micromap.adoc[]
5252

53+
[[opacity-micromap-reference-code]]
5354
=== Reference Code
5455

5556
[source,c++]

appendices/VK_EXT_rasterization_order_attachment_access.adoc

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ include::{generated}/meta/{refprefix}VK_EXT_rasterization_order_attachment_acces
77
=== Other Extension Metadata
88

99
*Last Modified Date*::
10-
2022-07-04
10+
2026-01-16
1111
*IP Status*::
1212
No known IP claims.
1313
*Contributors*::
@@ -23,6 +23,44 @@ order, without explicit synchronization.
2323

2424
include::{generated}/interfaces/VK_EXT_rasterization_order_attachment_access.adoc[]
2525

26+
=== Issues
27+
28+
1) What are the interactions with the `apiext:VK_KHR_dynamic_rendering` or
29+
`apiext:VK_KHR_dynamic_rendering_local_read` extensions?
30+
31+
*RESOLVED*
32+
33+
Render pass instances begun with flink:vkCmdBeginRenderingKHR do not have
34+
input attachments and thus a different mechanism was needed to provide
35+
similar functionality in this case.
36+
This was provided by `apiext:VK_KHR_dynamic_rendering_local_read`, which
37+
enables reads from attachments and resources written by previous fragment
38+
shaders within a dynamic render pass.
39+
40+
Render pass instances begun with flink:vkCmdBeginRenderingKHR do not have
41+
subpasses, and there is no equivalent to the following flag bits for these
42+
instances:
43+
44+
* VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT
45+
* VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT
46+
* VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
47+
48+
Instead, the behavior is controlled only by the corresponding pipeline flag
49+
bits, i.e.:
50+
51+
* VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT
52+
* VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT
53+
* VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT
54+
55+
2) What is the interaction with the `apiext:VK_EXT_shader_object` extension?
56+
57+
*RESOLVED*
58+
59+
This functionality is not available for draw calls using shader objects
60+
because the `apiext:VK_EXT_shader_object` extension depends on
61+
`apiext:VK_KHR_dynamic_rendering`, and thus neither the subpass flags nor
62+
the pipeline flags defined in this extension can be specified.
63+
2664
=== Examples
2765

2866
None.
@@ -31,3 +69,4 @@ None.
3169

3270
* Revision 1, 2022-07-04 (Jan-Harald Fredriksen)
3371
** Initial draft
72+
** Updated Issues section 2026-01-16
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
// Copyright 2025-2026 The Khronos Group Inc.
2+
//
3+
// SPDX-License-Identifier: CC-BY-4.0
4+
5+
include::{generated}/meta/{refprefix}VK_KHR_device_address_commands.adoc[]
6+
7+
=== Other Extension Metadata
8+
9+
*Last Modified Date*::
10+
2026-03-10
11+
*Contributors*::
12+
- Tobias Hector, AMD
13+
- Matthew Netsch, Qualcomm Technologies, Inc
14+
- Jan-Harald Fredriksen, Arm
15+
- Mike Blumenkrantz, Valve
16+
- Allan MacKinnon, Google
17+
- Daniel Koch, NVIDIA
18+
- Autumn Ashton, Valve
19+
- Piers Daniell, NVIDIA
20+
- Stuart Smith, AMD
21+
- Caterina Shablia, Collabora
22+
- Piotr Byszewski, Cognizant
23+
- James Fitzpatrick, Imagination
24+
- Daniel Story, Nintendo
25+
- Baldur Karlsson, Valve
26+
- Jon Leech, Khronos
27+
- Samuel Pitoiset, Valve
28+
- Lionel Landwerlin, Intel
29+
- Hans-Kristian Arntzen, Valve
30+
- Žiga Markuš, LunarG
31+
- Spencer Fricke, Lunarg
32+
- Per Inge Mathisen, Arm
33+
- Vikram Kushwaha, NVIDIA
34+
- Ralph Potter, Samsung
35+
- Marijn Suijten, Traverse Research
36+
- Ricard Garcia, Igalia
37+
- Mengyang Liu, AMD
38+
- Artem Kharytoniuk, LunarG
39+
- Marty Johnson, Khronos
40+
- Alyssa Rosenzweig, Valve
41+
42+
43+
=== Description
44+
45+
This extension enables applications to use device addresses in place of
46+
buffer objects for most functionality.
47+
48+
include::{generated}/interfaces/VK_KHR_device_address_commands.adoc[]
49+
50+
51+
=== Version History
52+
53+
* Revision 1, 2026-03-10 (Tobias Hector)
54+
** Initial revision

appendices/VK_NV_shader_image_footprint.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ This extension has a number of limitations.
7070
The code:OpImageSampleFootprintNV instruction only supports for two- and
7171
three-dimensional textures.
7272
Footprint evaluation only supports the CLAMP_TO_EDGE wrap mode; results are
73-
undefined: for all other wrap modes.
73+
poison for all other wrap modes.
7474
Only a limited set of granularity values and that set does not support
7575
separate coverage information for each texel in the original image.
7676

appendices/glossary.adoc

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1600,6 +1600,15 @@ Point Sampling (Rasterization)::
16001600
polygon according to the tie-breaking rules.
16011601
endif::VK_GRAPHICS_VERSION_1_0[]
16021602

1603+
ifdef::VK_COMPUTE_VERSION_1_0[]
1604+
Poison::
1605+
Equivalent to poison in the <<spirv-spec,SPIR-V specification>>.
1606+
Can only be generated by shader operations.
1607+
Poison values made available to the host or read by device operations
1608+
outside of a SPIR-V instruction behave as undefined: values for all such
1609+
accesses.
1610+
endif::VK_COMPUTE_VERSION_1_0[]
1611+
16031612
Potential Format Features::
16041613
The union of all elink:VkFormatFeatureFlagBits that the implementation
16051614
supports for a specified elink:VkFormat, over all supported image
@@ -2146,6 +2155,14 @@ Timeline Semaphore::
21462155
of ename:VK_SEMAPHORE_TYPE_TIMELINE.
21472156
endif::VK_BASE_VERSION_1_2,VK_KHR_timeline_semaphore[]
21482157

2158+
Undefined Value::
2159+
A value that does not have a specific defined bit pattern.
2160+
Undefined values are not
2161+
<<fundamentals-commandsyntax-results-lifetime,invariant>>.
2162+
ifdef::VK_COMPUTE_VERSION_1_0[]
2163+
When read by a shader operation, undefined: values are read as _poison_.
2164+
endif::VK_COMPUTE_VERSION_1_0[]
2165+
21492166
ifdef::VK_COMPUTE_VERSION_1_0[]
21502167
Uniform Texel Buffer::
21512168
A descriptor type that represents a buffer view, and supports

0 commit comments

Comments
 (0)