protonscr

DXVK no longer working on SteamOS with Proton 3.16-1 Beta

protonclosed
ValveSoftware/Proton#1730 · opened 2018-10-13 by dubigrasu · updated 2018-10-17 · 15 comments · github
Ddubigrasu 2018-10-13 github

Compatibility Report

  • All DX11 games using DXVK are affected

System Information

I confirm:

  • [x ] that I haven't found an existing compatibility report for this game.
  • [x ] that I have checked whether there are updates for my system available.

From the log file:

59892.103:0008:0009:err:module:load_builtin_dll failed to load .so lib for builtin L"d3d11.dll": /media/steam/BIGSTEAM/steamapps/common/Proton 3.16/dist/lib/wine/dxvk/d3d11.dll.so: symbol _ZTTNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE, version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference

59892.282:0008:0009:err:module:load_builtin_dll failed to load .so lib for builtin L"dxgi.dll": /media/steam/BIGSTEAM/steamapps/common/Proton 3.16/dist/lib/wine/dxvk/dxgi.dll.so: symbol _ZTTNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE, version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference

Symptoms:

All DX11 games using dxvk are not starting, or reverting to DX9. From the log above I take it that the new native dxvk libraries were compiled against a newer libstdc++.so.6 than the one SteamOS provides?

steam@steamos:~$ strings /usr/lib/i386-linux-gnu/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_DEBUG_MESSAGE_LENGTH
steam@steamos:~$

The libstdc++.so.6 provided by the steam-runtime is newer (and I am using the steam-runtime):

steam@steamos:~$ strings /home/steam/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_DEBUG_MESSAGE_LENGTH
steam@steamos:~$ 

But when grepping for the specific symbol mentioned in the log:
_ZTTNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE
in all libstdc++.so.6 files on my system, it couldn't be found.

Reverting Proton to 3.7-8 restores DXVK functionality.

Reproduction:

Switch to Proton 3.16-1 Beta and try starting any DX11 game.

GGloriousEggroll 2018-10-13 github

confirming same problem here on Arch using steam-runtime, steam-native works properly (using arch native libraries). Manually installing the latest dxvk release to proton works as a workaround as well.

Ggarpu 2018-10-13 github

Same issue, here, with Slackware 14.2. 3.7-8 works fine. Did some other requirement change?

LLeJimster 2018-10-13 github

In the release notes for 3.16-1

  • DXVK is now built as a native Linux library, which may give a small performance boost, and should make debugging easier for DXVK and driver developers.
Ddubigrasu 2018-10-13 github

@garpu

Same issue, here, with Slackware 14.2. 3.7-8 works fine. Did some other requirement change?

The difference is that previously Proton used DXVK compiled as Windows DLL files, while now they are native Linux libraries (like the d3d11.dll.so and dxgi.dll.so files you can see in the log file posted above).
I see that Slackware 14.2 is about two years old, so in the same boat as SteamOS in term of outdated libraries.

Ddubigrasu 2018-10-13 github

@GloriousEggroll
Is interesting that the libstdc++.so.6 from the steam-runtime should work (?):

steam@steamos:~$ strings /home/steam/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_DEBUG_MESSAGE_LENGTH
steam@steamos:~$ 

I see that GLIBCXX_3.4.21 is present in the libstdc++.so.6 file provided by the steam-runtime.
Not sure what's going on (I am using the steam-runtime).

Edit: Never mind, the symbol mentioned in the log: _ZTTNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEE is not present in my libstdc++.so.6 files.

?ghost 2018-10-14 github

@garpu

Same issue, here, with Slackware 14.2. 3.7-8 works fine. Did some other requirement change?

The difference is that previously Proton used DXVK compiled as Windows DLL files, while now they are native Linux libraries

This in itself is backwards. If compiling it differently broke Steam OS because its not Windows then all Linux distros are not Windows either lol.

That's just something they cited in the changelog.

Ggarpu 2018-10-14 github

Edit: To answer my own question, STEAM_RUNTIME_PREFER_HOST_LIBRARIES=1 is a workaround for now. (like mentioned upthread.)

Rromulasry 2018-10-14 github

Looks like they are compiling with a newer version of ibstdc++.so.6 on DXVK than SteamOS supports.

Ddubigrasu 2018-10-14 github

OK, since I'm not gonna muck around with the older libstdc++.so.6 files from my system, as a temp solution I just "updated" the steam-runtime with newer ones from Ubuntu 18.04.
Everything working now, but of course waiting for a proper fix from Valve.

Mmeowmeowfuzzyface 2018-10-14 github

@dubigrasu Can you detail how you did this?

Kkode54 2018-10-15 github

This may explain #1570 still being broken even though it should be fixed by the new 0.9.0 (or relevant Git revision) DirectX 11 Stream Output -like functionality that is now available. Well, by all accounts, I assume it's a newer revision fix, since wine-staging 3.15 also fixed the graphics in that game.

Aaeikum 2018-10-15 github

Thanks for reporting and the diagnosis. Will get a fix for this ASAP.

Ddubigrasu 2018-10-17 github

Tested again with Proton 3.16-2 and the issue is solved. Thank you.
As far as I can tell, this can be closed.

Ggarpu 2018-10-17 github

Everything works great on my end, too! Many thanks!

Aaeikum 2018-10-17 github

Thanks again for reporting, and for retesting.

Proton versions

DLLs