Skip to content

Commit 9c6d565

Browse files
committed
Change log for August 29, 2025 Vulkan 1.4.326 spec update:
Github Issues * Make descriptions of <<extendingvulkan-functionalitylevels, Functionality Levels>> and <<extendingvulkan-device-extensions, Device Extensions>> consistent with the glossary (public issue 922). * Clarify resource state between <<synchronization-queue-transfers-acquire, acquire>> and <<synchronization-queue-transfers-release, release>> queue family ownership transfers and for vkQueueSubmit (public issue 1050). * Require appropriate aspect masks for framebuffers in VkRenderingInfo and VkFramebufferCreateInfo (public issue 1469). * Clarify how attachments become undefined when not preserved for VkRenderPassCreateInfo, VkSubpassDescription, VkRenderPassCreateInfo2, and in the <<renderpass-load-operations, Render Pass Load>> and <<renderpass-store-operations, Render Pass Store>> Operations sections (public issue 1557). * Fix typos in VK_EXT_fragment_density_map appendix (public issue 1742). * Generate reference page component sources for Antora in the docs.vulkan.org site build (public PR 2553). * Document use of custom `len` attribute value for video.xml `StdVideoH265HrdParameters` (public issue 2557). * Fix common draw validity VU 09548 when vkCmdSetRenderingAttachmentLocations is called (public issue 2565). * Clarify that VK_WHOLE_SIZE can be used for VkDeviceMemory (public issue 2568). Internal Issues * Add `requiredlimittype` attribute for structs, check consistency of `limittype` attributes on members, and add missing attribute values (internal issue 4043). * Clarify <<synchronization-image-barrier-layout-transition-order, implicit layout transition ordering>> (internal issue 4302). * Specify in the <<fundamentals-binaryresults, Opaque Binary Data Results>> section that vkGet* functions returning opaque binary data may take their size/data arguments in an extensible structure (internal issue 4413). * Add VUs requiring that minDepthBounds must be less than or equal to maxDepthBounds for vkCmdSetDepthBounds and VkGraphicsPipelineCreateInfo (internal issue 4418). * Add FeatureRequirements for CTS to VulkanObject (internal issue 3992). * <<deprecation-devicelayers, Deprecate device layers>> (internal MR 7388). * Fixes for VUIDs and other language of VK_ARM_data_graph (internal MR 7478). * Merge Vulkan SC 1.0.19 changes back to main branch (internal MR 7573). * Tag VkPipelineMultisampleStateCreateInfo::pSampleMask as "noautovalidity" in XML, since it requires special handling in tooling (internal MR 7579). * Add a <<spirvenv-buffer-indexing, Buffer Indexing Calculations>> case for OpCooperativeVector* (internal MR 7585). * Clarify that VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT was not added to VK_KHR_maintenance9 in the VK_EXT_vertex_attribute_robustness appendix (internal MR 7590). * Document that the tileShadingApron feature is optional in the VK_QCOM_tile_shading appendix (internal MR 7594). * Tag some VkDeviceAddress members with missing `"optional"` in XML (internal MR 7601). * Remove unreachable VK_KHR_shader_untyped_pointers VUs in the runtime SPIR-V section (internal MR 7605). * Cleanup markup for VK_KHR_shader_untyped_pointers and move OpUntypedVariableKHR VU 11167 to the standalone SPIR-V section (internal MR 7606). * Move buffer device address VU 06314 to the standalone SPIR-V section (internal MR 7608). * Add vkCmdBeginRendering VU to catch invalid dynamic rendering begin (internal MR 7610). * Add missing vkGetDevice{Buffer,Image}MemoryRequirements to cases where VkMemoryRequirements2 can be extended by VkMemoryDedicatedRequirements (internal MR 7612).
1 parent f6e45bb commit 9c6d565

37 files changed

+1066
-833
lines changed

ChangeLog.adoc

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

