Skip to main content

Vulkan tagged news

PoCL 3.1 provides compatibility with the LLVM/Clang 15.0 release, switches to using lowercase device names for the platform setup via the “POCL_DEVICES” environment variable, there has been a major rework to the custom device driver, much improved SPIR-V support, continued work towards implementing a Vulkan driver, and a basic OpenCL cl_khr_command_buffer implementation.

NVIDIA RTX™ IO is a suite of technologies that enables rapid GPU-based asset decompression and loading. NVIDIA’s GDeflate GPU decompression format delivers IO-saturating performance on modern NVMe devices. GDeflate is used in Microsoft’s DirectStorage API, and now NVIDIA is contributing the technology for consideration by the Vulkan working group at Khronos. Two new NVIDIA Vulkan extensions to accelerate RTX IO are were released in the Vulkan 1.3.233 update and are supported in the latest NVIDIA drivers on both Linux and Windows. VK_NV_memory_decompression handles decompressing assets on GPU, and VK_NV_copy_memory_indirect handles copying decompressed data to Vulkan buffers/images.

MoltenVK Enables Two Nintendo Emulators on macOS

Two open-source Nintendo emulator projects recently posted updates on their success in shipping on macOS using the open source MoltenVK ‘Vulkan over Metal’ runtime library:

  • Ryujinx Switch Emulator Uses MoltenVK to Ship on Mac
    “All in all, we’re pleased with what we’ve managed to accomplish. A barrier that many, including ourselves, originally thought unbreakable has been cracked wide open, and the best part is: this is just the beginning. With not only our own efforts to improve the core emulation, but upcoming updates to Metal 3 and the constantly improving MoltenVK, the experience is only going to get better”
  • Dolphin GameCube and the Wii Emulator Compares Metal Native Backend and MoltenVK
    “We will be relying on MoltenVK to be the benchmark that we compare our native Metal backend against going forward. And it should perform that role excellently, as it is bringing our well tested Vulkan backend to macOS through a very well supported translation layer from a team that has earned our trust. So, while our new native Metal backend is faster, MoltenVK is here to stay. Together, they will help us deliver the most consistently reliable and performant experience that we can give to our macOS users”

The new VK_EXT_descriptor_buffer extension will change how engines approach descriptors going forward. Descriptor sets are now backed by VkBuffer objects where you memcpy in descriptors. In the following blog, Hans-Kristian Arntzen, gives us an overview of the new extension including the history, reasoning, and how to implement.

New Features Added to All Vulkan SDKs include:

Two new and important features have been added to GFXReconstruct:

  • The “Virtual Swapchain” feature fixes incorrect screen output when swapchain image acquisition order or count is different on the target platform. Virtual Swapchain is enabled by default but can be disabled. See the GFXReconstruct documentation for more information.
  • The new gfxrecon-convert tool (a.k.a. gfxrecon.py convert) produces JSONlines output representing all the Vulkan commands in a GFXReconstruct capture. For more information, see the “JSON Lines Conversion” section of the GFXReconstruct documentation.

The Vulkan Configurator (vkconfig) has been updated to improve quality and stability. See the Vulkan Configurator documentation for more information.

The HW Capability viewer from GPUInfo.org is included in the SDK (with an option to auto-launch), and much more…

Venus is a virtual Vulkan driver based on the Virtio-GPU protocol. Effectively a protocol on top of another protocol, it defines the serialization of Vulkan commands between guest and host. This blog covers details of the Venus driver, its components, and their relations in the context of extensions.

MoltenVK 1.2 was tagged today and with this version there is now support for Vulkan 1.2. This MoltenVK 1.2 release is built against the Vulkan SDK 1.3.231 and also exposes SPIR-V 1.4 support, KHR_shader_float_controls, improves Vulkan semaphore functionality, memory leaks have been addressed, crash fixes, and a variety of other improvements for mapping Vulkan to Metal.

AMDVLK 2022.Q3.5 adds support for the VK_EXT_depth_clamp_zero_one extension, performance tuning for Doom Eternal and Yquake2 and other games, enables acquire-release barrier support, and enables MSAA anti-aliasing decompression using the compute engine. The driver has also been built against the Vulkan API 1.3.228 headers.

Recently the open-source AMD OpenGL driver “RadeonSI” enabled OpenGL threading by default for the “glthread” option that has long been opt-in on a per-game/app basis. Along with that has been a number of glthread-related improvements to this code that punts executing OpenGL calls to a separate CPU thread. The Zink OpenGL-on-Vulkan driver has now unconditionally enabled OpenGL threading too.

The Vulkan Working Group has released the VK_EXT_mesh_shader extension that brings cross-vendor mesh shading to Vulkan and improves functional compatibility with DirectX 12. The new mesh shading pipeline with the task and mesh shading stages provides an alternative to the traditional vertex, tessellation, or geometry shader stages that feed into rasterization.

Mesh shaders provide greater flexibility to developers and enable a two-stage approach for efficient culling, level-of-detail management, and procedural generation of geometry. Compared to the traditional pipeline, mesh shaders enable easy access to the topology of generated primitives and developers are free to repurpose shader threads to perform both vertex shading and primitive shading workloads. Khronos will provide a mesh shader open-source sample to support and showcase the new VK_EXT_mesh_shader extension, and an updated shaderc library in the Vulkan SDK is coming soon.

For those that wish to try out the new mesh shader on their own GPU; NVIDIA is shipping the new extension in their beta Vulkan drivers today, and experimental support in the open source RADV and ANV drivers are now available.

For additional information developers are invited to: