Check out our Monthly Survey Page to see what our users are running.
We do often include affiliate links to earn us some pennies. See more here.

Vulkan-based D3D9, 10 and 11 translation layer DXVK version 2.0 out now

By - | Views: 35,661

DXVK, the translation layer that converts Direct3D calls to Vulkan for use with Wine and Proton, has a big new release out with version 2.0. This is one of the ways that Proton performs so well for Windows games on Linux desktop and Steam Deck.

For this, you will need to ensure you have up to date drivers, they said any Vulkan 1.3 capable driver and Wine version are required now. The new recommend versions are:

Driver Required version Recommended version
AMD (RADV) 22.0 22.2
Nvidia 510.47.03 520.56.06
Intel (ANV) 22.0 22.2

As for what's new? A lot! As expected from a major version bump.

Firstly, DXVK-Native, that provides Vulkan support for Native Linux applications has now been upstreamed and merged into DXVK directly so that it "can be used as a drop-in replacement to port D3D applications without having to change rendering code". This is really great and for developers who are looking to port their games, it's breaking down another barrier.

One of the most exciting changes is to shader compiling. Unless games already have their shaders ready, like you see in Steam when it downloads them for you, there will often be a lot of stuttering as the game builds it up with DXVK as you play. That's now changed! If you have drivers that support what's needed, the "shaders will now be compiled at the time the game loads its D3D shaders, rather than at draw time" resulting in reduced or eliminated shader compile stutter. There's some caveats with this though like some games only loading their shaders as you play anyway, 32-bit games may stutter and NVIDIA uses more space.

I cannot stress how excited I am for the above on both Steam Deck and Linux desktop!

Other highlights:

  • D3D9
    • Reduce the likelihood of running out of address space in 32-bit D3D9 games
    • Reading from an active render target in D3D9 games is now properly supported, which previously caused rendering artifacts on newer AMD hardware and required driver-level workarounds. This affects a number of games, including GTA IV.
    • The D3D9 alpha test implementation was changed to more closely match the behaviour of Nvidia's implementation, which fixes inaccuracies in various games.
  • D3D10
    • Removal of some unused bits
  • D3D11
    • DXVK now exposes D3D11 Feaure Level 12_1 with the following newly added features:
      • Tiled Resources up to Tier 3, provided that the corresponding Vulkan sparse binding and sparse residency features are supported
      • Conservative Rasterization up to Tier 3, provided that the corresponding Vulkan conservative rasterization features are supported.
      • Rasterizer Ordered Views, provided that the corresponding Vulkan fragment shader interlock features are supported.
    • Closer to Windows behaviour for "immediate contexts and deferred contexts", might help "improve compatibility to third-party libraries and mods that hook into the D3D11 immediate context specifically, and reduces CPU overhead since some frequently used code paths are now more specialized for each context type".
    • More optimizations to reduce CPU overhead in games like Assassin's Creed: Origins and God of War.

There's also numerous game-specific bug fixes including issues solved for: Alan Wake, Alice Madness Returns, Anomaly: Warzone Earth, Beyond Good and Evil, Dragon Age Origins, Empire: Total War, Final Fantasy XV, Grand Theft Auto IV, Heroes Of Annihilated Empires, King Of Fighters XIII, Metal Gear Solid V: Ground Zeroes, Sonic Generations, Spider Man: Shattered Dimensions, The Ship, Warhammer Online and Ys Seven.

Incredible work from all involved to make Linux gaming better than ever.

For Steam Deck users: you'll have to wait for SteamOS updates to bring in a new driver for support for all the features. Some of it is not yet ready in the Mesa GPU drivers for either desktop or Steam Deck.

Article taken from GamingOnLinux.com.
38 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 came back to check 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. Find me on Mastodon.
See more from me
The comments on this article are closed.
20 comments
Page: «2/2
  Go to:

t3g Nov 11, 2022
I guess this screws over Ubuntu 22.04 users unless they upgrade to 22.10, wait for a backport, or move to Pop_OS which has 22.2 and 6.0.6 of the Linux kernel right now.
CatKiller Nov 11, 2022
View PC info
  • Supporter Plus
