Skip to content

Commit 6aefabc

Browse files
committed
Change log for February 20, 2026 Vulkan 1.4.344 spec update:
Github Issues * Clarify the NOTE describing how the <<limits-viewportboundsrange, viewportBoundsRange>> limit is defined (public issue 2634). * Remove collision between type name and structure member / parameter names in VK_SEC_ubm_surface, disallow this in style guide as it affects some downstream language bindings, and add a check to xml_consistency.py (public issue 2679). * Remove extra double-quote at the end of a comment (public PR 2680). Internal Issues * Relax vkGetCalibratedTimestampsKHR VU 09246 to allow VK_TIME_DOMAIN_PRESENT_STAGE_LOCAL_EXT time domain calibrations to not be unique, and the VkSwapchainCalibratedTimestampInfoEXT::swapchain external synchronization requirement, allowing calibration of multiple present stages and determining timestamps for a swapchain-local time-domain in the same thread as vkGetPastPresentationTimingEXT (internal issue 4596). * Fix VkVideoSessionParametersKHR `parent` attribute to correct parent-child relationship in implicit VUs (internal issue 4615). * Add a NOTE to <<decode-av1-picture-info, AV1 Std Picture Information>> regarding a known decode app bug and driver workaround (internal issue 4639). * Generate new "`Structure Chaining`" documentation linking structures back to the base structures the extend (internal issue 4670). * Move VU 04745 from standalone SPIR-V to runtime SPIR-V section (internal issue 4682). * Reorder XML entries to not need dependency tracking for enabling modular headers (internal MR 7994). * Remove unnecessary parenthesis in complex XML dependencies (internal MR 7995). * Add boolean expression support to XML `protect` attribute (internal MR 7996). * Update legacy header comments and registry schema documentation to match specification language for "`ignored`" legacy entries (internal MR 7998). * Unify description of VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT in VkAccessFlagBits and the corresponding bit in VkAccessFlagBits2 (internal MR 8062). * Fix Vulkan Object Flags/Handles (internal MR 8067). New Extensions * VK_VALVE_shader_mixed_float_dot_product
1 parent 33eff7c commit 6aefabc

23 files changed

Lines changed: 609 additions & 185 deletions

ChangeLog.adoc

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

1515
'''
1616

17+
Change log for February 20, 2026 Vulkan 1.4.344 spec update:
18+
19+
Github Issues
20+
21+
* Clarify the NOTE describing how the <<limits-viewportboundsrange,
22+
viewportBoundsRange>> limit is defined (public issue 2634).
23+
* Remove collision between type name and structure member / parameter
24+
names in VK_SEC_ubm_surface, disallow this in style guide as it affects
25+
some downstream language bindings, and add a check to xml_consistency.py
26+
(public issue 2679).
27+
* Remove extra double-quote at the end of a comment (public PR 2680).
28+
29+
Internal Issues
30+
31+
* Relax vkGetCalibratedTimestampsKHR VU 09246 to allow
32+
VK_TIME_DOMAIN_PRESENT_STAGE_LOCAL_EXT time domain calibrations to not
33+
be unique, and the VkSwapchainCalibratedTimestampInfoEXT::swapchain
34+
external synchronization requirement, allowing calibration of multiple
35+
present stages and determining timestamps for a swapchain-local
36+
time-domain in the same thread as vkGetPastPresentationTimingEXT
37+
(internal issue 4596).
38+
* Fix VkVideoSessionParametersKHR `parent` attribute to correct
39+
parent-child relationship in implicit VUs (internal issue 4615).
40+
* Add a NOTE to <<decode-av1-picture-info, AV1 Std Picture Information>>
41+
regarding a known decode app bug and driver workaround (internal issue
42+
4639).
43+
* Generate new "`Structure Chaining`" documentation linking structures
44+
back to the base structures the extend (internal issue 4670).
45+
* Move VU 04745 from standalone SPIR-V to runtime SPIR-V section (internal
46+
issue 4682).
47+
* Reorder XML entries to not need dependency tracking for enabling modular
48+
headers (internal MR 7994).
49+
* Remove unnecessary parenthesis in complex XML dependencies (internal MR
50+
7995).
51+
* Add boolean expression support to XML `protect` attribute (internal MR
52+
7996).
53+
* Update legacy header comments and registry schema documentation to match
54+
specification language for "`ignored`" legacy entries (internal MR
55+
7998).
56+
* Unify description of VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT in
57+
VkAccessFlagBits and the corresponding bit in VkAccessFlagBits2
58+
(internal MR 8062).
59+
* Fix Vulkan Object Flags/Handles (internal MR 8067).
60+
61+
New Extensions
62+
63+
* VK_VALVE_shader_mixed_float_dot_product
64+
65+
'''
66+
1767
Change log for February 6, 2026 Vulkan 1.4.343 spec update:
1868

