Skip to content

Commit 859d40c

Browse files
committed
Change log for December 12, 2025 Vulkan 1.4.336 spec update:
Github Issues * Add a NOTE to the <<interfaces-resources-layout, Offset and Stride (#2627) Assignment>> section linking to a different explanation of the requirements in the Vulkan Guide (public issue 2621). * Change XML `bitvalues` attribute to `requires' for a few 32-bit Vk*FlagBits types (public PR 2624). * Clarify that the VkDeviceDeviceMemoryReportCreateInfoEXT::pUserData pointer passed through callbacks can be NULL in XML and the places in the specification it is specified (Vulkan-ValidationLayers issue 11228). Internal Issues * Make enumerant names in the single-file HTML specification and independent refpage outputs into links to the enumerated type definition they belong to (not done for Antora, yet) (internal issue 4283). * Add Mesh and Task shaders to standalone SPIR-V LocalSize VU 10685 (internal issue 4432). * Move VUs requiring image layouts match image usage from common image memory barrier to common image layout section and include them with VkHostImageLayoutTransitionInfo (internal issue 4467). * Clarify the use of extended queues without the corresponding feature enable for VkDeviceQueueCreateInfo (internal issue 4494). * Add a NOTE to vkCmdEndRendering explaining multi-pass ordering considerations (internal issue 4513). * Add ShaderObject maxBoundDescriptorSets VU for VkShaderCreateInfoEXT (internal issue 4518). * Clarify unsized arrays of input attachments in the <<interfaces-inputattachment, Fragment Input Attachment Interface>> section (internal issue 4545). * Add <<descriptorsets-inputattachment, allowed ImageLayout for InputAttachment>> issue 4567). * Restore missing validity include for vkCmdDecompressMemoryIndirectCountNV (internal issue 4514). * Relax phrasing of VK_KHR_suboptimal from "`is returned if an image became available`" to "`may be returned...`" in the discussion of vkAcquireNextImageKHR in the <<wsi-swapchain, WSI Swapchain>> chapter (internal MR 7102). * Add VUs to vkGetQueryPoolResults to check stride only when queryCount > 1 (internal MR 7476). * Clarify when scratch data must be valid in VUs for vkBuildAccelerationStructuresKHR, vkBuildMicromapsEXT, VkBuildPartitionedAccelerationStructureInfoNV, VkClusterAccelerationStructureCommandsInfoNV, vkCmdBuildMicromapsEXT, and common build acceleration structure (internal MR 7628). * Specify `optional` XML attributes for VkDeviceAddress members of VkBuildPartitionedAccelerationStructureInfoNV VkClusterAccelerationStructureCommandsInfoNV, allowing them to be zero and update VkClusterAccelerationStructureCommandsInfoNV accordingly (internal MR 7782). * Use new consistent phrasing for buffer usage language consistently in existing VUs (internal MR 7851). * Typo fix to VkDescriptorGetInfoEXT VU 12216 (internal MR 7870). * Fix copy-indirect and create-view interaction with disjoint planes for common VU 07665 and VkImageViewCreateInfo VU 01020 (internal MR 7878). * Remove "`Alternatively, to`" phrasing from vk*2 command descriptions so the corresponding refpages read sensibly in isolation from the vk*non-2 command descriptions found immediately above in the full specification (internal MR 7888). * Add dynamic rendering VUs for VK_QCOM_multiview_per_view_viewports equivalent to VkGraphicsPipelineCreateInfo VUs 07730 and 07731 (internal MR 7892). * Cleanup and unify markup style of proposal documents, and remove RESOLVED: from issues since every published proposal should have resolved all issues (internal MR 7899). * Add VkRenderingAttachmentInfo VU to enforce resolveMode != VK_RESOLVE_MODE_NONE if multisampledRenderToSingleSampledEnable is true (internal MR 7902). * Evaluate complex dependencies in XML at format feature generator runtime, instead of relying on asciidoc which cannot evaluate all such expressions properly (internal MR 7908). New Extensions * VK_NV_compute_occupancy_priority
1 parent 1a94d08 commit 859d40c

File tree

142 files changed

+2728
-1942
lines changed

Some content is hidden

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

142 files changed

+2728
-1942
lines changed

ChangeLog.adoc

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

1515
'''
1616

17+
Change log for December 12, 2025 Vulkan 1.4.336 spec update:
18+
19+
Github Issues
20+
21+
* Add a NOTE to the <<interfaces-resources-layout, Offset and Stride
22+
(#2627) Assignment>> section linking to a different explanation of the
23+
requirements in the Vulkan Guide (public issue 2621).
24+
* Change XML `bitvalues` attribute to `requires' for a few 32-bit
25+
Vk*FlagBits types (public PR 2624).
26+
* Clarify that the VkDeviceDeviceMemoryReportCreateInfoEXT::pUserData
27+
pointer passed through callbacks can be NULL in XML and the places in
28+
the specification it is specified (Vulkan-ValidationLayers issue 11228).
29+
30+
Internal Issues
31+
32+
* Make enumerant names in the single-file HTML specification and
33+
independent refpage outputs into links to the enumerated type definition
34+
they belong to (not done for Antora, yet) (internal issue 4283).
35+
* Add Mesh and Task shaders to standalone SPIR-V LocalSize VU 10685
36+
(internal issue 4432).
37+
* Move VUs requiring image layouts match image usage from common image
38+
memory barrier to common image layout section and include them with
39+
VkHostImageLayoutTransitionInfo (internal issue 4467).
40+
* Clarify the use of extended queues without the corresponding feature
41+
enable for VkDeviceQueueCreateInfo (internal issue 4494).
42+
* Add a NOTE to vkCmdEndRendering explaining multi-pass ordering
43+
considerations (internal issue 4513).
44+
* Add ShaderObject maxBoundDescriptorSets VU for VkShaderCreateInfoEXT
45+
(internal issue 4518).
46+
* Clarify unsized arrays of input attachments in the
47+
<<interfaces-inputattachment, Fragment Input Attachment Interface>>
48+
section (internal issue 4545).
49+
* Add <<descriptorsets-inputattachment, allowed ImageLayout for
50+
InputAttachment>> issue 4567).
51+
* Restore missing validity include for
52+
vkCmdDecompressMemoryIndirectCountNV (internal issue 4514).
53+
* Relax phrasing of VK_KHR_suboptimal from "`is returned if an image
54+
became available`" to "`may be returned...`" in the discussion of
55+
vkAcquireNextImageKHR in the <<wsi-swapchain, WSI Swapchain>> chapter
56+
(internal MR 7102).
57+
* Add VUs to vkGetQueryPoolResults to check stride only when queryCount >
58+
1 (internal MR 7476).
59+
* Clarify when scratch data must be valid in VUs for
60+
vkBuildAccelerationStructuresKHR, vkBuildMicromapsEXT,
61+
VkBuildPartitionedAccelerationStructureInfoNV,
62+
VkClusterAccelerationStructureCommandsInfoNV, vkCmdBuildMicromapsEXT,
63+
and common build acceleration structure (internal MR 7628).
64+
* Specify `optional` XML attributes for VkDeviceAddress members of
65+
VkBuildPartitionedAccelerationStructureInfoNV
66+
VkClusterAccelerationStructureCommandsInfoNV, allowing them to be zero
67+
and update VkClusterAccelerationStructureCommandsInfoNV accordingly
68+
(internal MR 7782).
69+
* Use new consistent phrasing for buffer usage language consistently in
70+
existing VUs (internal MR 7851).
71+
* Typo fix to VkDescriptorGetInfoEXT VU 12216 (internal MR 7870).
72+
* Fix copy-indirect and create-view interaction with disjoint planes for
73+
common VU 07665 and VkImageViewCreateInfo VU 01020 (internal MR 7878).
74+
* Remove "`Alternatively, to`" phrasing from vk*2 command descriptions so
75+
the corresponding refpages read sensibly in isolation from the vk*non-2
76+
command descriptions found immediately above in the full specification
77+
(internal MR 7888).
78+
* Add dynamic rendering VUs for VK_QCOM_multiview_per_view_viewports
79+
equivalent to VkGraphicsPipelineCreateInfo VUs 07730 and 07731 (internal
80+
MR 7892).
81+
* Cleanup and unify markup style of proposal documents, and remove
82+
RESOLVED: from issues since every published proposal should have
83+
resolved all issues (internal MR 7899).
84+
* Add VkRenderingAttachmentInfo VU to enforce resolveMode !=
85+
VK_RESOLVE_MODE_NONE if multisampledRenderToSingleSampledEnable is true
86+
(internal MR 7902).
87+
* Evaluate complex dependencies in XML at format feature generator
88+
runtime, instead of relying on asciidoc which cannot evaluate all such
89+
expressions properly (internal MR 7908).
90+
91+
New Extensions
92+
93+
* VK_NV_compute_occupancy_priority
94+
95+
'''
96+
1797
Change log for November 28, 2025 Vulkan 1.4.335 spec update:
1898

1999
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 = 335
154+
PATCHVERSION = 336
155155
BASEOPTS =
156156

157157
ifneq (,$(findstring VKSC_VERSION_1_0,$(VERSIONS)))
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
// Copyright 2025 The Khronos Group Inc.
2+
// SPDX-License-Identifier: CC-BY-4.0
3+
4+
include::{generated}/meta/{refprefix}VK_NV_compute_occupancy_priority.adoc[]
5+
6+
=== Other Extension Metadata
7+
8+
*Last Modified Date*::
9+
2025-12-01
10+
*Contributors*::
11+
- Chris Lentini, NVIDIA
12+
- Eric Werness, NVIDIA
13+
- Lionel Duc, NVIDIA
14+
- Peter Deayton, NVIDIA
15+
16+
=== Description
17+
18+
This extension provides applications with control over how their compute
19+
workloads utilize GPU compute resources, specifically allowing
20+
prioritization relative to other simultaneously executing workloads.
21+
Applications can specify the priority with which compute workloads should
22+
occupy GPU compute resources, allowing for a fine-grained distinction
23+
between workloads that may want to execute at a background priority over a
24+
long period of time versus workloads with harder latency requirements.
25+
26+
The extension introduces a new command
27+
flink:vkCmdSetComputeOccupancyPriorityNV that allows applications to set the
28+
occupancy priority for subsequent compute dispatches.
29+
The occupancy priority affects how compute workloads utilize GPU compute
30+
resources relative to other simultaneously executing workloads.
31+
32+
The occupancy priority is stateful on a command buffer.
33+
All commands listed in the <<dispatch, Dispatching Commands>> chapter issued
34+
subsequent to a flink:vkCmdSetComputeOccupancyPriorityNV call will be
35+
executed with the specified priority parameters until another
36+
flink:vkCmdSetComputeOccupancyPriorityNV call is made.
37+
38+
For convenience, three named occupancy priority values are defined:
39+
40+
* **VK_COMPUTE_OCCUPANCY_PRIORITY_LOW_NV** - a constant value that can be
41+
used for
42+
slink:VkComputeOccupancyPriorityParametersNV::pname:occupancyPriority to
43+
specify a low priority level.
44+
45+
* **VK_COMPUTE_OCCUPANCY_PRIORITY_NORMAL_NV** - a constant value that can be
46+
used for
47+
slink:VkComputeOccupancyPriorityParametersNV::pname:occupancyPriority to
48+
specify a normal priority level.
49+
This represents the default priority level.
50+
51+
* **VK_COMPUTE_OCCUPANCY_PRIORITY_HIGH_NV** - a constant value that can be
52+
used for
53+
slink:VkComputeOccupancyPriorityParametersNV::pname:occupancyPriority to
54+
specify a high priority level.
55+
56+
All command buffers (primary and secondary) start with a priority level
57+
equal to the VK_COMPUTE_OCCUPANCY_PRIORITY_NORMAL_NV value.
58+
The priority state is not inherited by secondary command buffers - each
59+
command buffer maintains its own independent priority state.
60+
61+
include::{generated}/interfaces/VK_NV_compute_occupancy_priority.adoc[]
62+
63+
[NOTE]
64+
====
65+
The extension only allows specification of occupancy priority for compute
66+
workloads, however, the priorities will also impact the prioritization of
67+
compute workloads relative to simultaneously executing graphics workloads.
68+
In such a scenario, the graphics workload may be thought of as executing at
69+
VK_COMPUTE_OCCUPANCY_PRIORITY_NORMAL_NV priority, and so a simultaneously
70+
executing compute workload with VK_COMPUTE_OCCUPANCY_PRIORITY_HIGH_NV
71+
occupancy priority will preferentially utilize available compute resources.
72+
====
73+
74+
[NOTE]
75+
====
76+
Workloads specified with a higher priority may begin execution after
77+
workloads specified with a lower priority, at which point they may find GPU
78+
compute resources already occupied.
79+
So, while they will from that point forward preferentially occupy available
80+
compute resources, they may not ramp up to full occupancy until the already
81+
present lower priority work has reached a point where it can relinquish
82+
compute resources.
83+
====
84+
85+
=== Issues
86+
87+
None.
88+
89+
=== Version History
90+
91+
* Revision 1, 2025-08-06 (Chris Lentini)
92+
** Initial revision

appendices/spirvenv.adoc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -570,9 +570,10 @@ or knowledge of runtime information, such as enabled features.
570570
any-hit, closest hit, miss, fragment, vertex, tessellation evaluation,
571571
or geometry shaders, the execution Scope must: be code:Subgroup
572572
* [[VUID-StandaloneSpirv-None-10685]]
573-
For each compute shader entry point, either a code:TileShadingRateQCOM,
574-
code:LocalSize, or code:LocalSizeId {ExecutionMode}, or an object
575-
decorated with the code:WorkgroupSize decoration must: be specified
573+
Either a code:TileShadingRateQCOM, code:LocalSize, or code:LocalSizeId
574+
{ExecutionMode}, or an object decorated with the code:WorkgroupSize
575+
decoration must: be specified for each entry point with a task, mesh, or
576+
compute {ExecutionModel}
576577
* [[VUID-StandaloneSpirv-DerivativeGroupQuadsNV-04684]]
577578
For compute shaders using the code:DerivativeGroupQuadsNV execution
578579
mode, the first two dimensions of the local workgroup size must: be a

0 commit comments

Comments
 (0)