[SOLVED]Bound By Flame crashes with the 361.16 beta - GTX 970, Fedora 23 64bit

Greetings,

So, with the release of the 361.16 beta and the promise of no more spite crashing from Steam I decided to take this version for a spin. Good news is: it does in fact fix the Steam crashing issues.

The (arguably) bad news is that Bound By Flame now seems to crash for me, whenever I load my game and either talk to a shop owner NPC, try to move to a different area or simply try to open my inventory.

Seeing as I didn’t do any updates besides the NVidia driver, nor did the game get updated either, I’m pretty sure it might be the drivers.

Let me know if there’s any other info you may need.
nvidia-bug-report.log.gz (252 KB)

Thanks for reporting this. I’m trying to track down a copy to try reproducing the problem.

Edit: Is there any chance you could get a backtrace or crash dump from the game? E.g. with coredumpctl?

Sorry it took me so long to reply.

Here’s the output from coredumpctl

All of the dumps return the same stacktrace.

┌─[22:22:13]─[unaccounted4@AMiGA]─[~]
└──> coredumpctl | grep BoundByFlame
Seg 2016-01-11 21:38:41 WET   31965  1000  1000  11   /home/unaccounted4/.local/share/Steam/steamapps/common/Bound By Flame/BoundByFlame
Seg 2016-01-11 21:39:41 WET   32109  1000  1000  11   /home/unaccounted4/.local/share/Steam/steamapps/common/Bound By Flame/BoundByFlame
Seg 2016-01-11 21:40:35 WET   32294  1000  1000  11   /home/unaccounted4/.local/share/Steam/steamapps/common/Bound By Flame/BoundByFlame
Seg 2016-01-11 21:43:00 WET   32764  1000  1000  11   /home/unaccounted4/.local/share/Steam/steamapps/common/Bound By Flame/BoundByFlame
Sáb 2016-01-16 16:10:19 WET   9749  1000  1000  11   /home/unaccounted4/.local/share/Steam/steamapps/common/Bound By Flame/BoundByFlame


┌─[22:22:47]─[unaccounted4@AMiGA]─[~]
└──> coredumpctl info 9749
           PID: 9749 (BoundByFlame)
           UID: 1000 (unaccounted4)
           GID: 1000 (unaccounted4)
        Signal: 11 (SEGV)
     Timestamp: Sáb 2016-01-16 16:07:36 WET (4 days ago)
  Command Line: /home/unaccounted4/.local/share/Steam/steamapps/common/Bound By Flame/BoundByFlame
    Executable: /home/unaccounted4/.local/share/Steam/steamapps/common/Bound By Flame/BoundByFlame
 Control Group: /user.slice/user-1000.slice/session-1.scope
          Unit: session-1.scope
         Slice: user-1000.slice
       Session: 1
     Owner UID: 1000 (unaccounted4)
       Boot ID: bdc98ee7feb449d5ad58323c6855cab1
    Machine ID: 47040fee3e184cb3ba6e152e238b6a0a
      Hostname: AMiGA
       Message: Process 9749 (BoundByFlame) of user 1000 dumped core.
                
                Stack trace of thread 9882:
                #0  0x00000000f61f7ccc glDeleteTextures (libGL.so.1)

PS: This is still present in 361.18

Thanks! We’re tracking the problem internally with bug #1720098.

I think this is one of a class of application bugs where they call OpenGL functions without ever making a context current, which crashes because libglvnd only installs a GL dispatch table in response to a call to glXMakeCurrent or glXMakeContextCurrent. Kyle submitted a workaround to libglvnd that helps for some applications: https://github.com/NVIDIA/libglvnd/commit/ba0b05a5691006b8e954af6494a58c057514bb6e. I haven’t verified this particular game but we’ll ship this fix in the copy of libglvnd that we include in a future driver release. I’ll let you know if the investigation of this particular app turns up anything else interesting.

What is the recommended way of installing libglvnd for testing? I wanted to try Civ V with this commit.
I’m running the 361.18 driver from the Arch User Repo.

I cloned the libglvnd repo and ran:
./autogen.sh
./configure --prefix=/usr
sudo make install
To install the library system wide. I rebooted but GNOME wouldn’t start. The logs said that gnome-shell segfaulted.

