This month in the NVIDIA Developer Blog, Ashwin Lele and Ashwin Kolhe discuss how to use HLSL Ray Tracing with Vulkan. The NVIDIA VKRay extension, with the DXC compiler and SPIR-V backend, provides the same level of ray tracing functionality in Vulkan through HLSL as is currently available in DXR. You can now develop ray-tracing applications using DXR or NVIDIA VKRay with minimized shader re-writing to deploy to either the DirectX or Vulkan APIs.
Google acquired and open-sourced GraphicsFuzz a little over a year ago. GraphicsFuzz is no longer about only OpenGL, OpenGL ES and GLSL shaders but also operates on SPIR-V shaders for consumption by Vulkan drivers. There are also GLSL/SPIR-V shader reducers in addition to the fuzzer that relies upon randomized metamorphic testing.
A liaison between W3C and the Khronos Group was setup to coordinate on shared areas of interest. Exploratory work includes the GPU for the Web Community Group discussing possible use of SPIR-V as shading language for WebGPU with the Khronos Group through that liaison.
The Khronos Group will hold a Birds of a Feather (BOF) at this years SuperComputing ‘19 (SC9). Several of Khronos’ standards will also be included in presentations at SC19, including OpenCL, SPIR-V and SYCL. For a complete and up-to-date list of Khronos BOF and related sessions, visit the SC19 event page.
The 8th International Workshop on OpenCL (IWOCL) including SYCLcon 2020 has been announced. Join like minded developers for three days of talks, workshops and community networking aimed at furthering the collaboration and knowledge sharing amongst the international community of high-performance computing specialist working with OpenCL, SYCL, SPIR and Vulkan Compute. The event will include a mix of hands-on tutorials, technical presentations, research papers, posters, panel discussions, networking and vendor discussions.
RenderDoc 1.5 has been released. Changes include: SPIR-V reflection and disassembly has been refactored to be more reliable and is based on the publicly available grammar json; Vulkan has a new replay-time optimisation which takes advantage of the above replay options dialog; OpenGL has a low-memory optimisation to defer copying initial contents of textures and buffers that are rarely modified; Support for twenty-one (21) Vulkan extensions have been added; Support for fifteen (15) OpenGL extensions have been added along with whitelisting of some OpenGL ES extensions that were already supported. A complete list of changes and improvements is available in the Latest release notes.
Neil Trevett, the president of the Khronos Group, presented at the X.Org Developers’ Conference for the first time. During his presentation on October 2nd 2019 he covered the usual Khronos initiatives, how Khronos engages in open-source and open standards, and related information. Phoronix has done a short write-up on Neil’s talk.
Last week saw the release of Vulkan 1.1.123. The release sees four issues from GitHub addressed and several Khronos internal issues fixed. Two new extensions have also be included: VK_KHR_shader_subgroup_extended_type: enables the Non Uniform Group Operations in SPIR-V to support 8-bit integer, 16-bit integer, 64-bit integer, 16-bit floating-point, and vectors of these types, and VK_GOOGLE_user_type: allows use of the SPV_GOOGLE_user_type extension in SPIR-V shader modules.
The complete video from Vulkanised 2019 in Cambridge UK is now online. If you were not able to get to this May event, you may now watch the seven Vulkan sessions online and follow along with the slide presentations:
Vulkan Update – Kris Rose, Khronos Group Developer Relations: slides, video
Vulkan: Live Long and Optimise – Michael Parkin-White and Calum Shields, Samsung Electronics: slides, video
Vulkan Best Practices - Attilio Provenzano, Arm: slides, video
SPIRV-Cross Taking SPIR-V to the next level – Hans Kristian Arntzen, SPIRV-Cross: slides, video
Cross Process Sharing and Direct Mode with Vulkan – Jacob Bornecrantz, Collabora: slides, video
Optimising a AAA Vulkan Title on Desktop – Lou Kramer, AMD: slides, video
Panel Discussion - Alex Smith (Feral Interactive), Hans-Kristian Arntzen (SPIRV-Cross), Jan-Harald Fredriksen (Arm), Lou Kramer (AMD), Alon Or-bach, (Samsung Electronics): video
The Khronos OpenCL working group recently created a new Tooling Subgroup with the aim of improving the tools ecosystem for this widely-used open standard for heterogeneous computation—in particular, boosting the development of tooling components that can be shared by multiple vendors. Subgroup members have been meeting regularly to coordinate the overall direction for OpenCL tools, with an emphasis on strengthening the development of tools in open source, particularly by encouraging collaboration between the OpenCL and LLVM communities.
The 2018 X.Org Developer’s Conference (XDC2018) videos have now been posted online. XCD 2018 saw many Khronos members sponsor this conference, including Igalia, AMD, Arm, COLLABORA, Google, NVIDIA, Intel and Valve. The talks covered Vulkan, OpenGL, OpenGL ES, OpenCL, SPIR-V, GLSL and OpenXR. We’ve compiled a list of all the videos discussing these Khronos standards here, or you can watch all the videos from the conference on the X.Org Foundation YouTube channel.
Khronos has released a provisional Vulkan Memory Model Specification that includes extensions for Vulkan, SPIR-V, and GLSL and gives Vulkan developers additional control over how their shaders synchronize access to should cooperate safely over memory operations in a parallel execution environment. In tandem with the extension specification, Khronos has released memory model extension conformance tests to enable implementers to do early tests on their shader compilers to ensure that the specified memory synchronization is implemented correctly. The memory model will have an Alloy description of the extension functionality to enable formal modeling and experimentation.
LunarG has updated its white paper that describes using spirv-opt to reduce SPIR-V size. New discussions include using spirv-opt to “legalize” SPIR-V when generated from HLSL; SPIR-V integration with the glslang and dxc frontends; description of new size reduction passes available in spirv-opt; and updates to the recommended recipe for those who wish to customize their optimization.