1515
'''
1616

17+
Change log for August 29, 2025 Vulkan 1.4.326 spec update:
18+
19+
Github Issues
20+
21+
* Make descriptions of <<extendingvulkan-functionalitylevels,
22+
Functionality Levels>> and <<extendingvulkan-device-extensions, Device
23+
Extensions>> consistent with the glossary (public issue 922).
24+
* Clarify resource state between
25+
<<synchronization-queue-transfers-acquire, acquire>> and
26+
<<synchronization-queue-transfers-release, release>> queue family
27+
ownership transfers and for vkQueueSubmit (public issue 1050).
28+
* Require appropriate aspect masks for framebuffers in VkRenderingInfo and
29+
VkFramebufferCreateInfo (public issue 1469).
30+
* Clarify how attachments become undefined when not preserved for
31+
VkRenderPassCreateInfo, VkSubpassDescription, VkRenderPassCreateInfo2,
32+
and in the <<renderpass-load-operations, Render Pass Load>> and
33+
<<renderpass-store-operations, Render Pass Store>> Operations sections
34+
(public issue 1557).
35+
* Fix typos in VK_EXT_fragment_density_map appendix (public issue 1742).
36+
* Generate reference page component sources for Antora in the
37+
docs.vulkan.org site build (public PR 2553).
38+
* Document use of custom `len` attribute value for video.xml
39+
`StdVideoH265HrdParameters` (public issue 2557).
40+
* Fix common draw validity VU 09548 when
41+
vkCmdSetRenderingAttachmentLocations is called (public issue 2565).
42+
* Clarify that VK_WHOLE_SIZE can be used for VkDeviceMemory (public issue
43+
2568).
44+
45+
Internal Issues
46+
47+
* Add `requiredlimittype` attribute for structs, check consistency of
48+
`limittype` attributes on members, and add missing attribute values
49+
(internal issue 4043).
50+
* Clarify <<synchronization-image-barrier-layout-transition-order,
51+
implicit layout transition ordering>> (internal issue 4302).
52+
* Specify in the <<fundamentals-binaryresults, Opaque Binary Data
53+
Results>> section that vkGet* functions returning opaque binary data may
54+
take their size/data arguments in an extensible structure (internal
55+
issue 4413).
56+
* Add VUs requiring that minDepthBounds must be less than or equal to
57+
maxDepthBounds for vkCmdSetDepthBounds and VkGraphicsPipelineCreateInfo
58+
(internal issue 4418).
59+
* Add FeatureRequirements for CTS to VulkanObject (internal issue 3992).
60+
* <<deprecation-devicelayers, Deprecate device layers>> (internal MR
61+
7388).
62+
* Fixes for VUIDs and other language of VK_ARM_data_graph (internal MR
63+
7478).
64+
* Merge Vulkan SC 1.0.19 changes back to main branch (internal MR 7573).
65+
* Tag VkPipelineMultisampleStateCreateInfo::pSampleMask as
66+
"noautovalidity" in XML, since it requires special handling in tooling
67+
(internal MR 7579).
68+
* Add a <<spirvenv-buffer-indexing, Buffer Indexing Calculations>> case
69+
for OpCooperativeVector* (internal MR 7585).
70+
* Clarify that VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT was
71+
not added to VK_KHR_maintenance9 in the
72+
VK_EXT_vertex_attribute_robustness appendix (internal MR 7590).
73+
* Document that the tileShadingApron feature is optional in the
74+
VK_QCOM_tile_shading appendix (internal MR 7594).
75+
* Tag some VkDeviceAddress members with missing `"optional"` in XML
76+
(internal MR 7601).
77+
* Remove unreachable VK_KHR_shader_untyped_pointers VUs in the runtime
78+
SPIR-V section (internal MR 7605).
79+
* Cleanup markup for VK_KHR_shader_untyped_pointers and move
80+
OpUntypedVariableKHR VU 11167 to the standalone SPIR-V section (internal
81+
MR 7606).
82+
* Move buffer device address VU 06314 to the standalone SPIR-V section
83+
(internal MR 7608).
84+
* Add vkCmdBeginRendering VU to catch invalid dynamic rendering begin
85+
(internal MR 7610).
86+
* Add missing vkGetDevice{Buffer,Image}MemoryRequirements to cases where
87+
VkMemoryRequirements2 can be extended by VkMemoryDedicatedRequirements
88+
(internal MR 7612).
89+
90+
'''
91+
1792
Change log for August 8, 2025 Vulkan 1.4.325 spec update:
1893

