Bug 93352 - GRID Autosport crashes on start of race
Summary: GRID Autosport crashes on start of race
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Gallium/radeonsi (show other bugs)
Version: git
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Default DRI bug account
QA Contact: Default DRI bug account
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-12-11 16:44 UTC by Jürgen Scholz
Modified: 2016-01-18 06:40 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Attachments
Console log of GRID Autosport (2.61 MB, application/zip)
2015-12-11 19:38 UTC, Jürgen Scholz
Details
Second console log of GRID Autosport (975.57 KB, application/x-xz)
2015-12-11 20:20 UTC, Jürgen Scholz
Details
Third console log of GRID Autosport (1.14 MB, application/x-xz)
2015-12-12 02:19 UTC, Jürgen Scholz
Details
Fourth console log of GRID Autosport (1.93 MB, application/x-xz)
2015-12-12 02:35 UTC, Jürgen Scholz
Details

Description Jürgen Scholz 2015-12-11 16:44:54 UTC
System configuration:
* updated ubuntu wily/15.10
* Padoka PPA resulting in:
  * mesa 11.2~git151211033900.64c59b0~padoka0
  * libllvm3.8 3.8~svn255314-0~padoka0
  * xserver-xorg-video-radeon 7.6.99+git1512041459.78fbca0~padoka0
* linux kernel 4.4.0-040400rc4-generic (kernel.org) PPA
OR
* linux kernel 4.2.0-19-generic (ubuntu wily default kernel)

Graphics card:
~> lspci -v -s 01:00.0
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Tahiti XT [Radeon HD 7970/8970 OEM / R9 280X] (prog-if 00 [VGA controller])
        Subsystem: XFX Pine Group Inc. Device 3001
        Flags: bus master, fast devsel, latency 0, IRQ 41
        Memory at e0000000 (64-bit, prefetchable) [size=256M]
        Memory at f7e00000 (64-bit, non-prefetchable) [size=256K]
        I/O ports at e000 [size=256]
        Expansion ROM at f7e40000 [disabled] [size=128K]
        Capabilities: <access denied>
        Kernel driver in use: radeon

To reproduce (you will possibly need a Tahiti XT card):
1) Start GRID via Steam
2) Go through the menus to start a game or a benchmark
3) The game will crash immediately after the loading screen

dmesg:
OpenGL dispatch[8010]: segfault at 7fbfce4bf774 ip 00007fc131b2ef75 sp 00007fc12653b430 error 4 in radeonsi_dri.so[7fc131919000+931000]

I will try to get a backtrace with gdb.
Comment 1 Jürgen Scholz 2015-12-11 16:59:51 UTC
I might have gotten a possibly incomplete backtrace:

