Return to Level1Techs.com

Vkd3d

How do you enable vkd3d in Lutris? I’m using a wine runner by GloriousEggroll a custom proton build.
DXVK and Vulkan work for games, but I can’t for the life of me find how to enable vkd3d.
I’m trying to test GOG game “Bright Memory”, but when I run the game it uses DXVK.
I tried several arguments and environment variables.
It’s hard finding instructions because normally it evolves steam which I don’t use. I just move proton builds to lutris and use them to run GOG Games.

Thanks

I know at least one of the steps is to not use the DXVK dxgi DLL, and use the Wine dxgi DLL. First thing I’d try is turning DXVK completely off.

The reason I think most people are confused is because DXVK is separate from the Wine team and needs installation, but VKD3D is within Wine, so needs no installation in theory.

That game is DX11 or DX12, you probably need to set the game to use DX12 to begin with. With that it should automatically use VKD3D because that is the DX12 implementation in WINE, so DXVK won’t even be used even when present.

To clarify: By default the game probably uses DX11 and DX11 can not run via VKD3D, because VKD3D is for DX12 only.

Hmm so I tried both Bright Memory and Ethan Carter. Both work with or without DXVK. Problem is without dxvk I have no HUD even with MANGOHUD.
Bright Memory was showing random black spots without DXVK. Ethan Carter runs great either way, but I have no way to tell if it’s using VKD3D.

Running without DXVK doesn’t mean it’s running in VKD3D.

TL;DR in Translation layers:
DirectX 12 -> VKD3D
DirectX 11 -> to Vulkan via DXVK if installed, to OpenGL if DXVK not installed
DirectX 10 -> to Vulkan via DXVK if installed, to OpenGL if DXVK not installed
DirectX 9 -> to Vulkan via D9VK if installed, to OpenGL if D9VK not installed


As said, VKD3D is only used when DirectX 12 is used, because it is a DirectX 12 translation layer, and nothing else.

If the game is running in DirectX 11, and there is no DXVK installed, it will run in Oldschool OpenGL Translation mode. That means the DirectX calls will be translated to OpenGL in WINE, which is CPU intensive and not efficient. The whole point of DXVK is removing some of that overhead by using Vulkan instead (because not only the translation is CPU intensive, OpenGL itself is as well). For DirectX 9 the same applies, except that the Vulkan translation layer is called D9VK (which in turn is a fork of DXVK so most of its options work there as well). In future versions D9VK will be merged back to DXVK so it’s one library for Direct X 9, 10, and 11.

The Vanishing of Ethan Carter (the Original) is a DirectX 9 and 11 title. So it is impossible to use VKD3D for it, because - again - VKD3D is for Direct X 12 only.

The Vanishing of Ethan Carter Redux (from 2015) is a DirectX 11 title. So as with the original, it is impossible to use VK3D3 for it.

If the game is running in OpenGL (see above why that is) you need to use a different command according to the Documentation:

I suppose I just don’t have a DirectX 12 title to test.
Would VKD3D be
DirectX12 -> to Vulkan via VKD3D?

TBH there’s not many to begin with and I think all the titles that are DX12 only are also bound to Windows Store (which doesn’t work on WINE as far as I know).

That being said, your game “Bright Memory” can use either DX11 or DX12, so you’d just have to set it up to use DX12 in the first place (because by default it’s probably using DX11), and it will use VKD3D automatically.

Yes

I don’t see anything in the in-game settings to change to direct X12. I also can’t find a config file in the Bright Memory folder.
I see a folder named DX12.Ink can’t open in linux.
Games actually $4.68 on GOG right now BTW lol

Mh that’s weird… well I can only say what I see on pcgamingwiki

ya which ain’t much to go off of but no biggy.