The rays of Khronos reach everywhere

From gaming to CAD and holograph displays.

In 2018, before there were pandemics, vicious nation-splitting election campaigns, and the biggest GPU ever, a small group of ray-loving engineers got together to change and save the world.

In early 2018, the Vulkan Working Group formed the Vulkan Ray Tracing Task Subgroup (TSG in Khronos kode). Its goal was to enable a focused design effort. Since then, the TSG has received dozens of design suggestions and requests from hardware vendors and ISVs.

One key design goal was to provide a single, coherent cross-platform and multi-vendor framework for ray tracing acceleration that could be easily used together with existing Vulkan functionality. And Khronos has done it.

Khronos released final Vulkan Ray Tracing extensions in November 2020 to seamlessly integrate ray tracing functionality alongside Vulkan’s rasterization framework, making Vulkan the industry’s first open, cross-vendor, cross-platform standard for ray tracing acceleration.

In mid-December 2020, Khronos announced that LunarG has released the Vulkan Software Development Kit (SDK) version 1.2.162.0, with full support for the new Vulkan Ray Tracing extensions, including Validation Layers and integration of upgraded GLSL, HLSL, and SPIR-V shader toolchains.

Founded in 2009, Fort Collins-based LunarG is a professional services organization that delivers 3D graphics software services and solutions. LunarG recently donated an open-source SDK for the Windows, Linux, and macOS operating systems to the Khronos Group. The SDK is open source and freely available to all.

Vulkan Samples and Guide have been upgraded by Khronos in open-source to illustrate ray tracing techniques using the Vulkan Ray Tracing API. Finally, with production drivers shipping from both AMD and Nvidia, developers can now integrate Vulkan ray tracing functionality into their applications.

Vulkan Ray Tracing can be deployed using existing GPU compute or dedicated Ray Tracing cores. The Vulkan SDK now integrates all the components necessary for developers to easily use the new ray tracing extensions, such as new shader toolchains, without needing them to be built from multiple repositories. It also supports ray tracing validation within the SDK validation layers.

Vulkan ray tracing API is now developer ready.

Vulkan Ray Tracing includes several Vulkan, SPIR-V, and GLSL extensions, some of which are optional. The primary VK_KHR_ray_tracing extension supports acceleration structure building and management, ray tracing shader stages and pipelines, and ray query intrinsics for all shader stages. VK_KHR_pipeline_library provides the ability to provide a set of shaders that can be efficiently linked into ray tracing pipelines.

The VK_KHR_deferred_host_operations extension enables driver operations, including ray tracing pipeline compilation or CPU-based acceleration structure construction, to be offloaded to application-managed CPU thread pools.

Vulkan Ray Tracing includes GLSL and SPIR-V Extensions that, says Khronos, enable compiled GLSL/SPIR-V shaders to operate in a Ray Tracing Pipeline—similar to HLSL features used in Direct3D’s DXR.

In an interesting development, Vulkan developers can now choose between GLSL and HLSL for their ray tracing shaders! With Microsoft’s knowledge and approval, Google and others have added SPIR-V code generation to Microsoft’s DXC HLSL compiler, which was open-sourced in Jan 2017, to enable the use of HLSL with Vulkan. Most recently, Nvidia added code generation to DXC to generate SPIR-V for the Vulkan Ray Tracing extensions from HLSL. This enables developers to use HLSL shaders with minimal changes between Vulkan Ray Tracing and DXR, and streamlining porting application code between the two ray tracing APIs.

Comparison of Vulkan and DirectX ray tracing functionality.

Khronos has received industry-wide support and congratulations for this ray tracing API.

Production Vulkan drivers that include the Vulkan Ray Tracing extensions are now shipping for both AMD and Nvidia GPUs, starting with the AMD Radeon Adrenalin 20.11.3 and Nvidia production drivers for both GeForce and Quadro on Windows (version 460.89) and Linux (version 460.27.04). The Vulkan Ray Tracing extensions will also be supported by Intel Xe-HPG GPUs, available in 2021, with driver support provided via regular driver updates.

Additional informative materials include blogs on how Vulkan Ray Tracing has enabled Holochip to innovate on efficient rendering techniques for light field displays, how to use the Vulkan Ray Tracing extensions, exploring more in-depth technical details of the Vulkan Ray Tracing specifications and best practices for blending Vulkan rasterization and ray tracing techniques. Nvidia has also released a number of new Vulkan Ray Tracing educational materials including  a tutorial that steps through how to create a complete mini-path tracer using the Vulkan Ray Tracing API, and a Vulkan-based glTF ray tracing viewer with open source on GitHub. The Khronos Group is actively monitoring developer feedback on the Vulkan Ray Tracing extension and ecosystem artifacts through the Vulkan issues tracker on GitHub.

What do we think?

Although we admire and praise Microsoft and Nvidia for introducing the industry to realtime ray tracing, they and the rest of the industry know a concept and technology can not advance if it is proprietary (with some notable exceptions). Therefore, both organizations have been extremely helpful with Khronos’ effort and the efforts of LunarG. Like all things Khronos does, this has been an industry-wide effort and will take its place among the other game-changing introductions from Khronos such as OpenGL ES, Vulkan, and SPIR-V.