Created attachment 38392 [details]
gcc testcase.c -lX11, run, watch testcase_out.ppm
I noticed these symptoms:
- corruption in screenshots taken with ImageMagick (import)
- corruption in kde3 unless RenderAccel Off
I've boiled ImageMagick down to a simple testcase (attached). A ErrorF() in the radeon driver told me that the corruption only happens in cases where EVERGREENDownloadFromScreen() is called - it's called in kde3 with RenderAccel On, it's never called with RenderAccel off.
I cannot test against a non-evergreen EXA implementation, but since there are no related bug reports for older cards, it's probably evergreen only. Can confirm that the testcase works with fglrx and nvidia.
using latest git from evergreen_accel branch, but the bug is present since the initial code-drop
Radeon HD 5770
Created attachment 38393 [details]
corrupted example-screenshot of two xterm on black background
Can you try with the latest ddx code from git and this drm patch:
I applied the patch and updated xf86-radeon and mesa to latest git. No changes.
upgraded to linux 2.6.36_rc3 (with or without the drm patch), no changes.
Upgraded libdrm from 2.4.21-r1 to git, no change.
Upgraded to xorg-server-1.8.2 (from 1.7.7), no change.
I wanted to try enabling ColorTiling, but even with Option "ColorTiling" "on", Xorg.0.log says it's off.
anything else I can try?
Created attachment 38403 [details]
Yet another testcase
This is just another testcase run, taken
on an HD5850 using the latest git stuff
I also tried the attached patch above on
kernel 22.214.171.124 with no success.
I have lots of desktop corruptions + corrupted
mouse cursor as well, but i'll better create a
new bug report for that, right?
The patch fixes my lockups but corruption is still there. The corruption does indeed appear to originate in EVERGREENDownloadFromScreen. Adding
Option "EXANoDownloadFromScreen" "on"
to xorg.conf makes the corruption disappear at the expense of some operations being slow.
Comment #5 (++)
PS: Mouse cursor corruption is gone when setting
Option "Renderaccel" in xorg.conf to "off". Is this worth
a bug report or is it already known?
using avivotool, available here:
can you post the output (as root) of:
./avivotool regmatch 0x98fc
Then try the following and see if any of these settings fix the cursor corruption:
./avivotool regset 0x98fc 0x00006420
./avivotool regset 0x98fc 0x75316420
Original 0x98fc setting
[output]avivotool regmatch 0x98fc
0x98fc 0x76543210 (1985229328)
Yay, and i tried your settings. They both seem
to fix the cursor corruption for me ;)
Also fixes it for me.
Original reg settings:
0x98fc 0x00003210 (12816)
> ./avivotool regmatch 0x98fc
0x98fc 0x00003210 (12816)
(both after a reboot from fglrx and a clean boot, both before and after starting X)
confirmed that testcase is still not working.
> Then try the following and see if any of these settings fix the cursor
> ./avivotool regset 0x98fc 0x00006420
> ./avivotool regset 0x98fc 0x75316420
No more visible artefacts in kde3 in 2d apps.
Created attachment 38590 [details] [review]
This drm kernel patch should fix the issues.
> This drm kernel patch should fix the issues.
indeed it does, thanks a lot.
(In reply to comment #12)
> > This drm kernel patch should fix the issues.
> indeed it does, thanks a lot.
Works for me, too ;)
Hi, I've applied the patch submitted above, at it solved a lot of corruption problems I had in KDE4 (before almost all the lower bar, the plasmoids and the mouse cursor where corrupted), the problem is that remains a corruption of the menu icons.
(In reply to comment #14)
> Hi, I've applied the patch submitted above, at it solved a lot of corruption
> problems I had in KDE4 (before almost all the lower bar, the plasmoids and the
> mouse cursor where corrupted), the problem is that remains a corruption of the
> menu icons.
Please try to change your kde icon theme (and afterwards
change it back to your favorite icon style) in systemsettings.
This made those persistent corruption on my icons&desktop
theme go away (i think this must a rendering cache problem
or something like that).
fixed in kernel.