1994
Github Issues

ChangeLogSC.adoc

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

1313
-----------------------------------------------------
1414
15+
Change log for August 1, 2025 Vulkan SC 1.0.19 spec update:
16+
17+
* update release number to 19 for this update and reflow spec language (#258/!408)
18+
19+
Public issues:
20+
21+
* None
22+
23+
Internal issues:
24+
25+
* update json parser generator to explicitly support "0" in flag maps (!406)
26+
* Clarify VK_PIPELINE_CACHE_CREATE_USE_APPLICATION_STORAGE_BIT flag
27+
after Vulkan object model rewrite (#267/!405)
28+
* Disable deprecation for Vulkan SC, pending clarifications (#269/!407)
29+
* Merge VK 1.4.319 tag to sc_main (!404)
30+
* Merge VK 1.4.318 tag to sc_main (!401)
31+
* Merge VK 1.4.316 tag to sc_main (!400)
32+
33+
-----------------------------------------------------
34+
1535
Change log for March 24, 2025 Vulkan SC 1.0.18 spec update:
1636

1737
* update release number to 18 for this update and reflow spec language (!398)

Makefile

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

151151
NOTEOPTS = -a editing-notes -a implementation-guide
152-
PATCHVERSION = 325
152+
PATCHVERSION = 326
153153
BASEOPTS =
154154

155155
ifneq (,$(findstring VKSC_VERSION_1_0,$(VERSIONS)))
156156
VKSPECREVISION := 1.2.$(PATCHVERSION)
157-
SCPATCHVERSION = 18
157+
SCPATCHVERSION = 19
158158
SPECREVISION = 1.0.$(SCPATCHVERSION)
159159
BASEOPTS = -a baserevnumber="$(VKSPECREVISION)"
160160
else

appendices/VK_ARM_data_graph.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ include::{generated}/meta/{refprefix}VK_ARM_data_graph.adoc[]
3030
- Derek Lamberti, Arm Ltd.
3131
- Chetan Mistry, Arm Ltd.
3232
- Georgios Teneketzis, Arm Ltd.
33+
- Matthew Netsch, Qualcomm Technologies, Inc
3334

3435
=== Description
3536

appendices/VK_EXT_fragment_density_map.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,8 +135,8 @@ VkRenderPassCreateInfo2 renderPassCreateInfo =
135135
vkCreateRenderPass2(device, &renderPassCreateInfo, nullptr, &renderPass);
136136
137137
// Add fdmImage to framebuffer
138-
// Color attachments can be created with VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
139-
// All attachments must be created with VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSETS_BIT_EXT
138+
// Color and depth attachments can be created with
139+
// VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT
140140
VkFramebufferCreateInfo framebufferCreateInfo =
141141
{
142142
.sType = VK_STRUCTURE_TYPE_FRAME_BUFFER_CREATE_INFO,

appendices/VK_EXT_vertex_attribute_robustness.adoc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,15 @@ This extension allows applications to not have to specify fake vertex
2323
attribute locations, and if the vertex shader reads those attributes it will
2424
read (0,0,0,0) or (0,0,0,1).
2525

26+
ifdef::VK_KHR_maintenance9[]
27+
=== Promotion to `VK_KHR_maintenance9`
28+
29+
The same functionality is provided by apiext:VK_KHR_maintenance9, but
30+
enabled by the <<features-maintenance9,pname:maintenance9>> feature instead.
31+
The slink:VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT structure was
32+
not included in the maintenance extension.
33+
endif::VK_KHR_maintenance9[]
34+
2635
include::{generated}/interfaces/VK_EXT_vertex_attribute_robustness.adoc[]
2736

2837
=== Issues

appendices/VK_QCOM_tile_shading.adoc

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ include::{generated}/meta/{refprefix}VK_QCOM_tile_shading.adoc[]
77
=== Other Extension Metadata
88

99
*Last Modified Date*::
10-
2025-5-12
10+
2025-8-13
1111
*IP Status*::
1212
No known IP claims.
1313
*Interactions and External Dependencies*::
@@ -104,8 +104,15 @@ include::{generated}/interfaces/VK_QCOM_tile_shading.adoc[]
104104

105105
=== Issues
106106

107-
- none
107+
1) Some early Adreno drivers advertised support for version 1 of this
108+
extension without supporting the required
109+
<<features-tileShadingApron,pname:tileShadingApron>> feature.
110+
To cover all Adreno devices on the market, applications should not assume
111+
any version of this extension supports the pname:tileShadingApron feature
112+
without performing a feature query.
108113

109114
=== Version History
110115

116+
* Revision 2, 2025-08-13 (Matthew Netsch)
117+
** Make the pname:tileShadingApron feature optional
111118
* Revision 1, 2023-10-12 (Jeff Leger)

appendices/deprecation.adoc

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ the Extensions chapter>> for more information.
4848
When functionality is deprecated, an explanation of its deprecation will be
4949
added to the below sections.
5050

51+
ifdef::VKSC_VERSION_1_0[]
52+
This section is currently empty for Vulkan SC.
53+
endif::VKSC_VERSION_1_0[]
54+
ifndef::VKSC_VERSION_1_0[]
5155
[NOTE]
5256
====
5357
This list is a work in progress - we intend to add other items to this
@@ -84,6 +88,25 @@ Instead of dlink:VK_API_VERSION, specific version defines (e.g.
8488
dlink:VK_API_VERSION_1_0) or the dlink:VK_MAKE_API_VERSION macro should be
8589
used instead.
8690

91+
[[deprecation-devicelayers]]
92+
=== Device Layers: Deprecation via instance layers
93+
94+
Previous versions of this specification distinguished between instance and
95+
device layers.
96+
Instance layers were only able to intercept commands that operate on
97+
sname:VkInstance and sname:VkPhysicalDevice, except they were not able to
98+
intercept flink:vkCreateDevice.
99+
Device layers were enabled for individual devices when they were created,
100+
and could only intercept commands operating on that device or its child
101+
objects.
102+
103+
Device-only layers are now deprecated, and this specification no longer
104+
distinguishes between instance and device layers.
105+
Layers are enabled during instance creation, and are able to intercept all
106+
commands operating on that instance or any of its child objects.
107+
At the time of deprecation there were no known device-only layers and no
108+
compelling reason to create one.
109+
87110
ifdef::VK_VERSION_1_2[]
88111
[[deprecation-renderpass2]]
89112
=== Render Pass Functions: Deprecation via version 2
@@ -133,3 +156,4 @@ Outside of vendor extensions, applications are advised to make use of
133156
flink:vkCmdBeginRendering and flink:vkCmdEndRendering to manage render
134157
passes from this API version onward.
135158
endif::VK_VERSION_1_4[]
159+
endif::VKSC_VERSION_1_0[]

appendices/spirvenv.adoc

Lines changed: 27 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -665,26 +665,21 @@ or knowledge of runtime information, such as enabled features.
665665
generation, intersection, any-hit, closest hit, callable, or miss
666666
shaders
667667
* [[VUID-{refpage}-Base-07650]]
668-
The code:Base operand of code:OpPtrAccessChain
669-
ifdef::VK_KHR_shader_untyped_pointers[]
670-
or code:OpUntypedPtrAccessChainKHR
671-
endif::VK_KHR_shader_untyped_pointers[]
672-
must: have a storage class of code:Workgroup, code:StorageBuffer, or
673-
code:PhysicalStorageBuffer
668+
The code:Base operand of code:OpPtrAccessChain or
669+
code:OpUntypedPtrAccessChainKHR must: have a storage class of
670+
code:Workgroup, code:StorageBuffer, or code:PhysicalStorageBuffer
674671
* [[VUID-{refpage}-Base-07651]]
675-
If the code:Base operand of code:OpPtrAccessChain
676-
ifdef::VK_KHR_shader_untyped_pointers[]
677-
or code:OpUntypedPtrAccessChainKHR
678-
endif::VK_KHR_shader_untyped_pointers[]
679-
has a code:Workgroup {StorageClass}, then the code:VariablePointers
680-
capability must: be declared
672+
If the code:Base operand of code:OpPtrAccessChain or
673+
code:OpUntypedPtrAccessChainKHR has a code:Workgroup {StorageClass},
674+
then the code:VariablePointers capability must: be declared
681675
* [[VUID-{refpage}-Base-07652]]
682-
If the code:Base operand of code:OpPtrAccessChain
683-
ifdef::VK_KHR_shader_untyped_pointers[]
684-
or code:OpUntypedPtrAccessChainKHR
685-
endif::VK_KHR_shader_untyped_pointers[]
686-
has a code:StorageBuffer {StorageClass}, then the code:VariablePointers
687-
or code:VariablePointersStorageBuffer capability must: be declared
676+
If the code:Base operand of code:OpPtrAccessChain or
677+
code:OpUntypedPtrAccessChainKHR has a code:StorageBuffer {StorageClass},
678+
then the code:VariablePointers or code:VariablePointersStorageBuffer
679+
capability must: be declared
680+
* [[VUID-{refpage}-OpUntypedVariableKHR-11167]]
681+
Any code:OpUntypedVariableKHR must: have a code:Data code:Type operand
682+
specified
688683
* [[VUID-{refpage}-PhysicalStorageBuffer64-04708]]
689684
If the code:PhysicalStorageBuffer64 addressing model is enabled, all
690685
instructions that support memory access operands and that use a physical
@@ -697,6 +692,11 @@ endif::VK_KHR_shader_untyped_pointers[]
697692
If the code:PhysicalStorageBuffer64 addressing model is enabled,
698693
code:OpConvertUToPtr and code:OpConvertPtrToU must: use an integer type
699694
whose code:Width is 64
695+
* [[VUID-{refpage}-PhysicalStorageBuffer64-06314]]
696+
If the code:PhysicalStorageBuffer64 addressing model is enabled any load
697+
or store through a physical pointer type must: have an code:Aligned
698+
operand which is a multiple of the size of the largest scalar type in
699+
the pointed-to type
700700
* [[VUID-{refpage}-OpTypeForwardPointer-04711]]
701701
code:OpTypeForwardPointer must: have a {StorageClass} of
702702
code:PhysicalStorageBuffer
@@ -1419,10 +1419,6 @@ ifdef::VK_EXT_transform_feedback[]
14191419
slink:VkPhysicalDeviceTransformFeedbackPropertiesEXT::pname:maxTransformFeedbackBufferDataStride
14201420
endif::VK_EXT_transform_feedback[]
14211421
ifdef::VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address[]
1422-
* [[VUID-{refpage}-PhysicalStorageBuffer64-06314]]
1423-
If the code:PhysicalStorageBuffer64 addressing model is enabled any load
1424-
or store through a physical pointer type must: be aligned to a multiple
1425-
of the size of the largest scalar type in the pointed-to type
14261422
* [[VUID-{refpage}-PhysicalStorageBuffer64-06315]]
14271423
If the code:PhysicalStorageBuffer64 addressing model is enabled the
14281424
pointer value of a memory access instruction must: be at least as
@@ -2448,21 +2444,6 @@ endif::VK_KHR_maintenance8[]
24482444
ifndef::VK_KHR_maintenance8[Image]
24492445
operand code:Offset must: only be used with code:OpImage*Gather
24502446
instructions
2451-
ifdef::VK_KHR_workgroup_memory_explicit_layout[]
2452-
ifndef::VK_KHR_shader_untyped_pointers[]
2453-
* [[VUID-{refpage}-workgroupMemoryExplicitLayout8BitAccess-11163]]
2454-
If the
2455-
<<features-workgroupMemoryExplicitLayout8BitAccess,pname:workgroupMemoryExplicitLayout8BitAccess>>
2456-
feature is ename:VK_FALSE, objects in the code:Workgroup storage class
2457-
with the code:Block decoration must: not contain 8-bit integer members
2458-
* [[VUID-{refpage}-workgroupMemoryExplicitLayout16BitAccess-11164]]
2459-
If the
2460-
<<features-workgroupMemoryExplicitLayout16BitAccess,pname:workgroupMemoryExplicitLayout16BitAccess>>
2461-
feature is ename:VK_FALSE, objects in the code:Workgroup storage class
2462-
with the code:Block decoration must: not contain 16-bit integer or
2463-
16-bit floating-point members
2464-
endif::VK_KHR_shader_untyped_pointers[]
2465-
endif::VK_KHR_workgroup_memory_explicit_layout[]
24662447
ifdef::VK_KHR_shader_untyped_pointers[]
24672448
* [[VUID-{refpage}-Size-11165]]
24682449
The code:Size operand of code:OpCopyMemorySized must: be a multiple of 4
@@ -2476,9 +2457,6 @@ ifdef::VK_KHR_shader_untyped_pointers[]
24762457
Any memory access made using an code:OpTypeUntypedPointerKHR must have
24772458
an alignment that satisfies <<interfaces-resources-layout,Offset and
24782459
Stride Assignment>>
2479-
* [[VUID-{refpage}-OpUntypedVariableKHR-11167]]
2480-
Any code:OpUntypedVariableKHR must: have a code:Data code:Type operand
2481-
specified
24822460
endif::VK_KHR_shader_untyped_pointers[]
24832461
* [[VUID-{refpage}-OpImage-06376]]
24842462
If an code:OpImage*Gather operation has an image operand of code:Offset,
@@ -3642,11 +3620,11 @@ The offset calculations that have the 4GB limit include:
36423620
* code:OpAccessChain and code:OpPtrAccessChain - the total offset summed
36433621
over all indices multiplied by strides, including spanning multiple
36443622
access chain instructions that lead to a given memory access.
3645-
ifdef::VK_KHR_cooperative_matrix[]
3646-
* code:OpCooperativeMatrixLoadKHR and code:OpCooperativeMatrixStoreKHR
3623+
ifdef::VK_NV_cooperative_matrix[]
3624+
* code:OpCooperativeMatrixLoadNV and code:OpCooperativeMatrixStoreNV
36473625
instructions computing an offset based on element, row, and stride
36483626
parameters.
3649-
endif::VK_KHR_cooperative_matrix[]
3627+
endif::VK_NV_cooperative_matrix[]
36503628
ifdef::VK_KHR_cooperative_matrix[]
36513629
* code:OpCooperativeMatrixLoadKHR and code:OpCooperativeMatrixStoreKHR
36523630
instructions computing an offset based on element, row, and stride
@@ -3657,6 +3635,12 @@ ifdef::VK_NV_cooperative_matrix2[]
36573635
code:OpCooperativeMatrixStoreTensorNV instructions computing an offset
36583636
based on tensor layout state.
36593637
endif::VK_NV_cooperative_matrix2[]
3638+
ifdef::VK_NV_cooperative_vector[]
3639+
* code:OpCooperativeVectorMatrixMulAddNV,
3640+
code:OpCooperativeVectorMatrixMulNV and
3641+
code:OpCooperativeVectorOuterProductAccumulateNV instructions computing
3642+
an offset based on offset, row, and stride parameters.
3643+
endif::VK_NV_cooperative_vector[]
36603644

36613645

36623646
[[spirvenv-image-signedness]]

0 commit comments

Comments
 (0)