1969
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 = 343
154+
PATCHVERSION = 344
155155
BASEOPTS =
156156

157157
ifneq (,$(findstring VKSC_VERSION_1_0,$(VERSIONS)))
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
// Copyright 2020-2026 The Khronos Group Inc.
2+
//
3+
// SPDX-License-Identifier: CC-BY-4.0
4+
5+
include::{generated}/meta/{refprefix}VK_VALVE_shader_mixed_float_dot_product.adoc[]
6+
7+
=== Other Extension Metadata
8+
9+
*Last Modified Date*::
10+
2026-02-04
11+
*IP Status*::
12+
No known IP claims.
13+
*Contributors*::
14+
- Georg Lehmann, Valve
15+
- Mike Blumenkrantz, Valve
16+
17+
=== Description
18+
19+
This extension enables support for mixed precision dot product accumulate
20+
operations in shaders as defined in `SPV_VALVE_mixed_float_dot_product`.
21+
22+
23+
include::{generated}/interfaces/VK_VALVE_shader_mixed_float_dot_product.adoc[]
24+
25+
=== New SPIR-V Capabilities
26+
27+
* <<spirvenv-capabilities-table-DotProductFloat16AccFloat32VALVE,DotProductFloat16AccFloat32VALVE>>
28+
* <<spirvenv-capabilities-table-DotProductFloat16AccFloat16VALVE,DotProductFloat16AccFloat16VALVE>>
29+
* <<spirvenv-capabilities-table-DotProductBFloat16AccVALVE,DotProductBFloat16AccVALVE>>
30+
* <<spirvenv-capabilities-table-DotProductFloat8AccFloat32VALVE,DotProductFloat8AccFloat32VALVE>>
31+
32+
33+
=== Version History
34+
35+
* Revision 1, 2026-02-04 (Georg Lehmann)
36+
** Initial specification

appendices/spirvenv.adoc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -730,10 +730,6 @@ or knowledge of runtime information, such as enabled features.
730730
* [[VUID-StandaloneSpirv-OpTypeForwardPointer-04711]]
731731
code:OpTypeForwardPointer must: have a {StorageClass} of
732732
code:PhysicalStorageBuffer
733-
* [[VUID-StandaloneSpirv-None-04745]]
734-
All block members in a variable with a {StorageClass} of
735-
code:PushConstant declared as an array must: only be accessed by
736-
dynamically uniform indices
737733
* [[VUID-StandaloneSpirv-OpVariable-06673]]
738734
There must: be at most one variable in the code:PushConstant
739735
{StorageClass} listed in the code:Interface for each code:OpEntryPoint
@@ -1187,6 +1183,10 @@ ifdef::VK_COMPUTE_VERSION_1_1[]
11871183
texel buffer, the storage texel buffer through which that memory is
11881184
accessed must: be dynamically uniform within the invocation group
11891185
endif::VK_COMPUTE_VERSION_1_1[]
1186+
* [[VUID-RuntimeSpirv-None-04745]]
1187+
All block members in a variable with a {StorageClass} of
1188+
code:PushConstant declared as an array must: only be accessed by
1189+
dynamically uniform indices
11901190
* [[VUID-RuntimeSpirv-None-10148]]
11911191
If an instruction accesses memory through any resource,
11921192
ifdef::VK_COMPUTE_VERSION_1_1[]
@@ -3322,7 +3322,7 @@ ifdef::VK_EXT_shader_long_vector[]
33223322
than four components (or an aggregate containing such a type) must: have
33233323
{StorageClass} of code:Function, code:Private, code:Uniform,
33243324
code:Workgroup, code:StorageBuffer, code:PhysicalStorageBuffer,
3325-
code:PushConstant, or code:ShaderRecordBufferKHR.
3325+
code:PushConstant, or code:ShaderRecordBufferKHR
33263326
endif::VK_EXT_shader_long_vector[]
33273327
ifdef::VK_EXT_descriptor_heap[]
33283328
* [[VUID-RuntimeSpirv-samplerDescriptorAlignment-11348]]

