MoltenVK

Last updated

MoltenVK
Developer(s) The Brenwill Workshop Ltd., Khronos Group
Initial releaseFebruary 26, 2018;5 years ago (2018-02-26) [1]
Stable release
1.2.6 [2] / 23 October 2023;59 days ago (2023-10-23)
Repository github.com/KhronosGroup/MoltenVK
Written in Objective-C++, Objective-C, C++, C [3]
Operating system macOS, iOS, tvOS
Platform Cross-platform
Type Wrapper library [3]
License Apache License 2.0
Website moltengl.com/moltenvk

MoltenVK is a software library which allows Vulkan applications to run on top of Metal on Apple's macOS, iOS, and tvOS operating systems. It is the first software component to be released for the Vulkan Portability Initiative, a project to have a subset of Vulkan run on platforms lacking native Vulkan drivers.

Contents

There are some limitations compared with a native Vulkan implementation. [4]

History

MoltenVK was first released as a proprietary and commercially licensed product by The Brenwill Workshop on July 27, 2016. [5]

On July 31, 2017, Khronos announced the formation of the Vulkan Portability Technical Subgroup. [6]

Open source

On February 26, 2018, Khronos announced that Vulkan became available on macOS and iOS products through the MoltenVK library. [7] Valve announced that Dota 2 will run on macOS using the Vulkan API with the aid of MoltenVK, [8] and that they had made an arrangement with developer The Brenwill Workshop Ltd to release MoltenVK as open-source software under the Apache License version 2.0. [9]

On May 30, 2018, Qt was updated with Vulkan for Qt on macOS using MoltenVK. [10] On May 31, 2018, optional Vulkan support for Dota 2 on macOS was released. Benchmarks for the game were available the following day, showing better performance using Vulkan and MoltenVK compared to OpenGL. [11] On July 20, 2018, Wine was updated with Vulkan support on macOS using MoltenVK. [12] On 29 July 2018, the first app using MoltenVK was accepted onto the App Store, after initially being rejected. [13] On 6 August 2018, Google open-sourced Filament, a crossplatform real-time physically based rendering engine with MoltenVK for macOS/iOS. [14] On November 28, 2018, Valve released Artifact, their first Vulkan-only game on macOS using MoltenVK. [15]

Version 1.0

On 29 January 2019, MoltenVK 1.0.32 was released with early prototype of Vulkan Portability Extensions. RPCS3 and Dolphin emulators were updated with Vulkan support on macOS using MoltenVK. [16] On 13 April 2019, MoltenVK 1.0.34 was released with support for tessellation. On July 30, 2019, MoltenVK 1.0.36 was released targeting Metal 3.0. [17] On July 31, 2020, MoltenVK 1.0.44 was released, adding support for the tvOS platform. [18] On January 23, 2020, MoltenVK was updated to support for some of the new features of Vulkan 1.2, as of Vulkan SDK 1.2.121. [19]

Version 1.1

On October 1, 2020, MoltenVK 1.1.0 was released, adding full support for Vulkan 1.1, [20] as of Vulkan SDK 1.2.154. [21]

On 9 December 2020, MoltenVK 1.1.1 was released, providing support for Vulkan on Apple silicon GPUs and support for the Mac Catalyst platform for porting iOS/iPadOS apps to macOS. [22]

Version 1.2

On October 18, 2022, MoltenVK 1.2.0 was released, adding full support for Vulkan 1.2 [23] as of Vulkan SDK 1.3.231.

In January 2023, MoltenVK 1.2.2 added support for Vulkan as of SDK 1.3.239, while this version of Vulkan SDK fixed some issues with the interconnectivity with Metal API. [24]

Related Research Articles

<span class="mw-page-title-main">OpenGL</span> Cross-platform graphics API

OpenGL is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardware-accelerated rendering.

<span class="mw-page-title-main">Wine (software)</span> Windows compatibility software

Wine is a free and open-source compatibility layer to allow application software and computer games developed for Microsoft Windows to run on Unix-like operating systems. Developers can compile Windows applications against WineLib to help port them to Unix-like systems. Wine is predominantly written using black-box testing reverse-engineering, to avoid copyright issues. No code emulation or virtualization occurs. Wine is primarily developed for Linux and macOS.

<span class="mw-page-title-main">Xcode</span> IDE including tools for developing software for Apple platforms

Xcode is Apple's integrated development environment (IDE) for macOS, used to develop software for macOS, iOS, iPadOS, watchOS, tvOS, and visionOS. It was initially released in late 2003; the latest stable release is version 15, released on September 18, 2023, and is available free of charge via the Mac App Store and the Apple Developer website. Registered developers can also download preview releases and prior versions of the suite through the Apple Developer website. Xcode includes command-line tools which enable UNIX-style development via the Terminal app in macOS. They can also be downloaded and installed without the GUI.

