D7VK 1.1 adds experimental Direct3D 6 support for classic PC games on Linux

D7VK 1.1 adds experimental Direct3D 6 support for classic PC games on Linux

D7VK 1.1 is out. It is a Vulkan-based translation layer for old Windows games that use Direct3D 7 on Linux through Wine. This release also adds an experimental Direct3D 6 front-end.

In case you are not familiar with graphics API translation layers, D7VK takes Direct3D 7 calls and maps them onto DXVK’s Direct3D 9 backend, while relying on Wine’s DirectDraw (or native Windows DirectDraw) for the older 2D parts. The new Direct3D 6 mode, which was added in a recent release, follows the same idea, just with a minimal D3D6-on-D3D9 path.

The way this works:

Game (Direct3D 6) ➡️ D7VK (minimal D3D6-on-D3D9 layer) ➡️ DXVK D3D9 backend ➡️ Vulkan ➡️ GPU

Version 1.1 focuses on game fixes and compatibility, so more D3D7 titles should behave better. Direct3D 6 support is still early, so results will vary from game to game. However this basically means that you should now be able to run some retro games on non-Windows systems.

D7VK 1.1 running Tomb Raider, Source: Phoronix

Do not expect it to run every DirectX6 game, in fact, do not expect it to run all D3D7 games. Many old titles mix D3D7 with older DirectDraw paths and sometimes even GDI, and that can break things. If your game offers an OpenGL or Glide renderer, that can be the safer choice, with nGlide where it fits.

If a game still fails, the project suggests using WineD3D (it’s a Direct3D to OpenGL translation), which covers more of the old DirectDraw and GDI behavior. You can also check the issue tracker to see if your game is already being worked on.

Source: D7VK (Github) , Phoronix