(gdb) 
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f34937fe700 (LWP 22944)]
0x00007f34f7717f75 in translate_src (t=<optimized out>, src_reg=<optimized out>) at ../../../../src/mesa/state_tracker/st_glsl_to_tgsi.cpp:4629
4629    ../../../../src/mesa/state_tracker/st_glsl_to_tgsi.cpp: Datei oder Verzeichnis nicht gefunden.
(gdb) bt
#0  0x00007f34f7717f75 in translate_src (t=<optimized out>, src_reg=<optimized out>) at ../../../../src/mesa/state_tracker/st_glsl_to_tgsi.cpp:4629
#1  0x00007f34f773d4b1 in st_translate_program (ctx=<optimized out>, procType=<optimized out>, ureg=<optimized out>, program=<optimized out>, 
    proginfo=<optimized out>, numInputs=<optimized out>, 
    inputMapping=<Fehler beim Lesen der Variable: Could not find the frame base for "st_translate_program(gl_context*, uint, ureg_program*, glsl_to_tgsi_visitor*, gl_program const*, GLuint, GLuint const*, GLuint const*, ubyte const*, ubyte const*, GLuint const*, GLuint const*, GLuint, GLuint const*, GLuint const*, ubyte const*, ubyte const*)".>, 
    inputSlotToAttr=<Fehler beim Lesen der Variable: Could not find the frame base for "st_translate_program(gl_context*, uint, ureg_program*, glsl_to_tgsi_visitor*, gl_program const*, GLuint, GLuint const*, GLuint const*, ubyte const*, ubyte const*, GLuint const*, GLuint const*, GLuint, GLuint const*, GLuint const*, ubyte const*, ubyte const*)".>, 
    inputSemanticName=<Fehler beim Lesen der Variable: Could not find the frame base for "st_translate_program(gl_context*, uint, ureg_program*, glsl_to_tgsi_visitor*, gl_program const*, GLuint, GLuint const*, GLuint const*, ubyte const*, ubyte const*, GLuint const*, GLuint const*, GLuint, GLuint const*, GLuint const*, ubyte const*, ubyte const*)".>, 
    inputSemanticIndex=<Fehler beim Lesen der Variable: Could not find the frame base for "st_translate_program(gl_context*, uint, ureg_program*, glsl_to_tgsi_visitor*, gl_program const*, GLuint, GLuint const*, GLuint const*, ubyte const*, ubyte const*, GLuint const*, GLuint const*, GLuint, GLuint const*, GLuint const*, ubyte const*, ubyte const*)".>, 
    interpMode=<Fehler beim Lesen der Variable: Could not find the frame base for "st_translate_program(gl_context*, uint, ureg_program*, glsl_to_tgsi_visitor*, gl_program const*, GLuint, GLuint const*, GLuint const*, ubyte const*, ubyte const*, GLuint const*, GLuint const*, GLuint, GLuint const*, GLuint const*, ubyte const*, ubyte const*)".>, 
    interpLocation=<Fehler beim Lesen der Variable: Could not find the frame base for "st_translate_program(gl_context*, uint, ureg_program*, glsl_to_tgsi_visitor*, gl_program const*, GLuint, GLuint const*, GLuint const*, ubyte const*, ubyte const*, GLuint const*, GLuint const*, GLuint, GLuint const*, GLuint const*, ubyte const*, ubyte const*)".>, 
    numOutputs=<Fehler beim Lesen der Variable: Could not find the frame base for "st_translate_program(gl_context*, uint, ureg_program*, glsl_to_tgsi_visitor*, gl_program const*, GLuint, GLuint const*, GLuint const*, ubyte const*, ubyte const*, GLuint const*, GLuint const*, GLuint, GLuint const*, GLuint const*, ubyte const*, ubyte const*)".>, 
    outputMapping=<Fehler beim Lesen der Variable: Could not find the frame base for "st_translate_program(gl_context*, uint, ureg_program*, glsl_to_tgsi_visitor*, gl_program const*, GLuint, GLuint const*, GLuint const*, ubyte const*, ubyte const*, GLuint const*, GLuint const*, GLuint, GLuint const*, GLuint const*, ubyte const*, ubyte const*)".>, 
    outputSlotToAttr=<Fehler beim Lesen der Variable: Could not find the frame base for "st_translate_program(gl_context*, uint, ureg_program*, glsl_to_tgsi_visitor*, gl_program const*, GLuint, GLuint const*, GLuint const*, ubyte const*, ubyte const*, GLuint const*, GLuint const*, GLuint, GLuint const*, GLuint const*, ubyte const*, ubyte const*)".>, 
    outputSemanticName=<Fehler beim Lesen der Variable: Could not find the frame base for "st_translate_program(gl_context*, uint, ureg_program*, glsl_to_tgsi_visitor*, gl_program const*, GLuint, GLuint const*, GLuint const*, ubyte const*, ubyte const*, GLuint const*, GLuint const*, GLuint, GLuint const*, GLuint const*, ubyte const*, ubyte const*)".>, 
    outputSemanticIndex=<Fehler beim Lesen der Variable: Could not find the frame base for "st_translate_program(gl_context*, uint, ureg_program*, glsl_to_tgsi_visitor*, gl_program const*, GLuint, GLuint const*, GLuint const*, ubyte const*, ubyte const*, GLuint const*, GLuint const*, GLuint, GLuint const*, GLuint const*, ubyte const*, ubyte const*)".>) at ../../../../src/mesa/state_tracker/st_glsl_to_tgsi.cpp:4798