OpenVG is an API designed for hardware-accelerated 2D vector graphics. Its primary platforms are mobile phones, gaming & media consoles and consumer electronic devices. It was designed to help manufacturers create more attractive user interfaces by offloading computationally intensive graphics processing from the CPU onto a GPU to save energy. The OpenGL ES library provides similar functionality for 3D graphics. OpenVG is managed by the non-profit technology consortium Khronos Group.

<span class="mw-page-title-main">OpenGL ES</span> Subset of the OpenGL API for embedded systems

OpenGL for Embedded Systems is a subset of the OpenGL computer graphics rendering application programming interface (API) for rendering 2D and 3D computer graphics such as those used by video games, typically hardware-accelerated using a graphics processing unit (GPU). It is designed for embedded systems like smartphones, tablet computers, video game consoles and PDAs. OpenGL ES is the "most widely deployed 3D graphics API in history".

Mesa, also called Mesa3D and The Mesa 3D Graphics Library, is an open source implementation of OpenGL, Vulkan, and other graphics API specifications. Mesa translates these specifications to vendor-specific graphics hardware drivers.

<span class="mw-page-title-main">OpenCL</span> Open standard for programming heterogenous computing systems, such as CPUs or GPUs

OpenCL is a framework for writing programs that execute across heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs) and other processors or hardware accelerators. OpenCL specifies programming languages for programming these devices and application programming interfaces (APIs) to control the platform and execute programs on the compute devices. OpenCL provides a standard interface for parallel computing using task- and data-based parallelism.

Video Decode and Presentation API for Unix (VDPAU) is a royalty-free application programming interface (API) as well as its implementation as free and open-source library distributed under the MIT License. VDPAU is also supported by Nvidia.

<span class="mw-page-title-main">Skia Graphics Engine</span> Open source graphics library written in C++

The Skia Graphics Engine or Skia is an open-source 2D graphics library written in C++. Skia abstracts away platform-specific graphics API. Skia Inc. originally developed the library; Google acquired it in 2005, and then released the software as open source licensed under the New BSD free software license in 2008.

<span class="mw-page-title-main">PPSSPP</span> PSP emulator

PPSSPP is a free and open-source PSP emulator for Windows, macOS, Linux, iOS, Android, Nintendo WiiU, Nintendo Switch, BlackBerry 10, MeeGo, Pandora, Xbox Series X/S and Symbian with an increased focus on speed and portability. It was first released to the public on November 1, 2012, licensed under the GNU GPLv2 or later. The PPSSPP project was created by Henrik Rydgård, one of the co-founders of the Dolphin emulator.

Blink is a browser engine developed as part of the Chromium project with contributions from Apple, Google, Meta, Microsoft, Opera Software, Vivaldi Technologies, Adobe, Intel, IBM, Samsung, and others. It was first announced in April 2013.

mpv (media player) Free and open-source media player software

mpv is free and open-source media player software based on MPlayer, mplayer2 and FFmpeg. It runs on several operating systems, including Unix-like operating systems and Microsoft Windows, along with having an Android port called mpv-android. It is cross-platform, running on ARM, PowerPC, x86/IA-32, x86-64, and MIPS architecture.

<span class="mw-page-title-main">Godot (game engine)</span> Cross-platform, open-source game engine

Godot is a cross-platform, free and open-source game engine released under the permissive MIT license. It was initially developed by Argentine software developers Juan Linietsky and Ariel Manzur for several companies in Latin America prior to its public release in 2014. The development environment runs on many platforms, and can export to several more. It is designed to create both 2D and 3D games targeting PC, mobile, and web platforms and can also be used to develop non-game software, including editors.

<span class="mw-page-title-main">AMD TrueAudio</span>

TrueAudio is the name given to AMD's ASIC intended to serve as dedicated co-processor for the calculations of computationally expensive advanced audio signal processing, such as convolution reverberation effects and 3D audio effects. TrueAudio is integrated into some of the AMD GPUs and APUs available since 2013.

<span class="mw-page-title-main">Metal (API)</span> iOS, macOS, and tvOS graphics rendering API

Metal is a low-level, low-overhead hardware-accelerated 3D graphic and compute shader API created by Apple, debuting in iOS 8. Metal combines functions similar to OpenGL and OpenCL in one API. It is intended to improve performance by offering low-level access to the GPU hardware for apps on iOS, iPadOS, macOS, and tvOS. It can be compared to low-level APIs on other platforms such as Vulkan and DirectX 12.

Vulkan is a low-level low-overhead, cross-platform API and open standard for 3D graphics and computing. It was originally developed as Mantle by AMD, but was later given to Khronos Group. It was intended to address the shortcomings of OpenGL, and allow developers more control over the GPU. It is designed to support a wide variety of GPUs, CPUs and operating systems, it is also designed to work with modern multi-core CPUs.

<span class="mw-page-title-main">Standard Portable Intermediate Representation</span>

Standard Portable Intermediate Representation (SPIR) is an intermediate language for parallel computing and graphics by Khronos Group. It is used in multiple execution environments, including the Vulkan graphics API and the OpenCL compute API, to represent a shader or kernel. It is also used as an interchange language for cross compilation.

