Summary: | RS690: 3D artifacts when playing SuperTuxKart | ||
---|---|---|---|
Product: | Mesa | Reporter: | Björn Beutel <bjoern-beutel> |
Component: | Drivers/Gallium/r300 | Assignee: | mesa-dev |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | medium | CC: | maraeo |
Version: | git | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
Example of corruption in SuperTuxKart
glxinfo output dmesg output Patch that sets the needed CS buffer size in "r300_render_draw_elements" possible fix |
Created attachment 81978 [details]
glxinfo output
Created attachment 81979 [details]
dmesg output
Is this a regression? If so, can you bisect? Created attachment 81980 [details] [review] Patch that sets the needed CS buffer size in "r300_render_draw_elements" The attached patch solves the problem for me in Mesa 9.1 and Mesa Git. For me, it seems as if the buffer is not always properly flushed in between when "r300_render_draw_elements" has to divide it into two or more runs. @Alex Deucher: AFAIK, that bug has been in r300g from its very beginnings (in contrast to r300c). Marek, any idea why r300_render_draw_elements() calls r300_prepare_for_rendering() with 256 dwords? The function splits the drawing into several packets if there are too many indices. 256 dwords is a reasonable minimum for the first packet. I think the problem arises when the splitting takes place in the middle of a primitive, breaking all the primitives that follow. I'll send a patch. Created attachment 82446 [details] [review] possible fix Please try this patch. Marek, your patch solves the problem for me. Thanks! I committed the patch as 22427640b248aeb9875b40b216d27bedb13a1db8. Closing. |
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 81975 [details] Example of corruption in SuperTuxKart Using the 300g driver from Mesa 9.1, the SuperTuxKart game sometimes shows artifacts, as show in the attached example.