#2  0x00007f34f774d203 in st_translate_program_common (st=<optimized out>, prog=<optimized out>, glsl_to_tgsi=<optimized out>, ureg=<optimized out>, 
    tgsi_processor=<optimized out>, out_state=<optimized out>) at ../../../../src/mesa/state_tracker/st_program.c:1266
#3  0x00007f34f774e7c6 in st_translate_tesseval_program (st=0x6478b50, sttep=0x7f338996ca20) at ../../../../src/mesa/state_tracker/st_program.c:1496
#4  0x00007f34f770bda5 in st_program_string_notify (ctx=<optimized out>, target=<optimized out>, prog=0x7f338996ca20)
    at ../../../../src/mesa/state_tracker/st_cb_program.c:275
#5  0x00007f34f774187c in st_link_shader (ctx=<optimized out>, prog=<optimized out>) at ../../../../src/mesa/state_tracker/st_glsl_to_tgsi.cpp:5877
#6  0x00007f34f77579eb in _mesa_glsl_link_shader (ctx=<optimized out>, prog=<optimized out>) at ../../../../src/mesa/program/ir_to_mesa.cpp:2984
#7  0x00007f34f768532b in link_program (ctx=0x6439b40, program=<optimized out>) at ../../../../src/mesa/main/shaderapi.c:1047
#8  0x00000000008b1171 in ?? ()
#9  0x00007f350e576030 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#10 0x00007f35092436aa in start_thread (arg=0x7f34937fe700) at pthread_create.c:333
#11 0x00007f3507a45eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Comment 2 Jürgen Scholz 2015-12-11 17:27:53 UTC
After installing (possibly unnecessary debug symbols and source files):
* aptitude install libgl1-mesa-dri-dev:i386 libgl1-mesa-dri-dbg:i386 libgl1-mesa-dri-dbg xserver-xorg-video-radeon-dbg libgl1-mesa-dev
* cd /usr/src; apt-get source libgl1-mesa-dri
* ln -s /usr/src/mesa-11.2~git151211033900.64c59b0~padoka0/src/mesa /usr/src/mesa

The backtrace seems to be complete:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f45137fe700 (LWP 9173)]
0x00007f452824cd43 in LLVMBuildLoad () from /usr/lib/x86_64-linux-gnu/libLLVM-3.8.so.1
(gdb) bt
#0  0x00007f452824cd43 in LLVMBuildLoad () from /usr/lib/x86_64-linux-gnu/libLLVM-3.8.so.1
#1  0x00007f452b751aa3 in emit_array_index (bld=<optimized out>, reg=<optimized out>, offset=4294955456)
    at ../../../../../../src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c:108
#2  0x00007f452b753a25 in radeon_llvm_emit_fetch (bld_base=0x7f45137f57d0, reg=0x7f43b7077f90, type=TGSI_TYPE_FLOAT, swizzle=0)
    at ../../../../../../src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c:191
#3  0x00007f452b4144e2 in lp_build_emit_fetch (bld_base=0x7f45137f57d0, inst=0x7f43b7077f50, src_op=1, chan_index=<optimized out>)
    at ../../../../../src/gallium/auxiliary/gallivm/lp_bld_tgsi.c:351