<span class="mw-page-title-main">LunarG</span> American software company

LunarG is a software company specializing in device driver development for video cards.

WebGPU is the working name for a potential web standard and JavaScript API for accelerated graphics and compute, aiming to provide "modern 3D graphics and computation capabilities". It is developed by the W3C GPU for the Web Community Group with engineers from Apple, Mozilla, Microsoft, Google, and others.

macOS Mojave 15th major version of the macOS operating system

macOS Mojave is the fifteenth major release of macOS, Apple Inc.'s desktop operating system for Macintosh computers. Mojave was announced at Apple's Worldwide Developers Conference on June 4, 2018, and was released to the public on September 24, 2018. The operating system's name refers to the Mojave Desert, and is part of a series of California-themed names that began with OS X Mavericks. It succeeded macOS High Sierra and was followed by macOS Catalina. macOS Mojave is the last version of macOS that features the iTunes and Dashboard apps.

References

  1. "Vulkan Applications Enabled on Apple Platforms". Khronos Group Press Release. February 26, 2018.
  2. "Release for Vulkan SDK 1.3.268". GitHub . Retrieved October 23, 2023.
  3. 1 2 "MoltenVK is an implementation of the high-performance, industry-standard Vulkan graphics and compute API, that runs on Apple's Metal graphics framework, bringing Vulkan to iOS and macOS.: Khro." December 27, 2018 via GitHub.
  4. "MoltenVK Runtime User Guide". GitHub . Retrieved April 29, 2018.
  5. "MoltenVK brings Vulkan to iOS and macOS". The Brenwill Workshop Ltd. July 22, 2016. Retrieved April 28, 2018.
  6. Larabel, Michael (July 31, 2017). "No Vulkan 1.1 Today, But There Is A New Initiative That Could Help macOS See Vulkan". Phoronix. Retrieved April 29, 2018.
  7. Bright, Peter (February 26, 2018). "Vulkan is coming to macOS and iOS, but no thanks to Apple". Ars Technica. Retrieved February 26, 2018.
  8. Larabel, Michael (February 26, 2018). "Vulkan Is Now Available On macOS/iOS By MoltenVK Being Open-Sourced, Vulkan SDK for Mac". Phoronix. Retrieved February 26, 2018.
  9. "Free and Open-Source Vulkan on macOS and iOS". Valve. February 26, 2018. Retrieved April 28, 2018.
  10. says, Luciano Moffatt (May 30, 2018). "Vulkan for Qt on macOS". Qt Blog. Retrieved August 3, 2019.
  11. Larabel, Michael (June 1, 2018). "Initial Vulkan Performance On macOS With Dota 2 Is Looking Very Good". Phoronix. Retrieved June 5, 2018.
  12. "Wine 3.13 Released". WineHQ. Retrieved August 3, 2019.
  13. "Apple Accepts Updated MoltenVK-Using App/Game For Vulkan API On iOS - Phoronix". www.phoronix.com. Retrieved August 3, 2019.
  14. Sugandha Lahoti (August 6, 2018). "Google open sources Filament, a physically based rendering engine". Packt Hub. Retrieved August 3, 2019.
  15. "Valve Releases Artifact As Its Cross-Platform, Vulkan-Powered Digital Card Game - Phoronix". www.phoronix.com. Retrieved August 3, 2019.
  16. Olson, Tom (May 20, 2019). "Vulkan: The State of the Union" (PDF). Khronos Group.
  17. "MoltenVK Now Supports More Vulkan Extensions, Begins Targeting Metal 3.0 - Phoronix". www.phoronix.com. Retrieved August 2, 2019.
  18. "Vulkan 1.2 Comes To macOS / iOS Via Updated MoltenVK". www.phoronix.com. Retrieved October 10, 2020.
  19. "Vulkan 1.2 Comes To macOS / iOS Via Updated MoltenVK". www.phoronix.com. January 23, 2020. Retrieved April 18, 2021.
  20. "MoltenVK 1.1 Update Brings Big Improvements For Vulkan On macOS - Phoronix". www.phoronix.com. September 29, 2020. Retrieved October 10, 2020.
  21. "Releases - KronosGroup MoltenVK". GitHub.com. October 2, 2020. Retrieved April 18, 2021.
  22. "Vulkan Comes To Apple Silicon GPUs / M1 By Means Of MoltenVK 1.1.1". www.phoronix.com. December 10, 2020. Retrieved April 18, 2021.
  23. "MoltenVK Updated For Vulkan 1.2 Support On Apple macOS/iOS". www.phoronix.com. October 18, 2022. Retrieved October 18, 2022.
  24. "MoltenVK Updated For Vulkan 1.2 SupportMoltenVK v1.2.2 Released For Improving Vulkan API Support On macOS/iOS". www.phoronix.com. January 24, 2023. Retrieved April 9, 2023.