Skip to content

Commit a02cd20

Browse files
committed
Change log for July 31, 2026 Vulkan 1.4.358 spec update:
Internal Issues * Loosen the memoryObjectId uniqueness requirement for VkDeviceMemoryReportCallbackDataEXT (internal issue 4539). * Extend VUID-RuntimeSpirv-OpTraceRayKHR-11855 to cover SER ops (internal issue 4675). * Clarify that VK_IMAGE_LAYOUT_PREINITIALIZED applies only to linear images (internal issue 4854). * Allow VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT clipping query to skip degenerate triangles (internal issue 4737). * Fix array stride decoration to only apply to message output in the VK_KHR_shader_abort proposal document (internal issue 4914). * Clarify PrimitiveId behavior for geometry following tessellation evaluation shaders (internal MR 7983). * Clarify clarify update-after-bind limits with respect to update-after-bind feature support (internal MR 8361). * Clean up copy addressing VUs to clarify that source and destination addresses cannot overlap, and add a new <<copies-images-addressing>> section with math describing how texels are addressed (internal MR 8382). * Mark VkVideoEncodeFeedback2CapabilitiesKHR `returnedonly` in XML (internal MR 8417). * Use '+' in XML feature tag `depends` attribute instead of ',' (internal MR 8423). * Simplify standalone SPIR-V transform feedback VU 04716 (internal MR 8427). * Upstream Vulkan SC 1.0.22 changes and add `scripts/specdiff.py`. New Extensions * VK_EXT_image_tiling_control
1 parent d184375 commit a02cd20

25 files changed

Lines changed: 1028 additions & 324 deletions

ChangeLog.adoc

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

1515
'''
1616

17+
Change log for July 31, 2026 Vulkan 1.4.358 spec update:
18+
19+
Internal Issues
20+
21+
* Loosen the memoryObjectId uniqueness requirement for
22+
VkDeviceMemoryReportCallbackDataEXT (internal issue 4539).
23+
* Extend VUID-RuntimeSpirv-OpTraceRayKHR-11855 to cover SER ops (internal
24+
issue 4675).
25+
* Clarify that VK_IMAGE_LAYOUT_PREINITIALIZED applies only to linear
26+
images (internal issue 4854).
27+
* Allow VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT clipping query
28+
to skip degenerate triangles (internal issue 4737).
29+
* Fix array stride decoration to only apply to message output in the
30+
VK_KHR_shader_abort proposal document (internal issue 4914).
31+
* Clarify PrimitiveId behavior for geometry following tessellation
32+
evaluation shaders (internal MR 7983).
33+
* Clarify clarify update-after-bind limits with respect to
34+
update-after-bind feature support (internal MR 8361).
35+
* Clean up copy addressing VUs to clarify that source and destination
36+
addresses cannot overlap, and add a new <<copies-images-addressing>>
37+
section with math describing how texels are addressed (internal MR
38+
8382).
39+
* Mark VkVideoEncodeFeedback2CapabilitiesKHR `returnedonly` in XML
40+
(internal MR 8417).
41+
* Use '+' in XML feature tag `depends` attribute instead of ',' (internal
42+
MR 8423).
43+
* Simplify standalone SPIR-V transform feedback VU 04716 (internal MR
44+
8427).
45+
* Upstream Vulkan SC 1.0.22 changes and add `scripts/specdiff.py`.
46+
47+
New Extensions
48+
49+
* VK_EXT_image_tiling_control
50+
51+
'''
52+
1753
Change log for July 17, 2026 Vulkan 1.4.357 spec update:
1854

1955
Github Issues

ChangeLogSC.adoc

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

