https://bugs.freedesktop.org/show_bug.cgi?id=28860
Summary: [r300g] Yo Frankie crash: assertion failure / Too many hardware temporaries used Product: Mesa Version: git Platform: Other URL: http://www.yofrankie.org/ OS/Version: All Status: NEW Severity: normal Priority: medium Component: Drivers/DRI/r300 AssignedTo: dri-devel@lists.freedesktop.org ReportedBy: sa@whiz.se
The game "Yo Frankie" crashes if run with shaders turned on:
r300 FP: Compiler Error: Too many hardware temporaries usedUsing a dummy shader instead. If there's an 'unknown opcode' message, please file a bug report and attach this log. [...] yofrankie-linux-i386.bin: state_tracker/st_mesa_to_tgsi.c:181: dst_register: Assertion `t->outputMapping[index] < (sizeof(t->outputs)/sizeof(*(t->outputs)))' failed.
I'm attaching a log captured with RADEON_DEBUG="fp".
System environment: -- system architecture: 32-bit -- Linux distribution: Debian unstable -- GPU: RV570 -- Model: Asus EAX1950Pro 256MB -- Display connector: DVI
-- xf86-video-ati: 801e83227a59a29eea425ea612083bbf2b536c30 -- xserver: 1.8.1.901 -- mesa: 75acb896c6da758d03e86f8725d6ca0cb2c6ad82 -- drm: 6ea2bda5f5ec8f27359760ce580fdad3df0464df -- kernel: 2.6.35-rc3
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #1 from Sven Arvidsson sa@whiz.se 2010-06-30 13:03:51 PDT --- Log was too large to attach, so here it is instead: http://whiz.se/temp/yofrankie-fp.log.gz
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #2 from Sven Arvidsson sa@whiz.se 2010-06-30 13:07:55 PDT --- dmesg output:
[30481.511833] [drm:r100_cs_track_check] *ERROR* [drm] Buffer too small for color buffer 0 (need 1310720 have 1228800) ! [30481.511837] [drm:r100_cs_track_check] *ERROR* [drm] color buffer 0 (640 4 0 512) [30481.511839] [drm:radeon_cs_ioctl] *ERROR* Invalid command stream ! [30481.858013] [drm:r100_cs_track_check] *ERROR* [drm] Buffer too small for color buffer 0 (need 1310720 have 1228800) ! [30481.858017] [drm:r100_cs_track_check] *ERROR* [drm] color buffer 0 (640 4 0 512) [30481.858019] [drm:radeon_cs_ioctl] *ERROR* Invalid command stream !
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #3 from Pavel Ondračka drakkk@centrum.cz 2010-07-02 13:40:49 PDT --- (In reply to comment #0)
yofrankie-linux-i386.bin: state_tracker/st_mesa_to_tgsi.c:181: dst_register: Assertion `t->outputMapping[index] < (sizeof(t->outputs)/sizeof(*(t->outputs)))' failed.
This looks similar to bug 28169, should be fixed with commit 6e83420ee0ccb2228fab0f86a6e8bf8a6aefe57a
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #4 from Sven Arvidsson sa@whiz.se 2010-07-02 15:22:54 PDT --- Created an attachment (id=36701) --> (https://bugs.freedesktop.org/attachment.cgi?id=36701) Backtrace of crash
(In reply to comment #3)
This looks similar to bug 28169, should be fixed with commit 6e83420ee0ccb2228fab0f86a6e8bf8a6aefe57a
Still crashes with the same assertion failure. I'm attaching a backtrace.
https://bugs.freedesktop.org/show_bug.cgi?id=28860
Sven Arvidsson sa@whiz.se changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #36701|0 |1 is obsolete| |
--- Comment #5 from Sven Arvidsson sa@whiz.se 2010-07-08 14:50:51 PDT --- Created an attachment (id=36892) --> (https://bugs.freedesktop.org/attachment.cgi?id=36892) Yo Frankie screenshot
Now using git master 61a26cdfdc9c75a83c0d362c973d5436fe077be4 it no longer crashes, but the game does look kinda trippy ;-)
https://bugs.freedesktop.org/show_bug.cgi?id=28860
Sven Arvidsson sa@whiz.se changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|[r300g] Yo Frankie crash: |[r300g] Yo Frankie - |assertion failure / Too |shaders not working: Too |many hardware temporaries |many instructions |used |
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #6 from Tom Stellard tstellar@gmail.com 2010-07-08 23:24:11 PDT --- Can you post the output with RADEON_DEBUG=fp from the most recent git version.
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #7 from Sven Arvidsson sa@whiz.se 2010-07-09 06:46:32 PDT --- (In reply to comment #6)
Can you post the output with RADEON_DEBUG=fp from the most recent git version.
Sure, here's a new log from git master 8a8e311d8c3c60982d101826a4aa013672730e6c http://whiz.se/temp/yofrankie-fp.log.gz
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #8 from Tom Stellard tstellar@gmail.com 2010-07-10 13:11:05 PDT --- Created an attachment (id=36940) --> (https://bugs.freedesktop.org/attachment.cgi?id=36940) Failing shaders
I pulled 1 of the 3 failing shaders from the error log. If you have some familiarity with assembly code, you can look through the log and try to find optimization opportunities that would reduce the number of instructions we need to emit. This would be very helpful. I would recommend looking at the code after the dataflow passes, because at this point most of our optimizations have already been done. If you are unsure of what the instructions do, their definitions are in this file: src/mesa/drivers/dri/r300/compiler/radeon_opcodes.h
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #9 from Sven Arvidsson sa@whiz.se 2010-07-11 10:05:51 PDT --- (In reply to comment #8)
I pulled 1 of the 3 failing shaders from the error log. If you have some familiarity with assembly code, you can look through the log and try to find optimization opportunities that would reduce the number of instructions we need to emit. This would be very helpful. I would recommend looking at the code after the dataflow passes, because at this point most of our optimizations have already been done. If you are unsure of what the instructions do, their definitions are in this file: src/mesa/drivers/dri/r300/compiler/radeon_opcodes.h
Thanks for having a look at the bug! Unfortunately I don't think I can be of much help, this sounds like something well above my meager skills.
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #10 from Tom Stellard tstellar@gmail.com 2010-07-13 23:10:59 PDT --- Created an attachment (id=37010) View: https://bugs.freedesktop.org/attachment.cgi?id=37010 Review: https://bugs.freedesktop.org/review?bug=28860&attachment=37010
Hacked together presubtract support
Can you try again with this patch applied to master and post the output with RADEON_DEBUG=fp. Also, if you notice anything new that this patch breaks, let me know.
https://bugs.freedesktop.org/show_bug.cgi?id=28860
Sven Arvidsson sa@whiz.se changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #36892|0 |1 is obsolete| |
--- Comment #11 from Sven Arvidsson sa@whiz.se 2010-07-14 12:37:34 PDT --- Created an attachment (id=37050) --> (https://bugs.freedesktop.org/attachment.cgi?id=37050) Yo Frankie screenshot
Awesome, thanks for taking an interest!
It's still not working correctly, I'm attaching a new screenshot. I'm also getting these errors now:
radeon: The kernel rejected CS, see dmesg for more information.
Jul 14 21:28:43 zoe kernel: [21717.383601] [drm:r100_cs_track_check] *ERROR* [drm] Buffer too small for color buffer 0 (need 1310720 have 1228800) ! Jul 14 21:28:43 zoe kernel: [21717.383605] [drm:r100_cs_track_check] *ERROR* [drm] color buffer 0 (640 4 0 512) Jul 14 21:28:43 zoe kernel: [21717.383607] [drm:radeon_cs_ioctl] *ERROR* Invalid command stream !
The log file at http://whiz.se/temp/yofrankie-fp.log.gz has been updated.
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #12 from Marek Olšák maraeo@gmail.com 2010-07-14 22:46:06 PDT --- If you revert 8c836f7f740c6f74511c727c7bed0680ddba9974, do those messages go away?
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #13 from Sven Arvidsson sa@whiz.se 2010-07-15 04:58:11 PDT --- (In reply to comment #12)
If you revert 8c836f7f740c6f74511c727c7bed0680ddba9974, do those messages go away?
No, no difference.
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #14 from Tom Stellard tstellar@gmail.com 2010-08-19 07:25:01 PDT --- Can you try again with the latest git version and post the output of RADEON_DEBUG=fp.
https://bugs.freedesktop.org/show_bug.cgi?id=28860
Tom Stellard tstellar@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |rubenf3000@gmail.com
--- Comment #15 from Tom Stellard tstellar@gmail.com 2010-08-20 06:55:03 PDT --- *** Bug 29683 has been marked as a duplicate of this bug. ***
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #16 from Rubén Fernández rubenf3000@gmail.com 2010-08-20 22:48:14 PDT --- Created an attachment (id=38035) --> (https://bugs.freedesktop.org/attachment.cgi?id=38035) Log produced with RADEON_DEBUG=fp
There you go. Created with a RV505 (Radeon X1550) with the latest git (as of commit 0eac4b8740d4434037677166f2339e894d4ebac4 "evergreen : initial support driver code.")
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #17 from Rubén Fernández rubenf3000@gmail.com 2010-09-04 03:44:48 PDT --- The situation with yo frankie has improved somewhat with the most recent builds; my guess is that commit a35faa6a41eb8a240f8e6086853653e9a21e75bd helped, since it reduced considerably the number of instructions generated by the IR generator
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #18 from Rubén Fernández rubenf3000@gmail.com 2010-09-04 03:45:57 PDT --- Created an attachment (id=38425) --> (https://bugs.freedesktop.org/attachment.cgi?id=38425) Improved screenshot
This screenshot shows the status as of september 4
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #19 from Rubén Fernández rubenf3000@gmail.com 2010-09-04 03:47:40 PDT --- Created an attachment (id=38426) --> (https://bugs.freedesktop.org/attachment.cgi?id=38426) Improved log with RADEON_DEBUG=fp
This log was too long to attach; I'll upload it in two parts; just join them with "cat" in order to obtain a bzip2-compressed text file
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #20 from Rubén Fernández rubenf3000@gmail.com 2010-09-04 03:48:45 PDT --- Created an attachment (id=38427) --> (https://bugs.freedesktop.org/attachment.cgi?id=38427) Improved log with RADEON_DEBUG=fp, part 2
"cat" it with part 1 to obtain yofrankie-debug-fp-improved.txt.bz2
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #21 from Tom Stellard tstellar@gmail.com 2010-09-07 22:23:35 PDT --- Can you try again with the presub-rebase-v2 branch from git://anongit.freedesktop.org/~tstellar/mesa and post the output of RADEON_DEBUG=fp and a screenshot.
To test this branch from your mesa git directory do:
git fetch git://anongit.freedesktop.org/~tstellar/mesa presub-rebase-v2:presub-rebase-v2
git checkout presub-rebase-v2
Then configure and build like normal.
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #22 from Sven Arvidsson sa@whiz.se 2010-09-08 06:58:31 PDT --- Created an attachment (id=38549) --> (https://bugs.freedesktop.org/attachment.cgi?id=38549) Screenshot with presub
(In reply to comment #21)
Can you try again with the presub-rebase-v2 branch from git://anongit.freedesktop.org/~tstellar/mesa and post the output of RADEON_DEBUG=fp and a screenshot.
I'm attaching a new screenshot, log is too big to attach so it's available here: http://www.whiz.se/temp/log.gz
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #23 from Rubén Fernández rubenf3000@gmail.com 2010-09-08 15:56:04 PDT --- Created an attachment (id=38568) --> (https://bugs.freedesktop.org/attachment.cgi?id=38568) Screenshot with the "presub" branch
Your branch seems to improve some things (the tree trunk now looks OK) and break others (the water and the main character look wrong); in any case, I'll keep your branch on speed dial if you need me to test anything.
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #24 from Rubén Fernández rubenf3000@gmail.com 2010-09-08 15:57:15 PDT --- Created an attachment (id=38569) --> (https://bugs.freedesktop.org/attachment.cgi?id=38569) Log generated with RADEON_DEBUG=fp, part 1
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #25 from Rubén Fernández rubenf3000@gmail.com 2010-09-08 15:58:39 PDT --- Created an attachment (id=38570) --> (https://bugs.freedesktop.org/attachment.cgi?id=38570) 38569: Log generated with "presub" branch and RADEON_DEBUG=fp, part 2
join with part 1 to get yofrankie-presub.txt.bz2
https://bugs.freedesktop.org/show_bug.cgi?id=28860
Matt Turner mattst88@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|Drivers/DRI/r300 |Drivers/Gallium/r300
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #26 from Marek Olšák maraeo@gmail.com 2010-11-13 12:36:27 PST --- Is this still an issue with current mesa git?
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #27 from Sven Arvidsson sa@whiz.se 2010-11-15 06:02:45 PST --- (In reply to comment #26)
Is this still an issue with current mesa git?
The game segfaults with current git. I'll try to bisect and file a new bug for this regression.
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #28 from Rubén Fernández rubenf3000@gmail.com 2010-11-15 18:23:31 PST --- (In reply to comment #26)
Is this still an issue with current mesa git?
As of commit c1928c7f1065876345d00477eac5558f4cf85158, I still get incorrect rendering; I'll attach a screenshot
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #29 from Rubén Fernández rubenf3000@gmail.com 2010-11-15 18:25:27 PST --- Created an attachment (id=40301) --> (https://bugs.freedesktop.org/attachment.cgi?id=40301) Status as of commit c1928c7f1065876345d00477eac5558f4cf85158
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #30 from Tom Stellard tstellar@gmail.com 2010-11-21 21:50:15 PST --- Can you try this again with the latest git master?
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #31 from Rubén Fernández rubenf3000@gmail.com 2010-11-22 11:47:25 PST --- (In reply to comment #30)
Can you try this again with the latest git master?
A dramatic improvement! Now it is almost completely correct; the only misrenderings I can see (I'll attach a screenshot) are:
1) you can see the triangle edges in the main character, and 2) his shadow is completely black (should show the ground texture, only darker).
And I still get the "too many instructions" errors:
r300 FP: Compiler Error: emit_tex: Too many instructionsUsing a dummy shader instead. r300 FP: Compiler Error: r500_fragprog_emit.c::emit_paired(): emit_alu: Too many instructions Using a dummy shader instead. r300 FP: Compiler Error: r500_fragprog_emit.c::emit_paired(): emit_alu: Too many instructions Using a dummy shader instead.
Don't know if they have to do with this remaining misrenderings, tho.
Plus, it takes two full minutes to compile the shaders before starting the game; but that's an optimization problem, not of functionality.
But, all in all, the game works almost perfectly now. I think we are almost ready to close this bug.
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #32 from Rubén Fernández rubenf3000@gmail.com 2010-11-22 11:49:15 PST --- Created an attachment (id=40483) --> (https://bugs.freedesktop.org/attachment.cgi?id=40483) With Tom Stellard's most recent patches
Compare with https://bugs.freedesktop.org/attachment.cgi?id=38000, the correct rendering
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #33 from Marek Olšák maraeo@gmail.com 2010-11-22 13:14:39 PST --- 1) I guess the reason the shadow is black is we don't implement GL_ARB_shadow_ambient. With the driver which can render the shadow correctly, try to set this environment variable:
MESA_EXTENSION_OVERRIDE=-GL_ARB_shadow_ambient
to temporarily disable GL_ARB_shadow_ambient, and see if the shadow becomes black.
2) I know of the wireframe issue, it's been bugging me since ever. It can be seen e.g. in ETQW on the water and in Nexuiz with GLSL enabled. I think it only shows up on R500.
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #34 from Rubén Fernández rubenf3000@gmail.com 2010-11-22 17:44:34 PST --- (In reply to comment #33)
- I guess the reason the shadow is black is we don't implement
GL_ARB_shadow_ambient. With the driver which can render the shadow correctly, try to set this environment variable:
MESA_EXTENSION_OVERRIDE=-GL_ARB_shadow_ambient
to temporarily disable GL_ARB_shadow_ambient, and see if the shadow becomes black.
The driver that renders correctly is the proprietary one, which doesn't use Mesa variables.
- I know of the wireframe issue, it's been bugging me since ever. It can be
seen e.g. in ETQW on the water and in Nexuiz with GLSL enabled. I think it only shows up on R500.
I can also see it in the water in sauerbraten (although it is almost imperceptible there); You can count on me to debug/test that.
https://bugs.freedesktop.org/show_bug.cgi?id=28860
--- Comment #35 from Sven Arvidsson sa@whiz.se 2010-11-24 15:09:34 PST --- (In reply to comment #27)
The game segfaults with current git. I'll try to bisect and file a new bug for this regression.
Bug 31907 has been filed for this, in case anyone else has the same problem.
https://bugs.freedesktop.org/show_bug.cgi?id=28860
Marek Olšák maraeo@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #36 from Marek Olšák maraeo@gmail.com 2010-11-24 16:03:21 PST --- (In reply to comment #34)
(In reply to comment #33)
- I guess the reason the shadow is black is we don't implement
GL_ARB_shadow_ambient. With the driver which can render the shadow correctly, try to set this environment variable:
MESA_EXTENSION_OVERRIDE=-GL_ARB_shadow_ambient
to temporarily disable GL_ARB_shadow_ambient, and see if the shadow becomes black.
The driver that renders correctly is the proprietary one, which doesn't use Mesa variables.
OK then, let's assume it's because GL_ARB_shadow_ambient is missing, therefore it's not a bug, it's a feature.
- I know of the wireframe issue, it's been bugging me since ever. It can be
seen e.g. in ETQW on the water and in Nexuiz with GLSL enabled. I think it only shows up on R500.
I can also see it in the water in sauerbraten (although it is almost imperceptible there); You can count on me to debug/test that.
I'd like to have a separate bug for this issue, though it's not like I know how to fix it.
Since there is no other reported misrendering related to this bug, I am closing it.
dri-devel@lists.freedesktop.org