Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

outdated xcb library in steam runtime causes KSP 1.2 prelease to hung under DRI3 #4638

Closed
Jajcus opened this issue Sep 28, 2016 · 6 comments
Closed
Assignees
Labels

Comments

@Jajcus
Copy link

Jajcus commented Sep 28, 2016

Your system information

  • Steam client version: Built Sep 20 2016 at 18:21:08, package versions: 1474415843
  • Distribution: PLD Linux
  • Opted into Steam client beta?: Yes
  • Have you checked for system updates?: Yes

Drivers:

  • Linux kernel 4.7.5
  • Mesa 12.0.3 Intel GPU driver
  • Xorg 'intel' or 'modesetting' driver (both tested), with DRI3 enabled
  • Intel Haswell and Intel Skylake CPU/GPU (both tested)

Please describe your issue in as much detail as possible:

Kerbal Space Program pre-release would freeze randomly. Freezing stops when I start it with LIBGL_DRI3_DISABLE=1 or when I remove all libxcb*.so* and libX*.so* from steam runtime, to force using current system libraries.

I would expect the game to work properly without the need for any extra options or workarounds.

I have first reported this problem to KSP developers: http://bugs.kerbalspaceprogram.com/issues/11420
When I found out LIBGL_DRI3_DISABLE helps, I have filed a Mesa bug report: https://bugs.freedesktop.org/show_bug.cgi?id=97890
Further debugging hinted an issue with libxcb and a Mesa developer suggested that the libraries provided by Steam Runtime may be quite outdated (there have been DRI3-related fixes upstream).

Steps for reproducing this issue:

  1. Have current Linux kernel and current released Mesa Intel drivers (12.0.3)
  2. Make sure the X11 driver has DRI3 enabled (should be on a modern system)
  3. Start KSP from steam, preferably the x86_64 version (the default x86 version also freezes)
  4. Play a bit until it freezes. Alt-tabbing and using UI widgets, like in the settings window or tech tree, seem to trigger the bug faster.

IMHO, in case of such system libraries, like libxcb, libstdc++, libasound, etc. Steam should override system libraries only when the system does not provide given soname at all or provides old one (often can be seen in the library file names). Forcing whole set of libraries, often causes problems, when old libraries override current ones.

@srakitnican
Copy link

Removing Steam's version of libxcb.so.1 also stops freezes for Viridi on recent Fedora versions with Intel and DRI3.

@NotMrFlibble
Copy link

NotMrFlibble commented Nov 16, 2016

This applies to several other games, and it's DRI3-specific only. (AMD graphics hardware here.)

If the XCB libraries must be bundled, Valve should bundle version 1.11 or backport the DRI3 fix.

@ernstp
Copy link

ernstp commented Jan 5, 2017

This also happened to me with Talos running on AMDGPU + RADV:

Thread 1 "Talos" received signal SIGINT, Interrupt.
0x00007ffff776d4d0 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
(gdb) bt
#0 0x00007ffff776d4d0 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
#1 0x00007ffff48a1b7f in ?? () from /home/ernst/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libxcb.so.1
#2 0x00007ffff48a347f in ?? () from /home/ernst/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libxcb.so.1
#3 0x00007ffff48a3699 in xcb_wait_for_reply ()
from /home/ernst/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libxcb.so.1
#4 0x00007ffff4f10f5d in _XReply () from /home/ernst/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libX11.so.6
#5 0x00007ffff4f06cf9 in XQueryPointer ()
from /home/ernst/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libX11.so.6
#6 0x0000000001a1d3a2 in ?? ()
#7 0x0000000001923d31 in ?? ()
#8 0x0000000001a5fc6e in ?? ()
#9 0x0000000001a4e398 in ?? ()
#10 0x0000000000924f8b in ?? ()
#11 0x00000000008f8db6 in ?? ()
#12 0x00000000008fae0f in ?? ()
#13 0x0000000001472d0a in ?? ()
#14 0x000000000191c9d2 in ?? ()
#15 0x000000000191ccb4 in ?? ()
#16 0x00007ffff6eac3f1 in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
#17 0x00000000008e671f in ?? ()

I think this could happen with Intel graphics also?

@kisak-valve
Copy link
Member

Per the 2017-01-05 steam beta update, does this issue still occur with the beta client?

@NotMrFlibble
Copy link

NotMrFlibble commented Jan 6, 2017

Looks fine here now.

Now all that's needed is to clean up those games which bundle these libraries by removing said libraries. Checking what I have here (and which isn't already cleaned up), I find an old libxcb in System Shock 2 which causes the game to fail to start up due to a missing symbol.

@kisak-valve
Copy link
Member

Thanks testing @NotMrFlibble, you should follow up with the System Shock 2 game devs for issues with game bundled libraries.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

7 participants