#4  0x00007f452b414654 in lp_build_fetch_args (bld_base=0x7f45137f57d0, emit_data=0x7f45137f4bd0) at ../../../../../src/gallium/auxiliary/gallivm/lp_bld_tgsi.c:180
#5  0x00007f452b4149db in lp_build_tgsi_inst_llvm (bld_base=0x7f45137f57d0, inst=0x7f43b7077f50) at ../../../../../src/gallium/auxiliary/gallivm/lp_bld_tgsi.c:291
#6  0x00007f452b414c6d in lp_build_tgsi_llvm (bld_base=0x7f45137f57d0, tokens=<optimized out>) at ../../../../../src/gallium/auxiliary/gallivm/lp_bld_tgsi.c:518
#7  0x00007f452b69161e in si_shader_create (sscreen=0x344fc20, tm=0x6a0fb30, shader=0x7f43b6e51230)
    at ../../../../../../src/gallium/drivers/radeonsi/si_shader.c:4177
#8  0x00007f452b69c389 in si_shader_select (ctx=0x696cb30, state=0x696d780) at ../../../../../../src/gallium/drivers/radeonsi/si_state_shaders.c:619
#9  0x00007f452b69cd08 in si_update_shaders (sctx=0x696cb30) at ../../../../../../src/gallium/drivers/radeonsi/si_state_shaders.c:1514
#10 0x00007f452b699679 in si_draw_vbo (ctx=0x696cb30, info=0x7f45137fd300) at ../../../../../../src/gallium/drivers/radeonsi/si_state_draw.c:788
#11 0x00007f452b3ae207 in u_vbuf_draw_vbo (mgr=0x6a74200, info=0x7f45137fd300) at ../../../../../src/gallium/auxiliary/util/u_vbuf.c:1162
#12 0x00007f452b1fa523 in st_draw_vbo (ctx=0x6a1ce70, prims=0x7f45137fd3c0, nr_prims=<optimized out>, ib=0x0, index_bounds_valid=<optimized out>, min_index=0,
    max_index=2, tfb_vertcount=0x0, stream=0, indirect=0x0) at ../../../../src/mesa/state_tracker/st_draw.c:291
#13 0x00007f452b1c83f6 in vbo_draw_arrays (ctx=0x6a1ce70, mode=14, start=0, count=3, numInstances=1, baseInstance=0)
    at ../../../../src/mesa/vbo/vbo_exec_array.c:645
#14 0x00000000008b1171 in ?? ()
#15 0x00007f454205d030 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#16 0x00007f453cd2a6aa in start_thread (arg=0x7f45137fe700) at pthread_create.c:333
#17 0x00007f453b52ceed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
(gdb)

Can I supply more information?
Comment 3 Ilia Mirkin 2015-12-11 18:01:12 UTC
The first issue is somewhere with glsl ir -> tgsi translation of a tessellation evaluation program. The second issue is that the generated TGSI is somehow problematic (or radeonsi has issues processing it).

It might be helpful to run the program with

MESA_GLSL=dump ST_DEBUG=tgsi

in the environment, and provide the resulting log file. I expect it'll be quite large.
Comment 4 Jürgen Scholz 2015-12-11 19:38:07 UTC
Created attachment 120468 [details]
Console log of GRID Autosport

This file is the output of a game session which goes from start through the menu to the loading screen. It ends (=game crashes) at the (end of the) loading screen. Sadly the file is rather huge (35MB), so I zipped it (3MB).

