Vulkan-docs: Task list for Vulkan Ray Tracing Provisional release

Created on 17 Mar 2020  路  12Comments  路  Source: KhronosGroup/Vulkan-Docs

Today the Khronos Vulkan Ray Tracing Task Sub Group (TSG) is announcing the public release of the provisional Vulkan Ray Tracing extensions. See the Press Release for the announcement.

The provisional version of Vulkan Ray Tracing that we are releasing today consists of 3 Vulkan, 2 SPIR-V, and 2 GLSL extensions. See the introductory blog post for more details and an overview of the functionality.

Vulkan Specifications:

SPIR-V Specifications:

GLSL Extension Specifications:

Khronos welcomes feedback on the Vulkan Ray Tracing set of provisional specifications from the developer and content creation communities through the Khronos Developer Slack and Vulkan GitHub Issues Tracker. Developers are also encouraged to share comments with their preferred hardware vendors.
Your feedback is critical to enable us to finalize the first version of Vulkan Ray Tracing and make it genuinely meet your needs!

However, as this is a provisional release, some functionality is likely to change before the final release, consequently we are asking that driver vendors not ship it in production drivers and that ISVs not use the provisional version in production applications.

Applications using the provisional functionality must specifically opt into the interfaces being defined in the Vulkan header using one of the following techniques (similar to the process for enabling the windowing system extensions), either by:

#define VK_ENABLE_BETA_EXTENSIONS
#include <vulkan/vulkan.h>

or by

#include <vulkan/vulkan_core.h>
#include <vulkan/vulkan_beta.h>

and should also check for the exact Vulkan extension version that they are expecting.

Although we do not have a specific timeframe to announce for specification finalization, we want to move forward as quickly as we can, while ensuring the developer community is happy and we have a completed set of conformance tests and at least two implementations that can pass those tests.

The task list for the Vulkan Ray Tracing provisional release is:

  • [x] Vulkan specification: https://www.khronos.org/registry/vulkan/#apispecs (owner: @oddhack)
  • [x] SPIR-V specifications: https://github.com/KhronosGroup/SPIRV-Registry/pull/64 (owner: @dgkoch, @johnkslang )
  • [x] GLSL specifications: https://github.com/KhronosGroup/GLSL/pull/114 (owner: @dgkoch, @johnkslang )
  • [x] Vulkan headers: in master (via https://github.com/KhronosGroup/Vulkan-Headers/pull/105) (owner: @oddhack)
  • [x] SPIRV Headers: in master (via https://github.com/KhronosGroup/SPIRV-Headers/pull/149) (owner: @johnkslang )
  • [x] SPIRV-Tools: in master (via https://github.com/KhronosGroup/SPIRV-Tools/pull/3235) (owner: @dneto0, @s-perron)
  • [x] glslang support: (owner: @johnkslang )

    • [x] update to latest SPIR-V header

    • [x] GLSL_EXT_ray_tracing / SPV_KHR_ray_tracing - https://github.com/KhronosGroup/glslang/pull/2130 (owner: @alelenv, @dgkoch)

    • [x] GLSL_EXT_ray_query / SPV_KHR_ray_query - https://github.com/KhronosGroup/glslang/pull/2139 (owner: @Tobski )

    • [x] bug fix merged to master (via https://github.com/KhronosGroup/glslang/pull/2157)

    • [x] bug fix merged to master (via https://github.com/KhronosGroup/glslang/pull/2159)

    • [x] bug fix merged to master (via https://github.com/KhronosGroup/glslang/pull/2166)

  • [x] shaderc support: (owner: @dneto0, @dgkoch)

    • [x] updates all tools for provisional ray tracing: in master (via google/shaderc#1006) (owner: @dnet0)

    • [x] remove NV_EXTENSIONS define: in master (via https://github.com/google/shaderc/pull/1003) (owner: @dgkoch )

    • [x] pick up ray query support https://github.com/google/shaderc/pull/1018

    • [x] known_good update (via https://github.com/google/shaderc/pull/1022)

    • [x] SDK-Candidiate DEP update (via https://github.com/google/shaderc/pull/1024)

    • [x] SDK-Candidate2 known good update (via https://github.com/google/shaderc/pull/1025 @dneto0)

    • [x] SDK-Candidate-2 DEP update (via https://github.com/google/shaderc/pull/1027) (@dgkoch)

    • [x] SDK-Candidate-2 known_good update (via https://github.com/google/shaderc/pull/1033) (@dneto0)

  • [x] DXC support: (owner: @alelenv, @Tobski )

    • [x] SPV_KHR_ray_tracing - in master (via https://github.com/microsoft/DirectXShaderCompiler/pull/2780) (owner: @alelenv )

    • [x] SPV_KHR_ray_query (https://github.com/microsoft/DirectXShaderCompiler/pull/2834) (owner: @jiaolu)

  • [x] Validation Layer support: in master (via https://github.com/KhronosGroup/Vulkan-ValidationLayers/pull/1632) (owner: @jeffbolznv )
  • [x] Vulkan SDK: https://vulkan.lunarg.com/sdk/home available now (owner: @mikew-lunarg )

Public installable Vulkan Ray Tracing Provisional (aka Beta) drivers are available for download from the following vendors at the supplied URLs:

Ray Tracing

Most helpful comment

All 12 comments

What's with the deleted comments? If this issue is not to be commented on by the public, please can you lock and limit it so that we're not confused :P

What's with the deleted comments? If this issue is not to be commented on by the public, please can you lock and limit it so that we're not confused :P

They were from unrelated people I'd accidentally tagged when I created the issue. I figured removing them was better so that they don't get all the notifications from this issue. Now I'm going to have remove this thread so it's not cluttering things up too :-P

I've updated SDK release to "first half of April", which depends on updates from other upstream repos.

Slight error in this post: the macro to enable the beta extensions is VK_ENABLE_BETA_EXTENSIONS and not VK_ENABLE_BETA_EXTENSIONS_KHR. Sorry for the nitpick!

@dgkoch Ah ok understood. As to not further clog up this issue with an unrelated thread, please can you use the Hide function instead of the Delete function (as I do still want to receive notifications as well as I want people to see why comments have been deleted)

Done. I was unaware of that option. Thanks for pointing it out.

Slight error in this post: the macro to enable the beta extensions is VK_ENABLE_BETA_EXTENSIONS and not VK_ENABLE_BETA_EXTENSIONS_KHR. Sorry for the nitpick!

馃う鈥嶁檪 Doh. That was a last minute change I forgot to reflect in the documentation. Corrected above (and soon in the blog post as well).

I updated Shaderc's known-good branch with a build with necessary support from SPIRV-Tools, SPIRV-Headers, Glslang, and Shaderc itself. https://github.com/google/shaderc/pull/1006

Validation layer support has been merged.

I updated Shaderc's known-good branch with a build with necessary support from SPIRV-Tools, SPIRV-Headers, Glslang, and Shaderc itself. google/shaderc#1006

@dneto0 can we get another shaderc update to include https://github.com/KhronosGroup/glslang/pull/2139 ?

I updated Shaderc's known-good branch with a build with necessary support from SPIRV-Tools, SPIRV-Headers, Glslang, and Shaderc itself. google/shaderc#1006

@dneto0 can we get another shaderc update to include KhronosGroup/glslang#2139 ?

See https://github.com/google/shaderc/pull/1018

DXC support for ray query has been merged.
microsoft/DirectXShaderCompiler#2834

This completes the provisional release.

Was this page helpful?
0 / 5 - 0 ratings