chapters/VK_KHR_surface/wsi.adoc

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1218,17 +1218,17 @@ include::{generated}/api/structs/VkUbmSurfaceCreateInfoSEC.adoc[]
12181218
* pname:pNext is `NULL` or a pointer to a structure extending this
12191219
structure.
12201220
* pname:flags is reserved for future use.
1221-
* pname:ubm_device is a pointer to a code:ubm_device to associate the
1222-
surface with.
1223-
* pname:ubm_surface is a pointer to a code:ubm_surface to associate the
1221+
* pname:device is a pointer to a code:ubm_device to associate the surface
1222+
with.
1223+
* pname:surface is a pointer to a code:ubm_surface to associate the
12241224
surface with.
12251225

12261226
.Valid Usage
12271227
****
1228-
* [[VUID-VkUbmSurfaceCreateInfoSEC-ubm_device-12366]]
1229-
pname:ubm_device must: point to a valid UBM code:ubm_device
1230-
* [[VUID-VkUbmSurfaceCreateInfoSEC-ubm_surface-12367]]
1231-
pname:ubm_surface must: point to a valid UBM code:ubm_surface
1228+
* [[VUID-VkUbmSurfaceCreateInfoSEC-device-12366]]
1229+
pname:device must: point to a valid UBM code:ubm_device
1230+
* [[VUID-VkUbmSurfaceCreateInfoSEC-surface-12367]]
1231+
pname:surface must: point to a valid UBM code:ubm_surface
12321232
****
12331233

12341234
include::{generated}/validity/structs/VkUbmSurfaceCreateInfoSEC.adoc[]
@@ -2836,15 +2836,15 @@ include::{generated}/api/protos/vkGetPhysicalDeviceUbmPresentationSupportSEC.ado
28362836

28372837
* pname:physicalDevice is the physical device.
28382838
* pname:queueFamilyIndex is the queue family index.
2839-
* pname:ubm_device is a pointer to the code:ubm_device associated with a
2840-
UBM compositor.
2839+
* pname:device is a pointer to the code:ubm_device associated with a UBM
2840+
compositor.
28412841

28422842
This platform-specific function can: be called prior to creating a surface.
28432843

28442844
.Valid Usage
28452845
****
2846-
* [[VUID-vkGetPhysicalDeviceUbmPresentationSupportSEC-ubm_device-12368]]
2847-
pname:ubm_device must: point to a valid UBM code:ubm_device
2846+
* [[VUID-vkGetPhysicalDeviceUbmPresentationSupportSEC-device-12368]]
2847+
pname:device must: point to a valid UBM code:ubm_device
28482848
* [[VUID-vkGetPhysicalDeviceUbmPresentationSupportSEC-queueFamilyIndex-12369]]
28492849
pname:queueFamilyIndex must: be less than
28502850
pname:pQueueFamilyPropertyCount returned by

chapters/features.adoc

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9475,6 +9475,41 @@ include::{generated}/validity/structs/VkPhysicalDeviceDescriptorHeapFeaturesEXT.
94759475
--
94769476
endif::VK_EXT_descriptor_heap[]
94779477