The command line used to obtain it:
~> env LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 \
PATH="~/.steam/ubuntu12_32/steam-runtime/amd64/bin:~/.steam/ubuntu12_32/steam-runtime/amd64/usr/bin:$PATH" \
LD_LIBRARY_PATH="/home/juergen/.steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu:/home/juergen/.steam/ubuntu12_32/steam-runtime/i386/lib:/home/juergen/.steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu:/home/juergen/.steam/ubuntu12_32/steam-runtime/i386/usr/lib:/home/juergen/.steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu:/home/juergen/.steam/ubuntu12_32/steam-runtime/amd64/lib:/home/juergen/.steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu:/home/juergen/.steam/ubuntu12_32/steam-runtime/amd64/usr/lib:/home/juergen/.steam/ubuntu12_32:/home/juergen/.steam/ubuntu12_32/panorama:/usr/lib32" \
LANG=C MESA_GLSL=dump ST_DEBUG=tgsi \
/home/juergen/.steam/SteamApps/common/GRID\ Autosport/bin/GridAutosport 2>| cat - > /home/juergen/gridAutosport_console.txt
Comment 5 Ilia Mirkin 2015-12-11 19:46:36 UTC
Hmmm... that did not have the desired output. Can you make sure to build mesa with --enable-debug ? I'm guessing some of the stuff is only output in that case.

Also, for your next attachment, please use xz -9 foo.log (saves a step... zip is an archive, so you have to unzip in order to see it, while with a stream compression format you can view it directly).
Comment 6 Jürgen Scholz 2015-12-11 20:20:30 UTC
Created attachment 120469 [details]
Second console log of GRID Autosport

I am looking into building the mesa package with the debug option. I have not done that before, so I will need some time.

In the meantime I kindly ask you to check if the issue is solvable with additional environment variables. http://www.mesa3d.org/envvars.html and http://www.mesa3d.org/shading.html#envvars could be helpful.

Attached is another console log, where the command line now includes environment switches to enable more debug output. Thanks for the tip about using xz. Awesome!

Command line: ulimit -c unlimited;
env LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 \
                    PATH="~/.steam/ubuntu12_32/steam-runtime/amd64/bin:~/.steam/ubuntu12_32/steam-runtime/amd64/usr/bin:$PATH" \
                    LD_LIBRARY_PATH="/home/juergen/.steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu:/home/juergen/.steam/ubuntu12_32/steam-runtime/i386/lib:/home/juergen/.steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu:/home/juergen/.steam/ubuntu12_32/steam-runtime/i386/usr/lib:/home/juergen/.steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu:/home/juergen/.steam/ubuntu12_32/steam-runtime/amd64/lib:/home/juergen/.steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu:/home/juergen/.steam/ubuntu12_32/steam-runtime/amd64/usr/lib:/home/juergen/.steam/ubuntu12_32:/home/juergen/.steam/ubuntu12_32/panorama:/usr/lib32" \
                    LANG=C \
                    MESA_GLSL=dump ST_DEBUG=tgsi \
                    LIBGL_DEBUG=verbose MESA_DEBUG=true \
                    /home/juergen/.steam/SteamApps/common/GRID\ Autosport/bin/GridAutosport  2>| cat - > /home/juergen/gridAutosport_console(date +%Y%m%d-%H%M%S).txt
Comment 7 Jürgen Scholz 2015-12-12 02:19:58 UTC
Created attachment 120474 [details]
Third console log of GRID Autosport

Well, that was interesting.

I built mesa for amd64 (debuild -b -us -uc -j4) and i386 (debuild -ai386 -b -us -uc -j4 in i386 chroot) with changed version (dch -n) and "confflags     += --enable-debug" in debian/rules.

The console log has become greatly bigger in size. I hope it has the information you need.

The 4k shader size limit can possibly be overcome when logging the files to a directory. I will try that in a few minutes.

For completeness the fish commandline:
ulimit -c unlimited;
env LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 \
                    PATH="~/.steam/ubuntu12_32/steam-runtime/amd64/bin:~/.steam/ubuntu12_32/steam-runtime/amd64/usr/bin:$PATH" \
    LD_LIBRARY_PATH="/home/juergen/.steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu:/home/juergen/.steam/ubuntu12_32/steam-runtime/i386/lib:/home/juergen/.steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu:/home/juergen/.steam/ubuntu12_32/steam-runtime/i386/usr/lib:/home/juergen/.steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu:/home/juergen/.steam/ubuntu12_32/steam-runtime/amd64/lib:/home/juergen/.steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu:/home/juergen/.steam/ubuntu12_32/steam-runtime/amd64/usr/lib:/home/juergen/.steam/ubuntu12_32:/home/juergen/.steam/ubuntu12_32/panorama:/usr/lib32" \
    LANG=C \
    MESA_GLSL=dump ST_DEBUG=tgsi \
    LIBGL_DEBUG=verbose MESA_DEBUG=1 \
    /home/juergen/.steam/SteamApps/common/GRID\ Autosport/bin/GridAutosport  2>| cat - > /home/juergen/gridAutosport_console(date +%Y%m%d-%H%M%S).txt
