-
Notifications
You must be signed in to change notification settings - Fork 475
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Change log for January 30, 2025 Vulkan 1.4.307 spec update:
Internal Issues * Update common blit image VUs to clamp slice blitting to a single layer/slice when the `maintenance8` feature is supported (internal issue 4160). * Mention added SPIR-V version support that was not previously shown for <<versions-1.1, Vulkan Version 1.1>> (internal issue 4166). * Update the introduction to the <<extensions, Layers & Extensions>> appendix to reflect how we publish specifications now (internal MR 7131). * Update VkSurfaceFormat2KHR VU 06750 to depend on the underlying extension not being support, rather than the pname:imageCompressionControlSwapchain feature (internal MR 7138). New Extensions * VK_NV_cooperative_vector * VK_NV_cluster_acceleration_structure * VK_NV_partitioned_acceleration_structure * VK_NV_ray_tracing_linear_swept_spheres
- Loading branch information
Showing
42 changed files
with
6,907 additions
and
99 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
// Copyright (c) 2024-2025 NVIDIA Corporation | ||
// | ||
// SPDX-License-Identifier: CC-BY-4.0 | ||
|
||
include::{generated}/meta/{refprefix}VK_NV_cluster_acceleration_structure.adoc[] | ||
|
||
=== Other Extension Metadata | ||
|
||
*Last Modified Date*:: | ||
2024-09-09 | ||
*Contributors*:: | ||
- Vikram Kushwaha, NVIDIA | ||
- Eric Werness, NVIDIA | ||
- Christoph Kubisch, NVIDIA | ||
- Jan Schmid, NVIDIA | ||
- Pyarelal Knowles, NVIDIA | ||
|
||
=== Description | ||
|
||
Acceleration structure build times can become a bottleneck in ray tracing | ||
applications dealing with extensive dynamic geometry. | ||
This extension addresses the problem by enabling applications to construct | ||
bottom-level acceleration structures (BLAS) from pre-generated acceleration | ||
structures based on clusters of triangles (CLAS), leading to significant | ||
improvements in build times. | ||
|
||
It provides a host-side query function to fetch the requirements and a | ||
versatile multi-indirect call for managing cluster geometry. | ||
This call enables applications to generate cluster geometry, construct | ||
Cluster BLAS from CLAS lists, and move or copy CLAS and BLAS. | ||
By sourcing inputs from device memory and processing multiple elements | ||
simultaneously, the call reduces the host-side costs associated with | ||
traditional acceleration structure functions. | ||
|
||
|
||
This extension adds support for the following SPIR-V extension in Vulkan: | ||
|
||
* `SPV_NV_cluster_acceleration_structure` | ||
|
||
include::{generated}/interfaces/VK_NV_cluster_acceleration_structure.adoc[] | ||
|
||
=== New or Modified Built-In Variables | ||
|
||
* <<interfaces-builtin-variables-clusteridnv,code:ClusterIDNV>> | ||
|
||
=== New SPIR-V Capability | ||
|
||
* <<spirvenv-capabilities-table-RayTracingClusterAccelerationStructureNV, | ||
code:RayTracingClusterAccelerationStructureNV>> | ||
|
||
=== Version History | ||
|
||
* Revision 2, 2024-09-09 (Vikram Kushwaha) | ||
** Changes to some structures causing incompatibility with Revision 1 | ||
* Revision 1, 2024-08-29 (Vikram Kushwaha) | ||
** Initial draft | ||
|
||
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
// Copyright (c) 2021-2025 The Khronos Group, Inc. | ||
// | ||
// SPDX-License-Identifier: CC-BY-4.0 | ||
|
||
include::{generated}/meta/{refprefix}VK_NV_cooperative_vector.adoc[] | ||
|
||
=== Other Extension Metadata | ||
|
||
*Last Modified Date*:: | ||
2024-05-23 | ||
*Interactions and External Dependencies*:: | ||
- This extension requires | ||
{spirv}/NV/SPV_NV_cooperative_vector.html[`SPV_NV_cooperative_vector`] | ||
- This extension provides API support for | ||
{GLSLregistry}/nv/GL_NV_cooperative_vector.txt[`GL_NV_cooperative_vector`] | ||
*Contributors*:: | ||
- Jeff Bolz, NVIDIA | ||
|
||
=== Description | ||
|
||
This extension adds support for using cooperative vector types in SPIR-V. | ||
Unlike cooperative matrix types, a variable with a cooperative vector type | ||
is logically stored in the invocation it belongs to, but they can cooperate | ||
behind the scenes when performing matrix-vector multiplies. | ||
Cooperative vectors do not require a fully occupied subgroup or uniform | ||
control flow like cooperative matrices, although these do increase the | ||
likelihood of being on the fast path. | ||
And unlike normal vector types, they have arbitrary length and support a | ||
relatively limited set of operations. | ||
These types are intended to help accelerate the evaluation of small neural | ||
networks, where each invocation is performing its own independent evaluation | ||
of the network. | ||
|
||
Cooperative vector types are defined by the | ||
{spirv}/NV/SPV_NV_cooperative_vector.html[`SPV_NV_cooperative_vector`] | ||
SPIR-V extension and can be used with the | ||
{GLSLregistry}/nv/GLSL_NV_cooperative_vector.txt[`GL_NV_cooperative_vector`] | ||
GLSL extension. | ||
|
||
This extension includes support for enumerating the combinations of types | ||
that are supported by the implementation, and for converting matrix data to | ||
and from an optimized opaque layout. | ||
|
||
include::{generated}/interfaces/VK_NV_cooperative_vector.adoc[] | ||
|
||
=== New SPIR-V Capabilities | ||
|
||
* <<spirvenv-capabilities-table-CooperativeVectorNV,CooperativeVectorNV>> | ||
|
||
=== Issues | ||
|
||
=== Version History | ||
|
||
* Revision 4, 2024-05-23 (Jeff Bolz) | ||
** Add maxCooperativeVectorComponents | ||
* Revision 3, 2024-05-23 (Jeff Bolz) | ||
** Add training functions | ||
* Revision 2, 2024-02-10 (Jeff Bolz) | ||
** Add device-side matrix conversion | ||
* Revision 1, 2023-12-13 (Jeff Bolz) | ||
** Initial revisions |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
// Copyright (c) 2025 NVIDIA Corporation | ||
// | ||
// SPDX-License-Identifier: CC-BY-4.0 | ||
|
||
include::{generated}/meta/{refprefix}VK_NV_partitioned_acceleration_structure.adoc[] | ||
|
||
=== Other Extension Metadata | ||
|
||
*Last Modified Date*:: | ||
2025-01-09 | ||
*Contributors*:: | ||
- Vikram Kushwaha, NVIDIA | ||
- Eric Werness, NVIDIA | ||
- Christoph Kubisch, NVIDIA | ||
- Jan Schmid, NVIDIA | ||
- Pyarelal Knowles, NVIDIA | ||
|
||
=== Description | ||
|
||
With an increase in scene complexity and expansive game worlds, the number | ||
of instances has surged in ray tracing over the last few years. | ||
The current Top Level Acceleration Structure (TLAS) API necessitates a full | ||
rebuild of the entire data structure even when only a few instances are | ||
modified. | ||
|
||
This extension introduces Partitioned Top Level Acceleration Structures | ||
(PTLAS) as an alternative to the existing TLAS. | ||
PTLAS enables the efficient reuse of previously constructed parts of the | ||
acceleration structure, resulting in much faster build times and supporting | ||
a higher number of instances. | ||
|
||
include::{generated}/interfaces/VK_NV_partitioned_acceleration_structure.adoc[] | ||
|
||
=== Version History | ||
|
||
* Revision 1, 2025-01-09 (Vikram Kushwaha) | ||
** Initial draft | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
// Copyright (c) 2025 NVIDIA Corporation | ||
// | ||
// SPDX-License-Identifier: CC-BY-4.0 | ||
|
||
include::{generated}/meta/{refprefix}VK_NV_ray_tracing_linear_swept_spheres.adoc[] | ||
|
||
=== Other Extension Metadata | ||
|
||
*Last Modified Date*:: | ||
2025-01-03 | ||
*Interactions and External Dependencies*:: | ||
- This extension requires | ||
{spirv}/NV/SPV_NV_linear_swept_spheres.html[`SPV_NV_linear_swept_spheres`] | ||
- This extension provides API support for | ||
{GLSLregistry}/nv/GLSL_NV_linear_swept_spheres.txt[`GL_NV_linear_swept_spheres`] | ||
*Contributors*:: | ||
- Vikram Kushwaha, NVIDIA | ||
- Eric Werness, NVIDIA | ||
- Daniel Koch, NVIDIA | ||
- Ashwin Lele, NVIDIA | ||
- Nathan Morrical, NVIDIA | ||
|
||
=== Description | ||
|
||
This extension adds two new primitives for ray tracing: a sphere primitive | ||
and a linear swept sphere (LSS) primitive. | ||
The purpose of the LSS primitive is to enable rendering of high quality hair | ||
and fur using a compact primitive representation encoded in the acceleration | ||
structure. | ||
Sphere primitives are defined by a position and a radius and are a subset of | ||
LSS, but are useful in their own right, for example for particle systems. | ||
|
||
|
||
This extension adds support for the following SPIR-V extension in Vulkan: | ||
|
||
* `SPV_NV_linear_swept_spheres` | ||
|
||
include::{generated}/interfaces/VK_NV_ray_tracing_linear_swept_spheres.adoc[] | ||
|
||
=== New or Modified Built-In Variables | ||
|
||
* <<interfaces-builtin-variables-hitissphere,code:HitIsSphereNV>> | ||
* <<interfaces-builtin-variables-hitislss,code:HitIsLSSNV>> | ||
* <<interfaces-builtin-variables-hitsphereposition,code:HitSpherePositionNV>> | ||
* <<interfaces-builtin-variables-hitsphereradius,code:HitSphereRadiusNV>> | ||
* <<interfaces-builtin-variables-hitlsspositions,code:HitLSSPositionsNV>> | ||
* <<interfaces-builtin-variables-hitlssradii,code:HitLSSRadiiNV>> | ||
|
||
=== New SPIR-V Capabilities | ||
|
||
* <<spirvenv-capabilities-table-RayTracingSpheresGeometryNV, | ||
code:RayTracingSpheresGeometryNV>> | ||
* <<spirvenv-capabilities-table-RayTracingLinearSweptSpheresGeometryNV, | ||
code:RayTracingLinearSweptSpheresGeometryNV>> | ||
|
||
=== Version History | ||
|
||
* Revision 1, 2025-01-03 (Vikram Kushwaha) | ||
** Initial draft |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.