Khronos Group Releases Vulkan Ray Tracing
An Open, Cross-Platform Standard for Ray Tracing
The Khronos Group has ratified and published several provisional extensions that add ray tracing to the Vulkan API. These extensions are open, cross-platform, and cross-vendor. Its structure is like DirectX Raytracing, where rays are split into hit, closest hit, miss shaders. Rays can be cast from “any standard” shader stage, such as compute, vertex, and fragment shaders. (The Khronos Group did not seem to define what “any standard” is.)
AMD, Intel, and NVIDIA have all contributed quotes to the press release pledging support for the extension. NVIDIA has also released beta drivers, which makes sense because they already shipped a vendor-specific extension for ray tracing on Vulkan.
A fourth GPU vendor provided a quote: Imagination Technologies. They had a hardware solution long before NVIDIA, however they did not have any desktop or console market share (at the time). We covered their Mobile World Congress 2016 announcement, where I finished the post with a statement that unknowingly foreshadowed the RTX launch pricing controversy.
I am quite glad that AMD and Intel are focused on providing real-time ray tracing in hardware. It would have been a good time to punch back at NVIDIA with extra rasterization and shading hardware now that they budgeted a significant portion of it to fixed-function ray tracing. Doing so would hold the entire industry back, however, because cheap raycasts allow for several interesting algorithms. For example, shadows are very costly if you are constrained by rasterization (ROP) performance (because the lights do not know where shadows will be needed at the time they must be cast). You can mitigate all of that with raycasts during the material-lighting stage, but only if you can cast rays.
But, at some point, we can rely upon it being there.