Skip to content

libcg/grvk

Repository files navigation

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.

Current game support

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 are trace, verbose, debug, info, warning, error or none.
  • GRVK_LOG_PATH controls the log file path. An empty string will disable logging to the file entirely.
  • GRVK_AXL_LOG_PATH similar to GRVK_LOG_PATH, but for the extension library (mantleaxl).
  • GRVK_DUMP_SHADERS controls whether to dump shaders (IL input, IL disassembly, and SPIR-V output). Pass 1 to enable.

Credits