Vulkan Porting Layers
Vulkan is the only modern GPU API that is available on multiple operating systems—helping applications reach a cross-platform user base. Layered API implementations leveraging Vulkan go even further in fighting platform fragmentation. Vulkan efficiently supports translation layers from other APIs, such as Metal, to enable non-Vulkan applications on Vulkan-enabled platforms. Vulkan has also been layered over platform-specific APIs, enabling Vulkan applications to run where native Vulkan drivers are not available, such as iOS and macOS.
Vulkan Porting Layers
Vulkan is the only modern GPU API that is available on multiple operating systems—helping applications reach a cross-platform user base. Layered API implementations leveraging Vulkan go even further in fighting platform fragmentation. Vulkan efficiently supports translation layers from other APIs, such as Metal, to enable non-Vulkan applications on Vulkan-enabled platforms. Vulkan has also been layered over platform-specific APIs, enabling Vulkan applications to run where native Vulkan drivers are not available, such as iOS and macOS.
-
-
Ashes: Vulkan on OpenGL and DX9/DX10/DX11
Ashes is a drop-in replacement or ICD to Vulkan. It allows to write Vulkan code, and to select the rendering API that will be used. It also comes with ashespp, a C++ wrapper for Vulkan.
-
Dozen: Vulkan on DX12
Microsoft engineers have added support for the Agility SDK to their Mesa D3D12 driver. The Agility SDK now has support for Vulkan’s “Dzn” (Dozen) driver on D3D12.
-
MoltenVK: Vulkan on Metal
The Vulkan SDK includes a MoltenVK runtime library for macOS. If you are developing a Vulkan application for macOS, it is highly recommended that you use the Vulkan SDK and the MoltenVK library included in it.
-
Ashes: Vulkan on OpenGL and DX9/DX10/DX11
-
-
Zink: OpenGL on Vulkan (Linux)
The Zink driver is a Gallium driver that emits Vulkan API calls instead of targeting a specific GPU architecture. This can be used to get full desktop OpenGL support on devices that only support Vulkan.
-
clvk: OpenCL on Vulkan
clvk is a prototype implementation of OpenCL 3.0 on top of Vulkan using clspv as the compiler.
-
GLOVE: OpenGL ES and EGL on Vulkan
GLOVE (GL Over Vulkan) is a cross-platform software library that acts as an intermediate layer between an OpenGL ES application and Vulkan.
-
Angle: OpenGL ES on Vulkan
ANGLE allows users of multiple operating systems to seamlessly run WebGL and other OpenGL ES content by translating OpenGL ES API calls to one of the hardware-supported APIs available for that platform.
-
vkd3d-proton: DX12 on Vulkan
VKD3D-Proton is a fork of VKD3D, which aims to implement the full Direct3D 12 API on top of Vulkan. The project serves as the development effort for Direct3D 12 support in Proton.
-
vkd3d: DX12 on Vulkan
Vkd3d is a 3D graphics library built on top of Vulkan. It has an API very similar, but not identical, to Direct3D 12. Wine uses vkd3d libraries for its implementation of Direct3D 12.
-
DXVK: D3D 9/10/11 on Vulkan
DXVK is a Vulkan-based translation layer for Direct3D 9/10/11 which allows running 3D applications on Linux using Wine.
-
WineD3D: D3D 9/10/11 on Vulkan
WineD3D is a translation layer from Direct3D and DirectDraw API calls into OpenGL or Vulkan
-
Zink: OpenGL on Vulkan (Linux)
-
-
Wine
Wine (originally an acronym for "Wine Is Not an Emulator") is a compatibility layer capable of running Windows applications on several POSIX-compliant operating systems, such as Linux, macOS, & BSD.
-
CodeWeavers CrossOver
CrossOver uses Wine and VKD3D to let you run many Microsoft applications on your Linux and Mac platforms without the need for Windows emulators.
-
Wine
-
-
Vulkan GPUInfo
The Vulkan Capabilities Viewer is a developer tool for probing the hardware capabilities of Vulkan and MoltenVK (Vulkan over Metal). The Vulkan GPU hardware capability viewer is a community-driven Vulkan hardware database, an online tool for developers that want to check out GPU hardware capabilities. Vulkan Capabilities View works across multiple OSes including Windows, Linux, Android, macOS and iOS. This database and the client application are developed and maintained by Sascha Willems in his spare time.
-
Vulkan Capabilities Viewer (iOS)
For developers using Vulkan layered over the Metal graphics API, this tool enumerates all the hardware capabilities and limitations of the device it is run on.
-
Vulkan GPUInfo
-
-
Vulkanised 2023: Layering Vulkan Over Metal
This talk was presented at Vulkanised 2023 (Feb 7-9, Munich Germany) and discusses application portability with Vulkan on Metal using MoltenVK.
-
Vulkanised 2023: Vulkan Development for Apple Environments
This talk was presented at Vulkanised 2023 (Feb 7-9, Munich Germany) and discusses developing for Apple with the Vulkan SDK.
-
Zink Presentation (Khronos)
Background presentation on the Zink project and it's how it fits with Mesa
-
Vulkanised 2023: Layering Vulkan Over Metal