Skip to main content

Vulkan tagged news

In April 2021, the Vulkan® Working Group at Khronos® released a set of provisional extensions, collectively called ‘Vulkan Video’, for seamlessly integrating hardware-accelerated video compression and decompression into the Vulkan API. Today, Khronos is releasing finalized extensions that incorporate industry feedback and expose core and decode Vulkan Video functionality to provide fully accelerated H.264 and H.265 decode.

Khronos will release an ongoing series of Vulkan Video extensions to enable additional codecs and accelerated encode as well as decode. This blog is a general overview of the Vulkan Video architecture and also provides details about the finalized extensions and links to important resources to help you create your first Vulkan Video applications.

Portal with RTX reimagines Valve’s classic game with full Vulkan ray tracing. Building on NVIDIA’s previous upgrades to Quake II RTX and Minecraft with RTX, this new release has been created with the NVIDIA RTX Remix tool that enables modders to create ambitious remasters of classic games with NVIDIA DLSS, NVIDIA Reflex and advanced path-tracing that bounces light four times for improved light simulation—even casting through portals! Portal with RTX is freely downloadable from Steam for all Portal owners.

The recently released VK_EXT_surface_maintenance1 and VK_EXT_swapchain_maintenance1 extensions resolve a number of longstanding issues with Vulkan’s WSI extensions. These extensions will be ratified as KHR.

Most importantly, it is now possible for applications to know when resources associated with a present operation can be destroyed, e.g. the semaphores provided in VkPresentInfoKHR::pWaitSemaphores. This is done by providing a fence in VkSwapchainPresentFenceInfoEXT that is chained to VkPresentInfoKHR. Once the fence is signaled, the application can destroy said semaphores. Additionally, with the outstanding present operations processed according to these fences, the application is able to safely destroy swapchains (retired or otherwise).

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.