Skip to main content

Moltenvk tagged news

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”

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.

The Vulkan Portability Technical Subgroup is seeking to reduce the number of CTS failures in MoltenVK under Vulkan 1.0 with no extensions. MoltenVK provides Vulkan functionality layered on top of the Metal graphics API on Apple devices. All RFP responses are due by 5p.m. PDT on Friday, June 24, 2022.

Today, the functionality of the Vulkan SDK gets a major upgrade for Vulkan developers targeting Apple platforms. LunarG is now shipping Device Simulation (DevSim) and Validation layers for the Vulkan SDK on macOS in addition to Linux and Windows. DevSim layers enable Vulkan application development on a highly-capable development system by “simulating” a less-capable target Vulkan implementation through constraining the reported features and resources on the more-capable platform. Validation layers verify that applications are correctly using the reported Vulkan functionality. The validation layers and associated Vulkan loader on macOS also now support Apple Silicon via Universal Binaries.

The MoltenVK development team is pleased to announce that the latest release of MoltenVK supports Vulkan 1.1 functionality.

This release also embraces the Vulkan Portability Initiative, adding support for the new VK_KHR_portability_subset extension, which allows application developers to further embrace platform portability by enumerating the subset of Vulkan functionality available on platforms that don’t natively support Vulkan, such as macOS and iOS.

This release is part of the ongoing evolution of MoltenVK to add additional advanced Vulkan functionality, work towards conformance with the Vulkan standard, and continue to play an important role in a broad and vibrant Vulkan eco-system.

Khronos has shipped the provisional version of the Vulkan Portability Extension version 1.0 and it is shipping today in both MoltenVK and gfx-portability. If you want to try out the extension, build MoltenVK or download gfx-portability-0.8.1 and redirect the Vulkan loader to a JSON manifest using the regular ICD logic, as if MoltenVK and gfx-portability were native Vulkan drivers. Learn more about the Vulkan Portability Initiative and explore the value of layered implementations to the graphics community in this blog.

The new MoltenVK now allows run-time configuration of MoltenVK via environment variables, support for GPU switching was added and is enabled by default, queue family specialization was added but currently disabled by default, synchronous queue submits was added and enabled by default, there is now support for four queue families, support for the VK_AMD_gpu_shader_half_float and VK_KHR_variable_pointers extensions, and updated against the latest SPIR-V Cross. There is also some fixes and other internal improvements. Checkout the Change Log on GitHub and read more about this update on Phoronix.

This Rust crate by @gwihlidal, a Senior Rendering Engineer II at Electronic Arts (EA), provides an FFI layer and idiomatic rust wrappers for the AMD Vulkan Memory Allocator (VMA) C/C++ library. Designed to help game developers to manage memory allocations and resource creation by offering some higher-level functions. vk-mem is Cross-platform: Windows, Linux and macOS (MoltenVK).

Forsaken Remastered was just updated with Vulkan support! If you’re on Linux, you’re probably hitting 60fps with the existing OpenGL renderer, but it’s good to be future proof. If you’re on a Mac, though, you definitely want to switch. On my MacBook, the framerate goes from around 15 to a solid 60! On macOS, Vulkan support is supplied by MoltenVK, which we now ship with the game. It should work on any Mac that supports Apple’s Metal API, which MoltenVK uses to make Vulkan work. You can change from OpenGL to Vulkan in-game in the “Video” options menu.

MoltenVK 1.0.20 is out as the latest feature update to this Vulkan-over-Metal layer. With the MoltenVK 1.0.20 release there is support for several new extensions including VK_KHR_maintenance1, VK_KHR_shader_draw_parameters, VK_KHR_get_physical_device_properties2, and VK_KHR_push_descriptor. MoltenVK 1.0.20 also adds the ability to track and access supported/enabled extensions and has re-based its SPIRV-Cross code against upstream.