https://bugs.freedesktop.org/show_bug.cgi?id=57984
Priority: medium Bug ID: 57984 Assignee: dri-devel@lists.freedesktop.org Summary: r300g: blend sfactor=GL_DST_COLOR fails with FBOs Severity: normal Classification: Unclassified OS: All Reporter: stefandoesinger@gmx.at Hardware: All Status: NEW Version: git Component: Drivers/Gallium/r300 Product: Mesa
Created attachment 71134 --> https://bugs.freedesktop.org/attachment.cgi?id=71134&action=edit Screenshot showing the problem.
When running 3DMark2001 on Wine with r300g rendering corruptions are visible in the load screen and the high quality version of the "lobby" test. Closer investigation showed that the problem occurs when the game sets the source blend factor to GL_DST_COLOR and the dest blend factor to GL_ZERO. The blend function is ADD, separate alpha blending is not used.
If I manually change these parameters to srcfactor=ZERO and dstfactor=GL_SRC_COLOR, rendering works correctly.
Rendering also works fine when I configure wine not to use FBOs.
I have tried to reproduce this problem with a stand-alone GL application but have not succeeded in that yet.
I have attached a screenshot. The corruption are the random pixels at the bottom and right. The horizontal lines are artifacts caused by the gnome-screenshot tool.
3DMark2001 can be downloaded from http://download.freenet.de/3DMark-2001-SE-Windows--4183.xhtml and many other places.
https://bugs.freedesktop.org/show_bug.cgi?id=57984
--- Comment #1 from Stefan Dösinger stefandoesinger@gmx.at --- I dug through the optimizations in r300_create_blend_state, and the problem is the "Disable reading if SRC_ALPHA == 0" optimization. It is not correct if the source factor is DEST_COLOR. I'm checking if any other source factors have to be excluded.
https://bugs.freedesktop.org/show_bug.cgi?id=57984
--- Comment #2 from Marek Olšák maraeo@gmail.com --- (In reply to comment #1)
I dug through the optimizations in r300_create_blend_state, and the problem is the "Disable reading if SRC_ALPHA == 0" optimization. It is not correct if the source factor is DEST_COLOR. I'm checking if any other source factors have to be excluded.
Yes, you're right. The optimization should check the source RGB and A factors too.
https://bugs.freedesktop.org/show_bug.cgi?id=57984
Andreas Boll andreas.boll.dev@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #71134|text/plain |image/png mime type| |
https://bugs.freedesktop.org/show_bug.cgi?id=57984
Alex Deucher agd5f@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED
dri-devel@lists.freedesktop.org