Comment 8 Jürgen Scholz 2015-12-12 02:35:02 UTC
Created attachment 120475 [details]
Fourth console log of GRID Autosport

Using the log file feature seems to yield complete shader files (exceeding sizes of 4kB). The attached tar archive includes the console log and the shader files.

The relevant parts of the command line:
MESA_GLSL=dump,log MESA_SHADER_DUMP_PATH=/tmp/dumps/shader/ ST_DEBUG=tgsi \
LIBGL_DEBUG=verbose MESA_DEBUG=1 \
Comment 9 Vladimir Usikov 2015-12-12 06:09:49 UTC
I have 7950(TAHITI) card and same problem. But i edit fie GridAutosport.sh in game folder.

#HAS_CATALYST="$(grep fglrx /proc/modules)"
#if [ -n "${HAS_CATALYST}" ]; then
	LD_PRELOAD="../lib/x86_64/libtcmalloc_minimal.so:${LD_PRELOAD}"
	export LD_PRELOAD
#fi

And this help. No more crash. I test with low and high settings in ingame benchmark.
Comment 10 Jürgen Scholz 2015-12-12 12:44:19 UTC
I just tried this, by using:
ln -s GRID\ Autosport/ GRIDAutosport
env LD_PRELOAD='/usr/$LIB/libstdc++.so.6:/home/juergen/.steam/SteamApps/common/GRIDAutosport/lib/x86_64/libtcmalloc_minimal.so' {rest of the usual command line here}

I still get an error related to GLSL:
GridAutosport: ../../../../src/mesa/state_tracker/st_glsl_to_tgsi.cpp:2342: virtual void glsl_to_tgsi_visitor::visit(ir_dereference_variable*): Assertion `var->data.location != -1' failed.
Comment 11 Iaroslav Andrusyak 2015-12-12 14:58:07 UTC
(In reply to Jürgen Scholz from comment #10)
> I just tried this, by using:
> ln -s GRID\ Autosport/ GRIDAutosport
> env
> LD_PRELOAD='/usr/$LIB/libstdc++.so.6:/home/juergen/.steam/SteamApps/common/
> GRIDAutosport/lib/x86_64/libtcmalloc_minimal.so' {rest of the usual command
> line here}
> 
> I still get an error related to GLSL:
> GridAutosport: ../../../../src/mesa/state_tracker/st_glsl_to_tgsi.cpp:2342:
> virtual void glsl_to_tgsi_visitor::visit(ir_dereference_variable*):
> Assertion `var->data.location != -1' failed.

works for me only with --disable-debug mesa build
with debug build libtcmalloc_minimal.so does not help
Comment 12 Jürgen Scholz 2015-12-13 16:11:11 UTC
Thanks for the hint. Using the --enable-debug build does not work. Reverting to the standard packages from the padoka PPA works, when the command line options for the game in the steam client is set to "LANG=C LD_PRELOAD="../lib/x86_64/libtcmalloc_minimal.so:${LD_PRELOAD}" %command%"

The caveat is that the game only works, if I turn on the windowed mode and if I set the resolution to 1920x1080, which is hardly ideal since I have a 3440x1440 monitor.
Comment 13 Ilia Mirkin 2015-12-13 16:40:47 UTC
I've pushed out a fix for the issue that triggers this assertion:

