Steam for Linux

Steam for Linux

Why Does DXVK Have Differing Results In Windows?
I know DXVK is meant for Linux and isn't optimized for Windows, but I'd like to know why results are drastically different. For TES IV: Oblivion, I get much better performance especially with the Async variant, but in Left 4 Dead 2, neither the embedded v1.9 nor Async really does anything aside from boosting load times (if anything, performance overall gets worse). And yes, I've tried to wait for enough time for the shaders to compile along with swapping out 32-bit with 64-bit versions. Haven't tried other games with DXVK so far; does DXVK really perform much better for Linux?
< >
Showing 1-7 of 7 comments
ripper81 Feb 28 @ 11:22pm 
Hi,

to be clear i cant give a good answer other than this is a common thing you'll experience if you are gaming on linux. DXVK and VK3D-Proton (for DX12 games) is mostly used if you run windowsgames through steamplay/proton. Both tools are needed to translate the native directx shader calls into vulkanshaders so that the game can run on linux. There are a few windows games that are running directly on vulkan or give you an option to switch between directx or vulkan but for the most part they only support directx,

The Valve games are a liitle different. They are available as native linuxbuilds. However the older games like Left 4 Dead 2 never had a native linux renderer. Instead Valve used "togl" a tool that translates directx shader calls to OpenGL in the past since the Vullkan API wasnt available. Later they replaced it with DXVK which can also be used outside of proton to provide better performance and compatibility. So this is as good as it gets on linux. Newer games like CSGO2 have a native Vulkanrenderer so they dont rely on DXVK.

Results in the use of DXVK or VK3D-Proton may vary. Some games will run slower and other games will run faster (or at least smoother) on linux than they do on Windows. This has mostly to do with the shader precaching and precompilation that is done when you use steamplay to play Windowsgames on linux. Even many modern games are struggeling with shadercompilation on Windows for some reason. On linux this is forced because of the need to translate shaders. While overall fps might be slower than on windows some games still feel smoother because of shorter frametiming and more consistent framepacing because of the precompiled Vulkanshaders.
Last edited by ripper81; Feb 28 @ 11:25pm
I'm asking why DXVK gives inconsistent results for different games on Windows, not Linux. Also for Left 4 Dead 2, it doesn't even seem to cache any Vulkan shaders lol. Valve did implement their own native form of DXVK to Left 4 Dead 2, but it's version 1.9 and the file is dxvk_d3d9.dll. I suspect they must've messed something up, as replacing it with DXVK Async and renaming the included d3d9.dll to dxvk_d3d9.dll didn't help at all. d3d9.dll isn't even recognized by Left 4 Dead 2; for TES IV, it just uses d3d9.dll so me placing the one provided by DXVK Async did wonders.
The answer is simple: Not all games are coded equal, and not all DirectX features have a 1:1 Vulkan equivalent, which is why you differences. DXVK is used only for DX 8 to 11, needless to say older versions of DX have better chances to run with same or better performance than native DX
Originally posted by thetargos:
The answer is simple: Not all games are coded equal, and not all DirectX features have a 1:1 Vulkan equivalent, which is why you differences. DXVK is used only for DX 8 to 11, needless to say older versions of DX have better chances to run with same or better performance than native DX
Left 4 Dead 2 uses DirectX9C, but it runs worse with DXVK except in minimum fps and loading times for me.
In that case, the Vulkan implementation on the Windows driver may be at fault, in comparison to the DirectX driver. Have you performed a comparison on your hardware of Windows Vs Linux?
Originally posted by thetargos:
In that case, the Vulkan implementation on the Windows driver may be at fault, in comparison to the DirectX driver. Have you performed a comparison on your hardware of Windows Vs Linux?
no because dual booting would cause problems for me having Windows 11 and Linux Mint on the same drive; my other drive is for games and other larger programs so i won't use that to boot either. and also i have a Nvidia GTX dGPU which isn't really supported on Linux, and obviously i wouldn't use my Intel iGPU for gaming. i know i can boot up Linux in a VM, but that adds extra overhead so wouldn't be fair for benchmarking.
Originally posted by 500GB_2.5"_SATA_SSD_600MBPS:
Originally posted by thetargos:
In that case, the Vulkan implementation on the Windows driver may be at fault, in comparison to the DirectX driver. Have you performed a comparison on your hardware of Windows Vs Linux?
no because dual booting would cause problems for me having Windows 11 and Linux Mint on the same drive; my other drive is for games and other larger programs so i won't use that to boot either. and also i have a Nvidia GTX dGPU which isn't really supported on Linux, and obviously i wouldn't use my Intel iGPU for gaming. i know i can boot up Linux in a VM, but that adds extra overhead so wouldn't be fair for benchmarking.

You can separate a small part of the second drive for linux. You don't have to dedicate the entire disk to linux, the point is that it should not be on the same disk as windows, because windows may try to "fix" it.
Linux can share a disk with an ntfs partition if it is not a disk on which the windows "C" partition is located. Because windows has a tendency to "repair" a disk with a partition "C" and boot.

Nvidia is very well supported on linux, but they are not open source drivers, so it is software that you don't know what it does.
That is, the same as on windows, where you also don't know what the driver is doing, whether it is spying on you and whether it is not harmful software.


So you can easily separate a small part of the second disk to linux, and install mint there, and the closed nvidia drivers.
You can probably do this from the mint installer (I haven't used the mint installer in years). Or from any running linux with the gparted program, e.g. some live cd from usb.
Then install steam and in steam - proton just like any other game.

40 GB is easily enough, and the minimum is something like 8GB depending on the distribution. (On Linux, you can easily add more partitions as individual folders anywhere if you need to.) (Ext4 partitions can also be easily enlarged by adding space to it, on the right side in gparted.)
< >
Showing 1-7 of 7 comments
Per page: 1530 50