https://bugs.freedesktop.org/show_bug.cgi?id=34843
Summary: r600g: Evergreen piglit regression Product: Mesa Version: git Platform: Other OS/Version: All Status: NEW Severity: normal Priority: medium Component: Drivers/Gallium/r600 AssignedTo: dri-devel@lists.freedesktop.org ReportedBy: monraaf@gmail.com CC: deathsimple@vodafone.de
Hi, the commit:
commit 96bbc627f369c0100b950f81531b1fe9ef586c34 Author: Christian König deathsimple@vodafone.de Date: Mon Feb 28 02:00:01 2011 +0100
r600g: implement instanced drawing support
breaks the following two piglit tests on Evergreen:
shaders/glsl-routing texturing/texrect-many
btw. The draw-instanced piglit tests also fail on Evergreen with
EE r600_asm.c:140 r600_bc_get_num_operands - Need instruction operand number for 0x9b.
https://bugs.freedesktop.org/show_bug.cgi?id=34843
--- Comment #1 from Alex Deucher agd5f@yahoo.com 2011-02-28 14:23:25 PST --- Can you test with: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5f44fab5a6ba99c287da8d01fa5...
https://bugs.freedesktop.org/show_bug.cgi?id=34843
--- Comment #2 from Rafael Monica monraaf@gmail.com 2011-02-28 16:20:33 PST --- With that commit general/draw-instanced now passes clean on Evergreen.
general/draw-instanced-divisor fails with some other errors:
draw-instanced: instance 0 failed to draw correctly draw-instanced: color instance divisor = 2
And shaders/glsl-routing and texturing/texrect-many are still regressed.
https://bugs.freedesktop.org/show_bug.cgi?id=34843
--- Comment #3 from Christian König deathsimple@vodafone.de 2011-03-01 15:03:11 PST --- I don't have an evergreen card at hand to reproduce the problem.
So please run the following command:
R600_DUMP_SHADERS=1 shaders/glsl-routing 2> shaders.out
and attach the generated shader output.
https://bugs.freedesktop.org/show_bug.cgi?id=34843
--- Comment #4 from Rafael Monica monraaf@gmail.com 2011-03-01 17:25:33 PST --- Created an attachment (id=43993) --> (https://bugs.freedesktop.org/attachment.cgi?id=43993) shader output from glsl-routing piglit test
https://bugs.freedesktop.org/show_bug.cgi?id=34843
--- Comment #5 from Rafael Monica monraaf@gmail.com 2011-03-01 17:26:51 PST --- Created an attachment (id=43994) --> (https://bugs.freedesktop.org/attachment.cgi?id=43994) shader output from texrect-many piglit test
https://bugs.freedesktop.org/show_bug.cgi?id=34843
--- Comment #6 from Christian König deathsimple@vodafone.de 2011-03-02 13:59:36 PST --- Created an attachment (id=44035) View: https://bugs.freedesktop.org/attachment.cgi?id=44035 Review: https://bugs.freedesktop.org/review?bug=34843&attachment=44035
Patch to dump the bytes of the fetch shader
Ok please checkout the commit bce4f9ac395986ee0acae2702ed73448333d81b8 (the one before the offending commit) and apply the attached patch. Then rerun the tests with R600_DUMP_SHADERS=1
Attach the newly generated shader output.
By comparing both we should be able to figure out what's going wrong here.
Christian.
https://bugs.freedesktop.org/show_bug.cgi?id=34843
--- Comment #7 from Rafael Monica monraaf@gmail.com 2011-03-02 15:05:00 PST --- Created an attachment (id=44037) --> (https://bugs.freedesktop.org/attachment.cgi?id=44037) shader output from glsl-routing piglit test (before offending commit)
https://bugs.freedesktop.org/show_bug.cgi?id=34843
--- Comment #8 from Rafael Monica monraaf@gmail.com 2011-03-02 15:05:49 PST --- Created an attachment (id=44038) --> (https://bugs.freedesktop.org/attachment.cgi?id=44038) shader output from texrect-many piglit test (before offending commit)
https://bugs.freedesktop.org/show_bug.cgi?id=34843
Christian König deathsimple@vodafone.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED
--- Comment #9 from Christian König deathsimple@vodafone.de 2011-03-02 15:35:20 PST --- Ok, the mega_fetch_count was wrong, if've fixed this and pushed it to the mainline. Please fetch and try again.
The only problem is that i have no idea why this should affect only evergreen and not my RV710 for example.
https://bugs.freedesktop.org/show_bug.cgi?id=34843
--- Comment #10 from Rafael Monica monraaf@gmail.com 2011-03-02 16:31:23 PST --- Hi, still not fixed with that commit. I'll attach the new shader output
https://bugs.freedesktop.org/show_bug.cgi?id=34843
--- Comment #11 from Rafael Monica monraaf@gmail.com 2011-03-02 16:33:12 PST --- Created an attachment (id=44041) --> (https://bugs.freedesktop.org/attachment.cgi?id=44041) shader output from glsl-routing (latest)
https://bugs.freedesktop.org/show_bug.cgi?id=34843
--- Comment #12 from Rafael Monica monraaf@gmail.com 2011-03-02 16:33:50 PST --- Created an attachment (id=44042) --> (https://bugs.freedesktop.org/attachment.cgi?id=44042) shader output from texrect-many (latest)
https://bugs.freedesktop.org/show_bug.cgi?id=34843
--- Comment #13 from Christian König deathsimple@vodafone.de 2011-03-04 07:03:20 PST --- Created an attachment (id=44128) View: https://bugs.freedesktop.org/attachment.cgi?id=44128 Review: https://bugs.freedesktop.org/review?bug=34843&attachment=44128
Possible fix
Beside the different formatting the shaders now look completely identical.
So it must be something else, please try the attached patch, if this still doesn't work there must be some other patch that interfere with this problem.
https://bugs.freedesktop.org/show_bug.cgi?id=34843
Christian König deathsimple@vodafone.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #44128|0 |1 is obsolete| |
--- Comment #14 from Christian König deathsimple@vodafone.de 2011-03-04 07:07:03 PST --- Created an attachment (id=44129) View: https://bugs.freedesktop.org/attachment.cgi?id=44129 Review: https://bugs.freedesktop.org/review?bug=34843&attachment=44129
Possible fix
Ups, wrong patch, please use this one instead.
https://bugs.freedesktop.org/show_bug.cgi?id=34843
Rafael Monica monraaf@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution| |FIXED
--- Comment #15 from Rafael Monica monraaf@gmail.com 2011-03-04 19:07:06 PST --- Hi, the patch has no effect here but with latest git master the regression is fixed and draw-instanced-divisor also passes now. I guess it was your commit r600g: fix fragment shader size calculation that fixed it.
Thanks.
https://bugs.freedesktop.org/show_bug.cgi?id=34843
--- Comment #16 from Christian König deathsimple@vodafone.de 2011-03-05 05:11:02 PST --- Yes, I finally figured out what was going wrong here. The alignment of the vertex fetch instructions weren't included in the shader size calculation.
Thanks for the help, Christian.
https://bugs.freedesktop.org/show_bug.cgi?id=34843
--- Comment #17 from Rafael Monica monraaf@gmail.com 2011-03-06 13:33:58 PST --- Created an attachment (id=44182) View: https://bugs.freedesktop.org/attachment.cgi?id=44182 Review: https://bugs.freedesktop.org/review?bug=34843&attachment=44182
Use long long literal in calculation
Didn't feel like opening a new bug fur this. But your recent commit, r600g: simplify instance addr calculation, breaks the draw-instanced-divisor piglit test here. I also noticed a warning about overflow during compilation:
r600_asm.c:2105: warning: left shift count >= width of type
Using a long long integer fixes the warning and the piglit test. Patch attached.
https://bugs.freedesktop.org/show_bug.cgi?id=34843
--- Comment #18 from Christian König deathsimple@vodafone.de 2011-03-06 14:40:06 PST --- Thanks again, patch pushed.
https://bugs.freedesktop.org/show_bug.cgi?id=34843
Christian König deathsimple@vodafone.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
dri-devel@lists.freedesktop.org