Support us on Patreon to keep GamingOnLinux alive. This ensures all of our main content remains free for everyone. Just good, fresh content! Alternatively, you can donate through PayPal. You can also buy games using our partner links for GOG and Humble Store.
We do often include affiliate links to earn us some pennies. See more here.

Another big release of DXVK, the Vulkan-based implementation of Direct3D for Linux with Wine / Proton, has arrived. Version 2.4 expands the Direct3D support to version 8 now thanks to D8VK. So this means now DXVK as of this version covers Direct3D 8/9/10/11 and VKD3D-Proton continues for Direct3D 12.

Developer Ethan Lee (FNA / Linux ports) also had a nice code merge for this release with the addition of support for multiple window system backends that the application can choose between at runtime. On top of that, there's now proper ABI versioning for native libraries.

The frame rate limiter was also adjusted for non-native refresh rate emulation as explained:

In environments where the display mode cannot be changed (e.g. Proton), it is possible that DXVK reports a different refresh rate to the game than what the display is currently running at. This is problematic for games that require to be run at 60 FPS but do not limit their frame rate when using a 60 Hz display mode.

To work around this, the frame rate limiter will now be engaged automatically if a game runs in full-screen mode with vertical synchronization enabled, and if the detected frame rate over a short period of time is higher than the refresh rate of the selected display mode.

In case a game runs at a lower rate than expected and does not provide an in-game option to change refresh rate, this behaviour can be disabled by setting d3d9.maxFrameRate = -1 (or the corresponding dxgi option for D3D10+ games). Setting DXVK_FRAME_RATE also overrides this behaviour as usual.

This now also applies to VKD3D-Proton as of this commit or later.

You will also find game fixes for:

  • Battlefield 2, 2142:
  • Dead Space 2
  • Dragonshard
  • Fallout 4
  • Fallout New Vegas
  • Ghostbusters Remastered
  • Gothic 3
  • Guild Wars 2
  • Prototype
  • Star Citizen
  • The Sims 2
  • Tomb Raider Legend
  • Red Faction Guerrila Remastered
  • Rise of Nations
  • Watch Dogs, Watch Dogs 2
  • WRC 4


Pictured - Guild Wars 2

There's more like improved compatibility to third-party mods hooking various DXGI entry points and various other miscellaneous fixes and updates.

For the full detail see the changelog.


If you're curious on how to upgrade, you don't actually need to do anything. Proton and GE-Proton use DXVK directly, and so they both pull in updates in their new releases. However, for those who like to live on the wild side, you can upgrade the DXVK version in Proton yourself. Do it at your own risk.

To do so you can just overwrite the existing DXVK files with the release download of the latest DXVK. You can find your Proton install somewhere like this (depending on your Steam Library drives):

For Proton 9 and Proton Experimental:

path-to-your/SteamLibrary/steamapps/common/Proton x.x/files

Proton 8 and below:

path-to-your/SteamLibrary/steamapps/common/Proton x.x/dist

Where x.x is whatever Proton version installed you wish to give a new DXVK.

Inside there you will see "lib" and "lib64", for 32bit and 64bit. Inside each of those, there's a "wine" folder and inside there is a "dxvk" folder and that's where you replace the files with new versions. If you mess anything up, one way to ensure it gets reinstalled cleanly is just to remove the "/dist" folder.

Article taken from GamingOnLinux.com.
17 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly checked on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly.
See more from me
9 comments

mrdeathjr Jul 10


on dx9 compatibility up in my case***, however i think stay related to replace** d3d8.dll - d3d9.dll - d3d10core.dll* - d3d11.dll and dxgi.dll

*also duplicate d3d10core.dll and renamed as d3d10.dll will be usefull for some apps

**this replacement must be putted in respective folders aka 32bit libraries on windows/syswow64 and 64bit libraries on windows/system32

***since sometime will be needed in some cases put dxgi as native in winecfg but now solve various titles like this:























































and dxgi as native is no more required in my case


this is a little test to show dxvk 2.4 on dx8 side
















































































































































































































































































































Last edited by mrdeathjr on 11 July 2024 at 12:05 am UTC
hardpenguin Jul 10
Quoting: mrdeathjra little test can make dxvk 2.4 on dx8 side
(..)
I was about to go look for some D3D8 games but luckily we already have you :D
hardpenguin Jul 10
Found some more D3D8 games! https://www.pcgamingwiki.com/wiki/List_of_Direct3D_8_games

The ones released fairy recently are most interesting to me, like what decision or technical debt made people still use it in the 2010?!
Calinou Jul 10
Quoting: hardpenguinThe ones released fairy recently are most interesting to me, like what decision or technical debt made people still use it in the 2010?!

Note that many games like Half-Life 2 and Portal still feature optional Direct3D 8 modes, which are useful for using RTX Remix on them (since Direct3D 8 is fixed-function). Without this mode, Portal with RTX would not have been possible.

Most recent entries you see on this list are remasters of old games, games using old engines for legacy reasons, or a leaked game from 2001 that became available in 2022 (Duke Nukem Forever 2001). For this last example however, a Direct3D 9-based renderer was developed by the community and is the preferred way to play. Bless Unreal Engine 1's swappable renderer system :)


Last edited by Calinou on 10 July 2024 at 6:27 pm UTC
TheRiddick Jul 11
Wonder if they can integrate FSR3.1 and framegen with dxvk sometime since its open-source. Would be a fantastic addition.
Calinou Jul 11
Quoting: TheRiddickWonder if they can integrate FSR3.1 and framegen with dxvk sometime since its open-source. Would be a fantastic addition.

This needs per-game integration as both require motion vectors, so DXVK can't provide an universal solution for this.

I'd love to see an open source alternative to Lossless Scaling frame generation. The best course of action for implementing this would likely to find/create an algorithm that generates motion vectors from two color buffers, feed these motion vectors to FSR3 frame generation and run all this in Gamescope (so it can be applied to any game without needing per-game support).
TheRiddick Jul 12
Quoting: CalinouThis needs per-game integration as both require motion vectors, so DXVK can't provide an universal solution for this.

I use to think this way as well. But its not the case for some upscaling and frame gen technology.

I would like to present your research project for the next week: Seemless Lossless Scaling app :) on steam. When you've finished researching it then explain why something like FSR3.1 can't be implemented system wide or on demand.


Last edited by TheRiddick on 13 July 2024 at 3:00 am UTC
Calinou Jul 12
Quoting: TheRiddickI would like to present your research project for the next week: Seemless Scaling app on steam.

This is exactly what I was referring to, except it's called Lossless Scaling. It works without motion vectors (or even a depth buffer) because it generates those on the fly the color buffer. It's not as precise as an in-engine implementation, but it can be pretty good at higher base framerates if you put in the GPU time.
TheRiddick Jul 13
Yeah I have been using the app on and off with MechWarrior5 and am surprised at how well it works.

Only downside I can see is when in UI screens it can scribble for a split second when switching UI.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register


Or login with...
Sign in with Steam Sign in with Google
Social logins require cookies to stay logged in.