Vulkan Porting Layers
One of the most unique and valuable features of Vulkan is it's ability to support developers who need their applications to run across multiple platforms. Vulkan is a cross-platform API allowing application portability onto additional platforms using layered implementations. PLUS, if you have applications written to other APIs, the low-level Vulkan API efficiently supports translation layers allowing other APIs to run on top of Vulkan. We've listed several of these translation layers below to help you find a solution that best meets your needs.

Vulkan Porting Layers
Vulkan Porting Layers
One of the most unique and valuable features of Vulkan is it's ability to support developers who need their applications to run across multiple platforms. Vulkan is a cross-platform API allowing application portability onto additional platforms using layered implementations. PLUS, if you have applications written to other APIs, the low-level Vulkan API efficiently supports translation layers allowing other APIs to run on top of Vulkan. We've listed several of these translation layers below to help you find a solution that best meets your needs.
-
-
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.
-
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.
-
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 GPU hardware capability viewer is a community-driven Vulkan hardware database, an online tool for developers that want to check out GPU hardware capabilities. This database and the client applications to submit reports are developed and maintained by me (Sascha Willems) in my 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