Created attachment 117408 [details] backtrace with 10.5.9 I'm getting a reproducible crash in the game Dead Island when loading act 3. Sometimes this is a straight segfault, sometimes the game pops up a warning "An unknown error occured while compiling shaders." I'm attaching a backtrace of the segfault from Mesa 10.5.9, I still get the error with 10.6.3. This might be a shader issue, I get this warning in the game log: /media/Data/perforce/di/releases/di_master_steambox/src/engine/ropengl/ROpenGL_Shader.cpp(471) : Condition: 0 && "Cannot compile GL shader!" LLOG: 0:35(12): warning: extension `GL_ATI_draw_buffers' unsupported in fragment shader 0:209(3): error: syntax error, unexpected '=' ERRR: Assertion failed! /media/Data/perforce/di/releases/di_master_steambox/src/engine/ropengl/ROpenGL_Shader.cpp(678) : Condition: 0 && "Compilation of shader failed!" ERRR: [CPShader] cannot create pixel shader LLOG: binlen: 0; format: 0; program: 48828 LLOG: FAILED TO LOAD BINARY!!! Loading from sources.TOTAL TIME: 247398.718750ms I'm attaching the failing shader. I'm failing this against r600g as that's where the backtrace points, but this is probably a general shader issue. Probably not the same as #85564 as I have played through half the game with just a few hiccups. Side note: this title might be a good candidate for some sort of cache. Loading times are more than a minute and it seems to be spending most of that time compiling.
Created attachment 117409 [details] failing shader
FWIW I can't reproduce the segfault by running through glsl_compiler. I do, however, get a 0:35(1): error: #extension directive is not allowed in the middle of a shader But that should be work-around-able with a driconf setting (or by running the game with allow_glsl_extension_directive_midshader=1 in the environment). When I move the #extension line up, no complaints (other than the unknown GL_ATI_draw_buffers thing), nothing in valgrind either. Perhaps you can capture an apitrace of the issue?
(In reply to Ilia Mirkin from comment #2) > FWIW I can't reproduce the segfault by running through glsl_compiler. I do, > however, get a > > 0:35(1): error: #extension directive is not allowed in the middle of a shader > > But that should be work-around-able with a driconf setting (or by running > the game with allow_glsl_extension_directive_midshader=1 in the > environment). When I move the #extension line up, no complaints (other than > the unknown GL_ATI_draw_buffers thing), nothing in valgrind either. > > Perhaps you can capture an apitrace of the issue? Right, there's already a workaround for this game in drirc. I can't really make out much from the backtrace, but at least for some of the crashes the segfault seems to come from the game, probably because of the failing shader? You didn't get the syntax error? 0:209(3): error: syntax error, unexpected '=' I will try again with git master and try to capture a trace too,
I reproduced the bug with git master e933d545997de9e50a8ed5247722c1c786bf4858. I tried making a trace, but Dead Island segfaults right away if started with apitrace.
With radeonsi and Mesa 11.1 the game seems to work fine. I have no way of trying it on r600g so I will close the bug.
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.