composite/xrender bug with Xft and FLTK
Submitted by Pierre Ossman
Assigned to Xorg Project Team
Description
I'm having a very weird bug where FLTK dialogs get corrupted by "old" data in the window at certain times. I've attached screen shots and a movie of the effect.
The bug seems to only appear with compositing, and possibly only with 3D compositing (I've only seen it with gnome shell and compiz).
I can reproduce it with the radeon driver and the nouveau driver. I'm unable to reproduce it using software only servers (Xephyr and Xvnc). I've not tested any other graphics cards.
Through a whole bunch of tedious work, I've determined that the bug appears when Xft is trying to render a string, with an active clip region, and the string is completely clipped. At this point the rectangle extents of the string will instead be corrupted.
It does not happen for every of these cases though, and I've yet to figure out what is the triggering factor for these specific widgets. One idea is that it has something to do with how the clip region is relative to the clipped string.
Testing the clipping manually and avoiding the call to XftDrawString32() when it is fully clipped is sufficient to make the bug go away.
I've not been able to construct a simple test case so far...
Ideas? :/
~ [ossman@ossman]$ rpm -q xorg-x11-server-Xorg xorg-x11-drv-ati mesa-libGL libXft libXrender xorg-x11-server-Xorg-1.11.3-1.fc16.x86_64 xorg-x11-drv-ati-6.14.3-3.20111125git534fb6e41.fc16.x86_64 mesa-lib#7 (closed).11.2-1.fc16.x86_64 mesa-lib#7 (closed).11.2-1.fc16.i686 libXft-2.2.0-2.fc15.x86_64 libXft-2.2.0-2.fc15.i686 libXrender-0.9.6-2.fc15.x86_64 libXrender-0.9.6-2.fc15.i686
Version: git