Awesome
GRVK
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.
Getting the latest build
Head over to the Releases page for the latest stable build. Development builds are available here.
Building manually
Requirements
NOTE: binutils
2.34 has known issues and should be avoided.
Compiling
# 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
/mantleaxl32.dll
/mantleaxl64.dll
will be generated.
Usage
After dropping the DLLs in the game directory, GRVK will get loaded by the game at launch. By default, GRVK will create log files named grvk.log
/grvk_axl.log
in the same directory.
Environment variables
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_AXL_LOG_PATH
similar toGRVK_LOG_PATH
, but for the extension library (mantleaxl).GRVK_DUMP_SHADERS
controls whether to dump shaders (IL input, IL disassembly, and SPIR-V output). Pass1
to enable.
Credits
- 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