Quoting: t3gI guess this screws over Ubuntu 22.04 users unless they upgrade to 22.10, wait for a backport, or move to Pop_OS which has 22.2 and 6.0.6 of the Linux kernel right now.
https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa (actually, the standard repositories carry 520.56.06 without needing the PPA)

https://launchpad.net/~kisak/+archive/ubuntu/kisak-mesa

Mesa (and the kernel) will also get standard upgrades on LTS releases following the Hardware Enablement cadence.


Last edited by CatKiller on 11 November 2022 at 4:30 am UTC
mr-victory Nov 11, 2022
Quoting: Comandante ÑoñardoI just checked and this version of DXVK is not yet available on lutris or bottles
Download DXVK from github and add it to Lutris/Bottles, then.
Quoting: t3gPop_OS which has 22.2 and 6.0.6 of the Linux kernel right now.
AFAIK you need Mesa development drivers for the stutter-reducing extensions, even 22.2 is not enough.
TheRiddick Nov 11, 2022
Be nice if one day they can get full HDR support going. Guess we will need to wait for it to come to the Linux Desktop.
Blisto Nov 11, 2022
Quoting: t3gI guess this screws over Ubuntu 22.04 users unless they upgrade to 22.10, wait for a backport, or move to Pop_OS which has 22.2 and 6.0.6 of the Linux kernel right now.

Only mesa 22.0 is needed to use dxvk 2.0 🙂
Comandante Ñoñardo Nov 11, 2022
Quoting: mr-victory
Quoting: Comandante ÑoñardoI just checked and this version of DXVK is not yet available on lutris or bottles
Download DXVK from github and add it to Lutris/Bottles, then.

Even if I manually download and paste dxvk-2.0 folder in the right place, Lutris and bottles don't show it in their respective dxvk config menu.

Lutris DXVK config data is located in the file dxvk_versions.json

I don't know where Bottles store its DXVK config info.

LUTRIS and BOTTLES DEVS, do your job so I can try this!
tuubi Nov 11, 2022
View PC info
  • Supporter
Quoting: Comandante Ñoñardo
Quoting: mr-victory
Quoting: Comandante ÑoñardoI just checked and this version of DXVK is not yet available on lutris or bottles
Download DXVK from github and add it to Lutris/Bottles, then.

Even if I manually download and paste dxvk-2.0 folder in the right place, Lutris and bottles don't show it in their respective dxvk config menu.

Lutris DXVK config data is located in the file dxvk_versions.json

I don't know where Bottles store its DXVK config info.

LUTRIS and BOTTLES DEVS, do your job so I can try this!

Seems like you can just type in the name of the folder in `~/.local/share/lutris/runtime/dxvk/` to the DXVK version field in Lutris. In your case, type in "dxvk-2.0" and it should be picked up.
Grogan Nov 12, 2022
View PC info
  • Supporter Plus
You can also just symlink or name it the same as the current default version (latest) in ~/.local/share/lutris/runtime. That's how I do it, and I remove write permissions from mine so lutris can't ever overwrite my build with runtime updates.

I just removed v1.10.3 (it was my build anyway) and symlinked it to my v2.0 that I dropped in.
v1.10.3 -> v2.0

Then, my dxvk version field in Runner Options still says v1.10.3 and it loads the one I want it to.

I find that easier than trying to enter bogus info in that dxvk_versions.json file to get it to show up in the drop list. I didn't realize you could just type the version (directory name) in that field lol

That took care of Lutris last night, but I really wanted this for Steam where I play more shader heavy DirectX 11 games. So I fixed up a custom build of Proton-GE, and updated the dxvk sources (to the v2.0 tag) within it. The only proton patch that wouldn't apply was dxvk_async and since I don't use that, I just omitted it instead of trying to fix it. (It might just be a matter of rebasing it but I was too impatient to look at it)
hardpenguin Nov 12, 2022
520 line of NVIDIA drivers is not yet in Debian Sid so I guess I'll have to wait o.O
Adad Nov 15, 2022
Great news, even for Windows users. I use dxvk on W10 for GTA IV and it does wonders, the former makes the latter playable at last.
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!
The comments on this article are closed.