9478+
ifdef::VK_VALVE_shader_mixed_float_dot_product[]
9479+
[open,refpage='VkPhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE',desc='Structure describing support for mixed float dot products',type='structs']
9480+
--
9481+
The sname:VkPhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE structure
9482+
is defined as:
9483+
9484+
include::{generated}/api/structs/VkPhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE.adoc[]
9485+
9486+
* pname:sType is a elink:VkStructureType value identifying this structure.
9487+
* pname:pNext is `NULL` or a pointer to a structure extending this
9488+
structure.
9489+
* [[features-shaderMixedFloatDotProductFloat16AccFloat32]]
9490+
pname:shaderMixedFloatDotProductFloat16AccFloat32 indicates whether the
9491+
implementation supports shaders with the
9492+
code:DotProductFloat16AccFloat32VALVE capability.
9493+
* [[features-shaderMixedFloatDotProductFloat16AccFloat16]]
9494+
pname:shaderMixedFloatDotProductFloat16AccFloat16 indicates whether the
9495+
implementation supports shaders with the
9496+
code:DotProductFloat16AccFloat16VALVE capability.
9497+
* [[features-shaderMixedFloatDotProductBFloat16Acc]]
9498+
pname:shaderMixedFloatDotProductBFloat16Acc indicates whether the
9499+
implementation supports shaders with the code:DotProductBFloat16AccVALVE
9500+
capability.
9501+
* [[features-shaderMixedFloatDotProductFloat8AccFloat32]]
9502+
pname:shaderMixedFloatDotProductFloat8AccFloat32 indicates whether the
9503+
implementation supports shaders with the
9504+
code:DotProductFloat8AccFloat32VALVE capability.
9505+
9506+
:refpage: VkPhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE
9507+
include::{chapters}/features.adoc[tag=features]
9508+
9509+
include::{generated}/validity/structs/VkPhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE.adoc[]
9510+
--
9511+
endif::VK_VALVE_shader_mixed_float_dot_product[]
9512+
94789513

94799514
[[features-requirements]]
94809515
== Feature Requirements

chapters/limits.adoc

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -591,15 +591,14 @@ ifdef::VK_COMPUTE_VERSION_1_3,VK_KHR_maintenance4[or code:LocalSizeId]
591591
+
592592
[NOTE]
593593
====
594-
The intent of the pname:viewportBoundsRange limit is to allow a maximum
595-
sized viewport to be arbitrarily shifted relative to the output target as
596-
long as at least some portion intersects.
597-
This would give a bounds limit of [eq]#[-pname:size {plus} 1, 2 {times}
598-
pname:size - 1]# which would allow all possible non-empty-set intersections
599-
of the output target and the viewport.
600-
Since these numbers are typically powers of two, picking the signed number
601-
range using the smallest possible number of bits ends up with the specified
602-
range.
594+
The wide range of values required for pname:viewportBoundsRange allows the
595+
viewport to be arbitrarily shifted relative to the output render target
596+
while still partially overlapping.
597+
However, the minimum range required to achieve this would actually be
598+
[eq]#[-pname:size {plus} 1, 2 {times} pname:size - 1]#.
599+
As these limits in implementations are typically simple power-of-two values,
600+
the specification reflects this convention, rounding the lower bound
601+
accordingly.
603602
====
604603
* [[limits-viewportSubPixelBits]] pname:viewportSubPixelBits is the number
605604
of bits of subpixel precision for viewport bounds.

