GRVK is a Mantle to Vulkan translation layer.
Mantle was originally developed by AMD and DICE starting in 2013, in an effort to produce a low-overhead graphics API as an alternative to DirectX 11 and OpenGL 4. Mantle was discontinued in 2015, with only a few games ever supporting it. Support was dropped from the AMD drivers in 2019, and it was never compatible with Nvidia cards. Despite this short life, it spawned a new generation of graphics API, including Metal, DirectX 12 and Vulkan.
This project is an attempt to revive Mantle and make it run everywhere.
- mingw-w64 compiler
- Meson build system
- Vulkan 1.2 compatible GPU and drivers that support
VK_EXT_extended_dynamic_state
NOTE: binutils
2.34 has known issues and should be avoided.
# 32-bit
meson --cross-file build-win32.txt --prefix $(pwd) build.w32
cd build.w32
ninja
# 64-bit
meson --cross-file build-win64.txt --prefix $(pwd) build.w64
cd build.w64
ninja
mantle32.dll
/mantle64.dll
will be generated.
After dropping the DLLs in the game directory, GRVK will get loaded by the game at launch. By default, GRVK will create a log file named grvk.log
in the same directory.
GRVK_LOG_LEVEL
controls the log level. Acceptable values aretrace
,verbose
,debug
,info
,warning
,error
ornone
.GRVK_LOG_PATH
controls the log file path. An empty string will disable logging to the file entirely.GRVK_DUMP_SHADERS
controls whether to dump shaders (IL input, IL disassembly, and SPIR-V output). Pass1
to enable.
- Philip Rebohle and Joshua Ashton for DXVK, a DirectX to Vulkan translation layer
- Alexander Overvoorde for the MantleHelloTriangle example used to bring up GRVK
- AMD for making the API and publicly releasing the Mantle specification