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

Created on 13 Oct 2018  路  15Comments  路  Source: ValveSoftware/Proton

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.

Most helpful comment

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

All 15 comments

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.

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

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.

@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.

@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.

@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.

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

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

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.

@dubigrasu Can you detail how you did this?

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.

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

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

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

Thanks again for reporting, and for retesting.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

juppso picture juppso  路  3Comments

Elkasitu picture Elkasitu  路  3Comments

shaphanpena1 picture shaphanpena1  路  3Comments

ghost picture ghost  路  3Comments

AwesamLinux picture AwesamLinux  路  3Comments