|Summary:||Stunt Rally GLSL compiler assertion failure|
|Product:||Mesa||Reporter:||Michel Dänzer <michel>|
|Component:||glsl-compiler||Assignee:||Tapani Pälli <lemody>|
|Status:||RESOLVED FIXED||QA Contact:||Intel 3D Bugs Mailing List <intel-3d-bugs>|
|i915 platform:||i915 features:|
Output of MESA_GLSL=dump stuntrally
workaround for the problem
hopeful fix to the issue
Description Michel Dänzer 2014-08-13 00:52:42 UTC
Created attachment 104538 [details] Output of MESA_GLSL=dump stuntrally Stunt Rally fails to start up on the radeonsi driver with this assertion failure: stuntrally: ../../../src/glsl/loop_analysis.h:222: bool loop_variable::is_loop_constant() const: Assertion `!this->var->data.read_only || (this->var->data.read_only && is_const)' failed. I'm attaching the MESA_GLSL=dump output. This doesn't seem to happen with Mesa 10.2.4.
Comment 1 Tapani Pälli 2014-08-18 08:12:14 UTC
I took a brief look. Assertion happens because bool 'rhs_clean' is not true for a particular variable but num_assignments is 1, it looks like 'rhs_clean' cannot be true because it would only get set after the call to is_loop_constant() (variable causing the trouble is named "C" in the dump). If I skip 'rhs_clean' check game gets started (it has other issues though). Will try to understand a bit more if this is problem with loop analysis or not.
Comment 2 Tapani Pälli 2014-08-18 08:28:16 UTC
Created attachment 104804 [details] [review] workaround for the problem Attached patch loosens the requirements for determining if variable is a constant in 'is_loop_constant'. This hopefully explains better what I meant in my previous comment.
Comment 3 Tapani Pälli 2014-09-09 10:34:45 UTC
Created attachment 105964 [details] [review] hopeful fix to the issue Attached patch fixes the issue for me.
Comment 4 Tapani Pälli 2014-09-09 11:17:21 UTC
but yep, the fix might be actually a workaround to a bug happening elsewhere (as there seems to be a assignment to read only variable), I will continue hunting this
Comment 5 Tapani Pälli 2014-09-09 11:48:53 UTC
forget about comment #4 though, even read only variables have a single assignment, I think the fix is correct after all.
Comment 6 Michel Dänzer 2014-09-10 02:38:13 UTC
(In reply to comment #3) > Attached patch fixes the issue for me. For me as well, thanks. Tested-by: Michel Dänzer <firstname.lastname@example.org>
Comment 7 Tapani Pälli 2014-09-11 07:12:36 UTC
fix pushed to master