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> |
Severity: | normal | ||
Priority: | medium | CC: | lemody |
Version: | git | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
Output of MESA_GLSL=dump stuntrally
workaround for the problem hopeful fix to the issue |
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. 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. Created attachment 105964 [details] [review] hopeful fix to the issue Attached patch fixes the issue for me. 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 forget about comment #4 though, even read only variables have a single assignment, I think the fix is correct after all. (In reply to comment #3) > Attached patch fixes the issue for me. For me as well, thanks. Tested-by: Michel Dänzer <michel.daenzer@amd.com> fix pushed to master |
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.
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.