PID: 575 (gnome-shell)
           UID: 120 (gdm)
           GID: 120 (gdm)
        Signal: 11 (SEGV)
     Timestamp: Fr 2016-01-22 14:57:52 CET (26min ago)
  Command Line: gnome-shell --mode=gdm
    Executable: /usr/bin/gnome-shell
 Control Group: /user.slice/user-120.slice/session-c1.scope
          Unit: session-c1.scope
         Slice: user-120.slice
       Session: c1
     Owner UID: 120 (gdm)
       Boot ID: 6beb1515331a4a4292dbc357841c554b
    Machine ID: 8abeba7c8f38466ab3bb223a1ef71689
      Hostname: archlinux
      Coredump: /var/lib/systemd/coredump/core.gnome-shell.120.6beb1515331a4a4292dbc357841c554b.575.1453471072000000.lz4
       Message: Process 575 (gnome-shell) of user 120 dumped core.
                
                Stack trace of thread 575:
                #0  0x00007f4be76118f7 n/a (libcogl.so.20)
                #1  0x00007f4be75cb5df cogl_display_setup (libcogl.so.20)
                #2  0x00007f4be75ca949 cogl_renderer_check_onscreen_template (libcogl.so.20)
                #3  0x00007f4beabe381a n/a (libclutter-1.0.so.0)
                #4  0x00007f4beabe3977 n/a (libclutter-1.0.so.0)
                #5  0x00007f4beac15b78 n/a (libclutter-1.0.so.0)
                #6  0x00007f4beac2e613 n/a (libclutter-1.0.so.0)
                #7  0x00007f4beac3fa69 n/a (libclutter-1.0.so.0)
                #8  0x00007f4beac3fc70 n/a (libclutter-1.0.so.0)
                #9  0x00007f4be9f09b57 g_option_context_parse (libglib-2.0.so.0)
                #10 0x00007f4beac40a18 clutter_init (libclutter-1.0.so.0)
                #11 0x00007f4beb86f7eb meta_clutter_init (libmutter.so.0)
                #12 0x00007f4beb8a2862 meta_init (libmutter.so.0)
                #13 0x0000000000401ef2 main (gnome-shell)
                #14 0x00007f4be9914610 __libc_start_main (libc.so.6)
                #15 0x00000000004022d9 n/a (gnome-shell)
                
                Stack trace of thread 581:
                #0  0x00007f4be99d418d poll (libc.so.6)
                #1  0x00007f4be9efefbc n/a (libglib-2.0.so.0)
                #2  0x00007f4be9eff0cc g_main_context_iteration (libglib-2.0.so.0)
                #3  0x00007f4be9eff109 n/a (libglib-2.0.so.0)
                #4  0x00007f4be9f25715 n/a (libglib-2.0.so.0)
                #5  0x00007f4be9c9f4a4 start_thread (libpthread.so.0)
                #6  0x00007f4be99dd13d __clone (libc.so.6)

I ran “sudo make uninstall” in the libglvnd repo and rebooted, but GNOME still didn’t start. I checked the integrity of the nvidia-beta-libgl package and 12 out of 27 files were missing. So I reinstalled it to fix the problem. I glanced over the PKGBUILD of the nvidia-beta-utils package, but couldn’t find evidence that the package fetches a certain commit of libglvnd while building and packaging the driver.

This Bound By Flame problem is looking like it’s different from the one that affected KOTOR2. Does the problem go away if you set __GLVND_DISALLOW_PATCHING=1 in the environment before launching Steam?

Not sure if this was for KotOR or BbF, but with the later it still crashes with 361.18.

EDIT: On my end, it didn’t work for either of them.

This problem appears to be an application bug, similar to what was observed in Civilization5 and KOTOR2, with the added twist that no work around is feasible in our driver.
The application apparently calls glDeleteTextures() from a thread where no GLX context was ever made current; although that thread does call glXMakeCurrent(), it does so with a context that is current to another thread (which is illegal) and ignores the ensuing BadAccess X11 error before proceeding to making the glDeleteTextures() call.
The application needs to be fixed.

I just installed the 361.28 drivers with GLVND enabled and KOTOR2 works properly again.

Bound By Flame is playable if I add __GLVND_DISALLOW_PATCHING=1 %command% to the launch options in Steam. Otherwise it retains the crashing behavior.

Marked solved.