YaLTeR / BunnymodXT

Speedrun and TAS tool for Half-Life & friends.
Other
201 stars 37 forks source link

Error:/usr/lib32/libGL.so.1: undefined symbol: xcb_dri3_get_supported_modifiers #56

Closed gottaeat closed 5 years ago

gottaeat commented 5 years ago

i have a 7.5 gen intel haswell gt1 igpu, i'm using the modesetting driver with dri. whenever i try to run runhl.sh, i get this error:

...
Error:/usr/lib32/libGL.so.1: undefined symbol: xcb_dri3_get_supported_modifiers
Could not load hw.so.
Please try again at a later time.[DevMsg] SPTLib: Modules contain 3 entries.
[DevMsg] SPTLib: Unhooking ...
[DevMsg] SPTLib: Unhooking ...
[DevMsg] SPTLib: Unhooking ...
[DevMsg] BXT: Closed the message queue.

what i've tried:

  1. ran xorg with both dri3 and dri2
  2. used both the binary version of libBunnymodXT.so and the version i manually compiled from source.

none of them solved it and the error always stayed the same. what should i do?

here's my /etc/X11/xorg.conf.d/20-modesetting.conf:

Section "Device"
    Identifier  "Intel Graphics"
    Driver      "modesetting"
    Option      "AccelMethod"    "glamor"
    Option      "DRI"            "3"
    Option      "TearFree" "true"
EndSection
YaLTeR commented 5 years ago

Which distribution are you using?

gottaeat commented 5 years ago

Which distribution are you using?

i'm running a fully ~amd64 gentoo build on the 17.0/ profile. it's a multilib system so i have both 32 and 64 bit versions of the libraries.

YaLTeR commented 5 years ago

Mainly asking to eliminate the possibility of an old library version causing the error. To be fair, I'm not sure what the problem here could be. Try runhl.sh without BXT in LD_PRELOAD to check if it's a BXT issue or a runhl.sh issue. Try switching the value of USE_STEAM_BUNDLED_LIBRARIES in runhl.sh.

gottaeat commented 5 years ago

Try runhl.sh without BXT in LD_PRELOAD to check if it's a BXT issue or a runhl.sh issue.

i don't see any mention of BXT in the LD_PRELOAD line that loads libBunnymodXT.so or in the runhl.sh at all, am i missing something?

i get what you meant now, i've commented out the export LD_PRELOAD=/home/mss/hl1speedrun/libBunnymodXT.so line and ran runhl.sh but the error is still there.

Try switching the value of USE_STEAM_BUNDLED_LIBRARIES in runhl.sh.

i've ran both with 1 and 0 but when it's set to 0 it searches for old versions of libraries such as libpng12 which doesn't exist on my system and borks when it can't find them.

YaLTeR commented 5 years ago

Could you launch HL via Steam normally, then post its LD_LIBRARY_PATH? For example, by obtaining its PID from ps x | grep hl_linux and then copying the output of tr '\0' '\n' < /proc/PID/environ | grep '^LD_LIBRARY_PATH='.

gottaeat commented 5 years ago

Could you launch HL via Steam normally, then post its LD_LIBRARY_PATH? For example, by obtaining its PID from ps x | grep hl_linux and then copying the output of tr '\0' '\n' < /proc/PID/environ | grep '^LD_LIBRARY_PATH='.

https://gist.github.com/rmrfmss/27b276d558bbe61eda615797094b9626

YaLTeR commented 5 years ago

Try replacing the export LD_LIBRARY_PATH=\ <a bunch of lines with STEAM_RUNTIME, etc> with

    export LD_LIBRARY_PATH=\
$HL_ROOT:\
$STEAM_RUNTIME/pinned_libs_32:\
$STEAM_RUNTIME/pinned_libs_64:\
/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/32:\
/usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0:\
/usr/lib:\
/usr/lib/llvm/8/lib32:\
/usr/lib/llvm/8/lib64:\
/lib64:\
/usr/local/lib64:\
/lib32:\
/usr/lib32:\
/usr/lib64/rust-1.33.0:\
$STEAM_RUNTIME/i386/lib/i386-linux-gnu:\
$STEAM_RUNTIME/i386/lib:\
$STEAM_RUNTIME/i386/usr/lib/i386-linux-gnu:\
$STEAM_RUNTIME/i386/usr/lib:\
$STEAM_RUNTIME/amd64/lib/x86_64-linux-gnu:\
$STEAM_RUNTIME/amd64/lib:\
$STEAM_RUNTIME/amd64/usr/lib/x86_64-linux-gnu:\
$STEAM_RUNTIME/amd64/usr/lib:\
/usr/lib64/debiancompat:\
/usr/lib32/debiancompat:\
/usr/lib64/fltk:\
/usr/lib32/fltk

and see if it starts working. If it does, could you figure out which new line compared to the original script does the trick?

gottaeat commented 5 years ago

ry replacing the export LD_LIBRARY_PATH=\ <a bunch of lines with STEAM_RUNTIME, etc> with

yep, that did the trick, i'm able to add the hud commands and such to my game now. i really really appreciate the fast and healthy communication, thanks a bunch.

and see if it starts working. If it does, could you figure out which new line compared to the original script does the trick?

do you mean like one by one testing each line? how should i proceed doing that instead of torturing myself like that?

YaLTeR commented 5 years ago

I'd try removing all non-32 bit lines first, then gcc/llvm lines all in one go and then remove the other added lines one by one until it stops working.