Jump to content
  • 0

[Linux] Unable to start game, hangs on black screen


kujeger

Question

Hi,

 

PoE2 hangs immediately after pressing "Play" in steam (or directly running the PillarsOfEternity2 executable). It simply shows a black screen, and uses 100% cpu in a loop. I have to forcefully kill -9 it in order to shut it down.

 

On my intel iGPU machine, I can get it running by starting steam with STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 .

 

Unfortunately, I cannot do this on my amd GPU machine, as steam is unable to start because of driver problems (it is unable to load radeonsi_dri.so and swrast_dri.so) .

 

I am running on Fedora 27. I would guess PoE2 is unable to start because of differing system libraries that probably should be bundled with the game, as the default for steam is to use system libraries -- it is likely that PoE2 will have problems on other modern distros as well (or future versions of existing ones).

 

Pillars 1 works without any problems.

 

It is basically the same problem that is reported here: https://forums.obsidian.net/topic/95320-linux-intel-game-hangs-on-start-with-100-cpu-usage-and-nothing-drawn-to-screen/ (which was marked as "solved" with the steam workaround).

 

Full terminal output is:

 

$ ./PillarsOfEternity2
Set current directory to /home/kujeger/Games/Steam/steamapps/common/Pillars of Eternity II - Public Beta
Found path: /home/kujeger/Games/Steam/steamapps/common/Pillars of Eternity II - Public Beta/PillarsOfEternity2
Mono path[0] = '/home/kujeger/Games/Steam/steamapps/common/Pillars of Eternity II - Public Beta/PillarsOfEternity2_Data/Managed'
Mono path[1] = '/home/kujeger/Games/Steam/steamapps/common/Pillars of Eternity II - Public Beta/PillarsOfEternity2_Data/Mono'
Mono config path = '/home/kujeger/Games/Steam/steamapps/common/Pillars of Eternity II - Public Beta/PillarsOfEternity2_Data/Mono/etc'
Preloaded 'ScreenSelector.so'
Preloaded 'libAkFlanger.so'
Preloaded 'libAkHarmonizer.so'
Preloaded 'libAkPitchShifter.so'
Preloaded 'libAkSoundEngine.so'
Preloaded 'libAkStereoDelay.so'
Preloaded 'libAkTremolo.so'
Preloaded 'libMcDSP.so'
Preloaded 'libSDL2-2.0.so'
Preloaded 'libsteam_api.so'
Player data archive not found at `/home/kujeger/Games/Steam/steamapps/common/Pillars of Eternity II - Public Beta/PillarsOfEternity2_Data/data.unity3d`, using local filesystem

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Hi! this is still a problem in the latest backer beta (beta 4). I spent a little time digging into it this evening, and this is what I've found:

 

 

$ ldd PillarsOfEternity2_Data/Plugins/x86_64/libAkSoundEngine.so
[..]
libSDL2-2.0.so.0 => /lib64/libSDL2-2.0.so.0 (0x00007f001ceb0000)
[..]
this library is dynamically linked against SDL2, and the version seems to be 2.0.4. Never versions of SDL2 breaks things (in fact, removing libAkSoundEngine.so allows PoE2 to start, albeit with many fun bugs).

libSDL 2.0.4 is included in the steam runtime, and a copy is actually shipped in the PoE2 dir as well:

./PillarsOfEternity2_Data/Plugins/x86_64/libSDL2-2.0.so

(well, almost, it's missing the ending '0')

 

With that, a workaround can be done by starting PoE2 with an LD_PRELOAD:

LD_PRELOAD=./PillarsOfEternity2_Data/Plugins/x86_64/libSDL2-2.0.so ./PillarsOfEternity2

A "proper" fix would probably be to statically link libAkSoundEngine to libSDL2, which would ensure things work automagically.

  • Like 1
Link to comment
Share on other sites

×
×
  • Create New...