1313
-----------------------------------------------------
1414
15+
Change log for July 22, 2026 Vulkan SC 1.0.22 spec update:
16+
Public issues:
17+
18+
* None
19+
20+
Internal issues:
21+
22+
* update release number to 22 for this update and reflow spec language (#285/!425)
23+
* SC: Exclude descriptor set layout reservation VUs from the support
24+
query (#292/!424)
25+
* Merge VK 1.4.356 tag to sc_main (!423)
26+
* Merge VK 1.4.348 tag to sc_main (!422)
27+
28+
-----------------------------------------------------
29+
1530
Change log for March 16, 2026 Vulkan SC 1.0.21 spec update:
1631

1732
Public issues:

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 = 357
154+
PATCHVERSION = 358
155155
BASEOPTS =
156156

157157
ifneq (,$(findstring VKSC_VERSION_1_0,$(VERSIONS)))
158158
VKSPECREVISION := 1.2.$(PATCHVERSION)
159-
SCPATCHVERSION = 21
159+
SCPATCHVERSION = 22
160160
SPECREVISION = 1.0.$(SCPATCHVERSION)
161161
BASEOPTS = -a baserevnumber="$(VKSPECREVISION)"
162162
else
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
// Copyright 2014-2026 The Khronos Group Inc.
2+
//
3+
// SPDX-License-Identifier: CC-BY-4.0
4+
5+
include::{generated}/meta/{refprefix}VK_EXT_image_tiling_control.adoc[]
6+
7+
=== Other Extension Metadata
8+
9+
*Last Modified Date*::
10+
2026-06-19
11+
*Interactions and External Dependencies*::
12+
- Interacts with apiext:VK_KHR_maintenance4
13+
- Interacts with apiext:VK_KHR_maintenance5
14+
- Interacts with apiext:VK_EXT_image_drm_format_modifier
15+
*IP Status*::
16+
No known IP claims.
17+
*Contributors*::
18+
- Noah Fredriks, AMD
19+
- Stu Smith, AMD
20+
- Tobias Hector, AMD
21+
- Hans-Kristian Arntzen, Valve
22+
- Ralph Potter, Samsung
23+
- James Jones, NVIDIA
24+
- Lionel Landwerlin, Intel
25+
- Daniel Story, Nintendo
26+
27+
=== Description
28+
29+
This extension provides per-image selection of optimal tiling arrangements
30+
by extending slink:VkImageCreateInfo with
31+
slink:VkImageTilingControlCreateInfoEXT when multiple arrangements are
32+
supported by the implementation.
33+
34+
ename:VK_IMAGE_TILING_CONTROL_DEFAULT_EXT can: be set to use the tiling
35+
arrangement that is the same selection as with the
36+
slink:VkImageTilingControlCreateInfoEXT structure omitted.
37+
38+
ename:VK_IMAGE_TILING_CONTROL_MIN_SIZE_EXT can: be set to minimize memory
39+
size requirements with reduced consideration for memory access performance.
40+
41+
ename:VK_IMAGE_TILING_CONTROL_MAX_PERFORMANCE_EXT can: be set to maximize
42+
memory access performance with reduced consideration for increases in memory
43+
size requirements.
44+
45+
include::{generated}/interfaces/VK_EXT_image_tiling_control.adoc[]
46+
47+
=== Version History
48+
49+
* Revision 1, 2026-06-19 (Noah Fredriks)
50+
** Initial revision

appendices/spirvenv.adoc

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -654,9 +654,8 @@ endif::VK_EXT_shader_split_barrier[]
654654
must: only contain base types that have components that are either
655655
32-bit or 64-bit in size
656656
* [[VUID-StandaloneSpirv-Offset-04716]]
657-
Only variables or block members in the output interface decorated with
658-
code:Offset can: be captured for transform feedback, and those variables
659-
or block members must: also be decorated with code:XfbBuffer and
657+
Variables or block members in the output interface decorated with
658+
code:Offset must: also be decorated with code:XfbBuffer and
660659
code:XfbStride, or inherit code:XfbBuffer and code:XfbStride decorations
661660
from a block containing them
662661
* [[VUID-StandaloneSpirv-XfbBuffer-04693]]
@@ -2465,11 +2464,16 @@ ifdef::VK_KHR_ray_tracing_pipeline[]
24652464
The value of the "`Hit Kind`" operand of code:OpReportIntersectionKHR
24662465
must: be in the range [eq]#[0,127]#
24672466
* [[VUID-RuntimeSpirv-OpTraceRayKHR-11855]]
2468-
For modules which contain code:OpTraceRayKHR
2469-
ifdef::VK_NV_ray_tracing_motion_blur[or code:OpTraceRayMotionNV]
2470-
instructions that declare a variable in the code:RayPayloadKHR
2471-
{StorageClass}, all shaders which may be invoked as part of that _shader
2472-
call_ must: declare an identical variable in the
2467+
For modules which contain
2468+
ifdef::VK_NV_ray_tracing_motion_blur[code:OpTraceRayMotionNV,]
2469+
ifdef::VK_NV_ray_tracing_invocation_reorder[code:OpHitObjectTraceRayNV, code:OpHitObjectExecuteShaderNV,]
2470+
ifdef::VK_NV_ray_tracing_invocation_reorder+VK_NV_ray_tracing_motion_blur[code:OpHitObjectTraceRayMotionNV,]
2471+
ifdef::VK_EXT_ray_tracing_invocation_reorder[code:OpHitObjectTraceRayEXT, code:OpHitObjectTraceReorderExecuteEXT, code:OpHitObjectExecuteShaderEXT, code:OpHitObjectReorderExecuteShaderEXT,]
2472+
ifdef::VK_EXT_ray_tracing_invocation_reorder+VK_NV_ray_tracing_motion_blur[code:OpHitObjectTraceRayMotionEXT, code:OpHitObjectTraceMotionReorderExecuteEXT,]
2473+
ifdef::VK_NV_ray_tracing_motion_blur,VK_NV_ray_tracing_invocation_reorder,VK_EXT_ray_tracing_invocation_reorder[or]
2474+
code:OpTraceRayKHR instructions that declare a variable in the
2475+
code:RayPayloadKHR {StorageClass}, all shaders which may be invoked as
2476+
part of that _shader call_ must: declare an identical variable in the
24732477
code:IncomingRayPayloadKHR {StorageClass}
24742478
endif::VK_KHR_ray_tracing_pipeline[]
24752479
ifdef::VK_NV_ray_tracing_motion_blur[]

chapters/commonvalidity/copy_buffer_common.adoc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020
The union of the source regions, and the union of the destination
2121
regions, specified by the elements of pname:pRegions, must: not overlap
2222
in memory
23+
* [[VUID-{refpage}-pRegions-12482]]
24+
All destination regions specified by pname:pRegions must: not overlap
25+
with any other destination region
2326
* [[VUID-{refpage}-srcBuffer-00118]]
2427
pname:srcBuffer must: have been created with the
2528
ename:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag set

chapters/commonvalidity/copy_buffer_to_image_common.adoc

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,15 @@
99
that are accessed according to <<copies-buffers-images-addressing,Buffer
1010
and Image Addressing>>, for each element of pname:pRegions
1111
* [[VUID-{refpage}-pRegions-00173]]
12-
The union of all source regions, and the union of all destination
13-
regions, specified by the elements of pname:pRegions, must: not overlap
14-
in memory
12+
Each memory location accessed by this command must: not be accessed by
13+
both a source region and a destination region, as specified in
14+
pname:pRegions and accessed according to
15+
<<copies-buffers-images-addressing,Buffer and Image Addressing>>
16+
* [[VUID-{refpage}-pRegions-12483]]
17+
Each memory location accessed by this command must: not be accessed by
18+
more than one destination region, as specified by pname:pRegions and
19+
accessed according to <<copies-buffers-images-addressing,Buffer and
20+
Image Addressing>>
1521
* [[VUID-{refpage}-srcBuffer-00174]]
1622
pname:srcBuffer must: have been created with the
1723
ename:VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag set

chapters/commonvalidity/copy_image_common.adoc

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,14 @@
55
// Common Valid Usage
66
// Common to VkCmdCopyImage* commands
77
* [[VUID-{refpage}-pRegions-00124]]
8-
The union of all source regions, and the union of all destination
9-
regions, specified by the elements of pname:pRegions, must: not overlap
10-
in memory
8+
Each memory location accessed by this command must: not be accessed by
9+
both a source region and a destination region, as specified by
10+
pname:pRegions and accessed according to <<copies-images-addressing,Copy
11+
Image Addressing>>
12+
* [[VUID-{refpage}-pRegions-12484]]
13+
Each memory location accessed by this command must: not be accessed by
14+
more than one destination region, as specified by pname:pRegions and
15+
accessed according to <<copies-images-addressing,Copy Image Addressing>>
1116
ifdef::VK_BASE_VERSION_1_1,VK_KHR_maintenance1[]
1217
* [[VUID-{refpage}-srcImage-01995]]
1318
The <<resources-image-format-features,format features>> of

chapters/commonvalidity/copy_image_to_buffer_common.adoc

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,15 @@
99
that are accessed according to <<copies-buffers-images-addressing,Buffer
1010
and Image Addressing>>, for each element of pname:pRegions
1111
* [[VUID-{refpage}-pRegions-00184]]
12-
The union of all source regions, and the union of all destination
13-
regions, specified by the elements of pname:pRegions, must: not overlap
14-
in memory
12+
Each memory location accessed by this command must: not be accessed by
13+
both a source region and a destination region, as specified in
14+
pname:pRegions and accessed according to
15+
<<copies-buffers-images-addressing,Buffer and Image Addressing>>
16+
* [[VUID-{refpage}-pRegions-12485]]
17+
Each memory location accessed by this command must: not be accessed by
18+
more than one destination region, as specified by pname:pRegions and
19+
accessed according to <<copies-buffers-images-addressing,Buffer and
20+
Image Addressing>>
1521
* [[VUID-{refpage}-srcImage-00186]]
1622
pname:srcImage must: have been created with the
1723
ename:VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag set

chapters/commonvalidity/indirect_memory_to_image_command_common.adoc

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,13 @@ endif::VK_BASE_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion[]
3333
pname:imageExtent must: specify a valid region in the destination image
3434
and can: be `0`
3535
* [[VUID-{refpage}-srcAddress-10968]]
36-
The memory region starting at pname:srcAddress and described by
37-
pname:bufferRowLength and pname:bufferImageHeight must: not exceed the
38-
bounds of the memory allocation backing memory at pname:srcAddress
36+
The memory allocation backing pname:srcAddress must: be large enough to
37+
contain all locations that are accessed according to
38+
<<copies-buffers-images-addressing,Buffer and Image Addressing>>
3939
* [[VUID-{refpage}-imageOffset-10969]]
40-
The pname:imageOffset and pname:imageExtent members of each region must:
41-
respect the image transfer granularity requirements of
42-
pname:commandBuffer's command pool's queue family, as described in
43-
slink:VkQueueFamilyProperties
40+
The pname:imageOffset and pname:imageExtent region must: respect the
41+
image transfer granularity requirements of pname:commandBuffer's command
42+
pool's queue family, as described in slink:VkQueueFamilyProperties
4443
* [[VUID-{refpage}-imageOffset-10970]]
4544
For each destination region, pname:imageOffset.x and
4645
[eq]#(pname:imageExtent.width {plus} pname:imageOffset.x)# must: both be

0 commit comments

Comments
 (0)