GridAutosport: ../../../../src/mesa/state_tracker/st_glsl_to_tgsi.cpp:2342: virtual void glsl_to_tgsi_visitor::visit(ir_dereference_variable*): Assertion `var->data.location != -1' failed.

But it sounds like there are additional issues too? I would encourage you to continue using --enable-debug as that is a lot better at identifying problems at their source.
Comment 14 Thomas Kowaliczek 2015-12-14 00:57:56 UTC
How can i debug the game i want to help to with logs.
Comment 15 Ilia Mirkin 2015-12-14 01:08:07 UTC
(In reply to Thomas Kowaliczek from comment #14)
> How can i debug the game i want to help to with logs.

With a debug build that includes my fix (e.g. checkout from mesa git), what problem do you hit?
Comment 16 Thomas Kowaliczek 2015-12-14 01:37:14 UTC
I know how to install mesa debug. But how can I get logs from the game? Because when I start the game with steam I don't become any log.... At the moment I have only lastest mesa stable installed.
Comment 17 Ilia Mirkin 2015-12-14 01:40:42 UTC
FWIW, replaying an apitrace I was given privately with the fix I pushed out works fine on nouveau, so I think the core issues are solved, we're just left with (potential) driver issues.

I can't really help you with installing things on your box. Try the latest mesa from the git repo, and make note of any issues you have.
Comment 18 Jürgen Scholz 2015-12-14 07:17:35 UTC
Ilia; the latest build from the padoka PPA is derived from git revision eca8f38. Thus it includes your fix and the game now runs fine for me with all the graphic settings/options that I tested.

Thank you very much!

I will set the status of the bug to RESOLVED/WORKSFORME, I hope that everybody agrees with this.


Thomas; take a look at the command lines I put here. Obviously you will have to adjust them according to your username and possibly to the location of your steam-Data or shell (I use fish) - after that you should be able to get log files and console output.
Comment 19 Jürgen Scholz 2015-12-14 07:28:13 UTC
Oh, that probably should have been RESOLVED/FIXED.
Comment 20 Edwin Smith (Feral Interactive) 2015-12-14 10:13:17 UTC
(In reply to Ilia Mirkin from comment #17)
> FWIW, replaying an apitrace I was given privately with the fix I pushed out
> works fine on nouveau, so I think the core issues are solved, we're just
> left with (potential) driver issues.
> 
> I can't really help you with installing things on your box. Try the latest
> mesa from the git repo, and make note of any issues you have.

My name is Edwin Smith and I work for Feral Interactive who make the Linux version of the game. Thank you for fixing the issue in the latest drivers, I am sure people playing the game on AMD machines will be very happy! 

We tested the game using 11.0.2 and apart from missing features for the higher end effects meaning they had to be disabled we did not see any major rendering issues.

Please let us know if we can assist by providing people working on driver issues a copy of the title or other information to help with your driver work.
Comment 21 Thomas Rohloff 2015-12-15 18:01:33 UTC
(In reply to Edwin Smith from comment #20)
> My name is Edwin Smith and I work for Feral Interactive who make the Linux
> version of the game.

Hi Edwin. As this bug here is closed it would be great if you could have a look at bug #93353.

> Please let us know if we can assist by providing people working on driver
> issues a copy of the title or other information to help with your driver
> work.
I would say gift Ilia Mirkin a copy, please, but let's see if he wants one first. :)
Comment 22 Maxim Sheviakov 2015-12-26 21:04:30 UTC
Uhm, sorry for a noobish question, but... When will the fix for this issue be avalible? I don't fancy using git versions of %package%, so that's pretty important. Maybe 11.1.1?
Comment 23 Nicolai Hähnle 2015-12-29 19:07:55 UTC
From what I can see, Ilia's fix has made it into 11.0.8, and for the 11.1 series you'll have to wait for 11.1.1.
Comment 24 Maxim Sheviakov 2016-01-16 18:34:14 UTC
So, the fix isn't present in 11.1.1 ver, for which it was planned (as far as I'm concerned). What's wrong and when will it be avalible for stable users?
Comment 25 Ilia Mirkin 2016-01-16 19:01:32 UTC
(In reply to Maxim Sheviakov from comment #24)
> So, the fix isn't present in 11.1.1 ver, for which it was planned (as far as
> I'm concerned). What's wrong and when will it be avalible for stable users?

http://cgit.freedesktop.org/mesa/mesa/commit/?h=11.1&id=66e0a26b56d80921e886195e4be550b8d033d7e9

My fix is in 11.1.1. There can, of course, be additional issues. That said, outside of the fact that the game plays like a slideshow on my super-slow GF108 GPU, it was mostly fine. (There's an additional issue which is that the game does GL calls from different threads, in a perfectly legal manner, which totally breaks nouveau sometimes. That's a larger issue and I believe unrelated to the one discussed here.)
Comment 26 Maxim Sheviakov 2016-01-16 19:05:11 UTC
(In reply to Ilia Mirkin from comment #25)
> (In reply to Maxim Sheviakov from comment #24)
> > So, the fix isn't present in 11.1.1 ver, for which it was planned (as far as
> > I'm concerned). What's wrong and when will it be avalible for stable users?
> 
> http://cgit.freedesktop.org/mesa/mesa/commit/?h=11.
> 1&id=66e0a26b56d80921e886195e4be550b8d033d7e9
> 
> My fix is in 11.1.1. There can, of course, be additional issues. That said,
> outside of the fact that the game plays like a slideshow on my super-slow
> GF108 GPU, it was mostly fine. (There's an additional issue which is that
> the game does GL calls from different threads, in a perfectly legal manner,
> which totally breaks nouveau sometimes. That's a larger issue and I believe
> unrelated to the one discussed here.)

Weird thing, then... It's strange.
I'm on Archlinux here. I've got mesa-11.1.1 and lib32-mesa-11.1.1 compiled by myself. And after removing that tempfix (additional launch settings) I get the same issue as if I was at mesa-11.1, for example - freeze of the game at the logo. However, with those parameters it's okay.
I can't also see the fix in the release notes at cgit.
Comment 27 Maxim Sheviakov 2016-01-16 19:06:12 UTC
It actually is there, sorry:
> glsl: assign varying locations to tess shaders when doing SSO
But that doesn't make anything work.
Comment 28 Maxim Sheviakov 2016-01-16 19:27:46 UTC
> and I believe unrelated to the one discussed here
Actually, it is. All the logs and fixes comply with my problem (not only mine, heh). I think that the problem lies deeper than we think - here's why it is so:
My rig is equipped with Radeon R7 370 Armor 2X from MSI. It's a GCN1.0 GPU based off Cape Verde/Curacao PRO chip from R9 270X. It doesn't matter that the memory clock is lower than it should at 800MHz (if quad-pumped, or 200MHz if you like), another thing does: people with GCN1.1+ GPUs can run the game flawlessly without issues like mine/Jurgen's - it just works. However, many GCN1.0-cards owners claim they have the same issue. Maybe we should look into RadeonSI driver's source if there are any acting differences between GCN1.0 and 1.1+ GPUs' code?
Comment 29 Michel Dänzer 2016-01-18 06:40:20 UTC
(In reply to Maxim Sheviakov from comment #26)
> I'm on Archlinux here. I've got mesa-11.1.1 and lib32-mesa-11.1.1 compiled
> by myself. And after removing that tempfix (additional launch settings) I
> get the same issue as if I was at mesa-11.1, for example - freeze of the
> game at the logo.

This bug report is about a segmentation fault. It was marked as fixed by the reporter.

It sounds like you're still affected by at least one other bug, which might be SI specific. Please file your own report.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.