Summary: | Undertale crashes on startup (compiling shaders?) | ||
---|---|---|---|
Product: | Mesa | Reporter: | John Steele Scott <toojays> |
Component: | Drivers/Gallium/radeonsi | Assignee: | Default DRI bug account <dri-devel> |
Status: | RESOLVED MOVED | QA Contact: | Default DRI bug account <dri-devel> |
Severity: | normal | ||
Priority: | medium | CC: | mkj |
Version: | 17.2 | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Bug Depends on: | 105797 | ||
Bug Blocks: | 77449 | ||
Attachments: |
thread apply all bt full
thread apply all bt full with git master 043d14db30. apitrace of Undertale startup taken on box with Iris 540 & Mesa 17.2.4. Backtrace of Undertale / YoYo Game Linux Runner just before crash API trace warnings of game startup |
Description
John Steele Scott
2017-11-26 12:27:48 UTC
You are using really old kernel with latest Mesa code and old Debian and that can cause problems. Use Debian testing Xfce and a custom kernel from kernel.org or from https://cgit.freedesktop.org/~agd5f/linux Also use Mesa dev, you can use Oipaf ppa Artful version with Debian testing. https://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers http://www.webupd8.org/2014/10/how-to-add-launchpad-ppas-in-debian-via.html Thanks for the report, that does indeed look like a bug while compiling a shader. Could you try if it also happens with Mesa master? If yes, could you provide an apitrace? If no, you could use `git bisect` to find the commit that fixed the bug. Created attachment 135736 [details]
thread apply all bt full with git master 043d14db30.
(In reply to Nicolai Hähnle from comment #2) > Could you try if it also happens with Mesa master? The crash is still happening with master 043d14db30. Backtrace is similar but slightly different, I've updated the attachment in comment 3. > If yes, could you provide an apitrace? I didn't have any luck here. I built a 32-bit build of apitrace, then set the steam launch options to "/home/toojays/src/apitrace/build/apitrace trace %command%". This resulted in a trace file containing two bytes: "at". Likewise when I tried launching steam like: DEBUGGER="/home/toojays/src/apitrace/build/apitrace trace --verbose" steam steam://rungameid/391540 I also tried running Undertale directly like: LD_LIBRARY_PATH=/home/toojays/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu:./lib ~/src/apitrace/build/apitrace trace ./runner Still no good. I can see from the core that apitrace had some data for us, but for some reason it couldn't get it out in time? Thread 2 (Thread 0xf7009740 (LWP 18275)): #0 snappy::internal::CompressFragment (input=<optimized out>, input_size=<optimized out>, op=<optimized out>, table=<optimized out>, table_size=<optimized out>) at /home/toojays/src/apitrace/thirdparty/snappy/snappy.cc:511 #1 0xf7ce0f4f in snappy::Compress (reader=0xffa35974, writer=0xffa3596c) at /home/toojays/src/apitrace/thirdparty/snappy/snappy.cc:876 #2 0xf7ce153b in snappy::RawCompress (input=0xf042e008 "\006\006\fprocess.name5/pool/toojays/steam/SteamApps/common/Undertale/runner", input_length=147412, compressed=0xf0303008 "\324\377\b\220\006\006\fprocess.name5/pool/toojays/steam/S\001\006\360\266Apps/common/Undertale/runner", compressed_length=0xffa359bc) at /home/toojays/src/apitrace/thirdparty/snappy/snappy.cc:1214 #3 0xf7cdc6c7 in SnappyOutStream::flushWriteCache (this=0x8c13f08) at /home/toojays/src/apitrace/lib/trace/trace_ostream_snappy.cpp:175 #4 0xf7cdca1f in SnappyOutStream::flush (this=0x8c13f08) at /home/toojays/src/apitrace/lib/trace/trace_ostream_snappy.cpp:163 #5 0xf7cdb561 in trace::LocalWriter::flush (this=0xf7f0b4e0 <trace::localWriter>) at /home/toojays/src/apitrace/lib/trace/trace_writer_local.cpp:243 #6 0xf7cdb59c in trace::exceptionCallback () at /home/toojays/src/apitrace/lib/trace/trace_writer_local.cpp:61 #7 0xf7cdcd13 in os::signalHandler (sig=11, info=0xffa35b0c, context=0xffa35b8c) at /home/toojays/src/apitrace/lib/os/os_posix.cpp:337 #8 <signal handler called> #9 0x0834ed9c in ?? () #10 0x0834fb14 in operator new(unsigned int) () #11 0xefaf10a2 in ir_variable_refcount_visitor::get_variable_entry (this=0xffa360fc, var=0x9106e88) at glsl/ir_variable_refcount.cpp:86 #12 0xefaf1100 in ir_variable_refcount_visitor::visit (this=0xffa360fc, ir=0x9106e88) at glsl/ir_variable_refcount.cpp:97 #13 0xefaed8bb in visit_list_elements (v=0xffa360fc, l=0x910531c, statement_list=true) at glsl/ir_hv_accept.cpp:55 #14 0xefaed6fe in ir_hierarchical_visitor::run (this=0xffa360fc, instructions=0x910531c) at glsl/ir_hierarchical_visitor.cpp:364 #15 0xefb8f586 in do_dead_code (instructions=0x910531c, uniform_locations_assigned=false) at glsl/opt_dead_code.cpp:51 #16 0xefb8f796 in do_dead_code_unlinked (instructions=0x8e845e0) at glsl/opt_dead_code.cpp:190 #17 0xefacece4 in do_common_optimization (ir=0x8e845e0, linked=false, uniform_locations_assigned=false, options=0x8dddde4, native_integers=true) at glsl/glsl_parser_extras.cpp:2213 #18 0xefacf0e5 in opt_shader_and_create_symbol_table (ctx=ctx@entry=0x8ddd448, source_symbols=source_symbols@entry=0x0, shader=shader@entry=0x8e7ba60) at glsl/glsl_parser_extras.cpp:1986 #19 0xefacf8a1 in _mesa_glsl_compile_shader (ctx=0x8ddd448, shader=0x8e7ba60, dump_ast=false, dump_hir=false, force_recompile=true) at glsl/glsl_parser_extras.cpp:2069 #20 0xefb94273 in compile_shaders (ctx=ctx@entry=0x8ddd448, prog=<optimized out>, prog=<optimized out>) at glsl/shader_cache.cpp:73 #21 0xefb97381 in shader_cache_read_program_metadata (ctx=<optimized out>, prog=<optimized out>) at glsl/shader_cache.cpp:1369 #22 0xefb09584 in link_shaders (ctx=0x8ddd448, prog=0x910e9e8) at glsl/linker.cpp:4771 #23 0xefa58325 in _mesa_glsl_link_shader (ctx=0x8ddd448, prog=0x910e9e8) at program/ir_to_mesa.cpp:3081 #24 0xef97798f in link_program (no_error=<optimized out>, shProg=<optimized out>, ctx=<optimized out>) at main/shaderapi.c:1171 #25 link_program_error (ctx=0x8ddd448, shProg=0x910e9e8) at main/shaderapi.c:1249 #26 0xf7cd357a in glLinkProgram (program=12) at /home/toojays/src/apitrace/build/wrappers/glxtrace.cpp:32011 #27 0x08306749 in ?? () #28 0x08306c52 in ?? () #29 0x08306cca in ?? () #30 0x082fff75 in ?? () #31 0x082fd633 in ?? () #32 0x081001fa in ?? () #33 0x081be8c3 in ?? () #34 0x082f7eda in ?? () #35 0x0831d356 in ?? () #36 0xf7267276 in __libc_start_main (main=0x831d180, argc=1, argv=0xffa37a14, init=0x8351350, fini=0x83513c0, rtld_fini=0xf7f26080 <_dl_fini>, stack_end=0xffa37a0c) at ../csu/libc-start.c:291 #37 0x08051525 in ?? () Any ideas? Created attachment 135784 [details] apitrace of Undertale startup taken on box with Iris 540 & Mesa 17.2.4. My attempts to take an apitrace in comment 4 were on the box with the RX 480. Here's an apitrace of Undertale's startup taken on my laptop with the Iris 540. Replaying this trace on the RX 480 does not cause a crash though. Is this any use? Hi! Just wanted to report that I'm also affected by this issue. I own an Undertale DRM-free edition from Humble Store and it crashes on startup. Running `apitrace` also only produces the word "on". However I found that at least once before it crashed the following message was printed to the terminal window: LLVM ERROR: Unknown specifier in datalayout string This error message seems to originate from line 395 of this file in LLVM: http://llvm.org/doxygen/DataLayout_8cpp_source.html I have therefore attached a backtrace of `gdb` with `break llvm::DataLayout::parseSpecifier` just before the crash (there is also a pointer to a "shader" mentioned several times in the trace, but it doesn't appear to be a string and I'm not sure how to extract it unfortunately; if I can do better please just ask). Running the game using `LIBGL_ALWAYS_SOFTWARE=1` works without issues and if I take an `apitrace` of this and replay it there are no crashes, but lots of LLVM diagnostic warnings. I have attached those as well. Also if a developer is willing to have a look at this I'm willing to sponsor a (DRM-free) copy of the game. Created attachment 136894 [details]
Backtrace of Undertale / YoYo Game Linux Runner just before crash
Created attachment 136895 [details]
API trace warnings of game startup
BTW: I should also probably mention my hardware & software: * Radeon R9 M280X (BonaireXT) * Linux 4.14.0-3-amd64 * Debian unstable * Mesa 17.3.3 * DRM 3.19.0 * LLVM 5.0.1 from http://apt.llvm.org/ (also tested with Debian default LLVM) * apitrace 7.1+git20170623.d38a69d6+repack-3 I've got the same issue with undertale running on AMD POLARIS10 and latest Debian Testing + liquorix 4.14 kernel. Tried using both Mesa 17.2 and 17.3 from Debian repos. My Undertale game crashes on start with a segfault and produces this dmesg: [98053.492153] si_shader:2[6898]: segfault at 9 ip 00000000eef3da0c sp 00000000ec1fc8dc error 4 in libLLVM-5.0.so.1[ee938000+37f2000] Also, my Hollow Knight game also produces this line, but seems to work despite of it: [98117.334979] hollow_knight.x[6938]: segfault at 7f5e52ff53b0 ip 00007f5e411d3850 sp 00007ffe6ad4cc28 error 4 in libLLVM-5.0.so.1[7f5e40978000+3245000] -- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/1288. |
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.