chapters/synchronization.adoc

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1083,6 +1083,10 @@ endif::VK_EXT_shader_tile_image[]
10831083
via certain render pass <<renderpass-load-operations, load>>,
10841084
<<renderpass-store-operations, store>>, and
10851085
<<renderpass-resolve-operations, multisample resolve>> operations.
1086+
ifdef::VK_GRAPHICS_VERSION_1_2,VK_KHR_depth_stencil_resolve[]
1087+
This includes <<renderpass-resolve-operations, multisample resolve>>
1088+
operations for depth/stencil resolve attachments.
1089+
endif::VK_GRAPHICS_VERSION_1_2,VK_KHR_depth_stencil_resolve[]
10861090
Such access occurs in the
10871091
ename:VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT pipeline stage.
10881092
* ename:VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT specifies read
@@ -1522,15 +1526,14 @@ ifdef::VK_EXT_shader_tile_image[]
15221526
in the ename:VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT pipeline stage.
15231527
endif::VK_EXT_shader_tile_image[]
15241528
* ename:VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT specifies write access to a
1525-
ifndef::VK_GRAPHICS_VERSION_1_2,VK_KHR_depth_stencil_resolve[]
1526-
<<renderpass, color or resolve attachment>>
1527-
endif::VK_GRAPHICS_VERSION_1_2,VK_KHR_depth_stencil_resolve[]
1529+
<<renderpass, color attachment>> during a <<renderpass, render pass>> or
1530+
via certain render pass <<renderpass-load-operations, load>>,
1531+
<<renderpass-store-operations, store>>, and
1532+
<<renderpass-resolve-operations, multisample resolve>> operations.
15281533
ifdef::VK_GRAPHICS_VERSION_1_2,VK_KHR_depth_stencil_resolve[]
1529-
<<renderpass, color, resolve, or depth/stencil resolve attachment>>
1534+
This includes <<renderpass-resolve-operations, multisample resolve>>
1535+
operations for depth/stencil resolve attachments.
15301536
endif::VK_GRAPHICS_VERSION_1_2,VK_KHR_depth_stencil_resolve[]
1531-
during a <<renderpass, render pass>> or via certain render pass
1532-
<<renderpass-load-operations, load>> and <<renderpass-store-operations,
1533-
store>> operations.
15341537
Such access occurs in the
15351538
ename:VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT pipeline stage.
15361539
* ename:VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT specifies read access
@@ -8322,6 +8325,10 @@ timestamps on a regular basis.
83228325
* [[VUID-vkGetCalibratedTimestampsKHR-timeDomain-09246]]
83238326
The pname:timeDomain value of each slink:VkCalibratedTimestampInfoKHR in
83248327
pname:pTimestampInfos must: be unique
8328+
ifdef::VK_EXT_present_timing[]
8329+
except for those with a value of
8330+
ename:VK_TIME_DOMAIN_PRESENT_STAGE_LOCAL_EXT
8331+
endif::VK_EXT_present_timing[]
83258332
****
83268333

83278334
include::{chapters}/commonvalidity/no_dynamic_allocations_common.adoc[]

chapters/video/av1_decode.adoc

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,19 @@ pname:pStdPictureInfo are interpreted as follows:
387387
** code:pMiRowStarts is a pointer to an array of code:TileRows number of
388388
unsigned integers that corresponds to code:MiRowStarts defined in
389389
section 6.8.14 of the <<aomedia-av1,AV1 Specification>>;
390+
+
391+
[NOTE]
392+
====
393+
Historically some applications incorrectly specified the values in
394+
code:pMiColStarts and code:pMiRowStarts in terms of superblocks instead of
395+
mode info blocks, therefore it is recommended for implementations to ignore
396+
the values specified in code:pMiColStarts and code:pMiRowStarts.
397+
Instead, the values should be calculated based on
398+
code:flags.uniform_tile_spacing_flag, code:pWidthInSbsMinus1,
399+
code:pHeightInSbsMinus1, the <<decode-av1-sequence-header,sequence header>>
400+
parameter code:flags.use_128x128_superblock, and the coded extent of the
401+
decoded picture.
402+
====
390403
** code:pWidthInSbsMinus1 is a pointer to an array of code:TileCols number
391404
of unsigned integers that corresponds to code:width_in_sbs_minus_1
392405
defined in section 6.8.14 of the <<aomedia-av1,AV1 Specification>>;

0 commit comments

Comments
 (0)