[Openchrome-devel] accel with VX855 causes screen flicker

Daniel Drake dsd
Wed Jun 24 04:05:06 PDT 2009


Hi,

Enabling XAA or EXA with VX855 causes the screen to flicker when the
screen contents are changing.

It's hard to explain but one really easy way to reproduce it is to open
the frame in the Sugar UI. The frame runs around the edge of the screen,
and when you open it (by pressing a key on the keyboard) then it
smoothly slides out of the 4 edges of the screen.
During this sliding, the screen sort of "flickers" at high velocity.
It's difficult to explain, it's like certain rectangles of the display
area are being temporarily drawn in the wrong places for a very short
time, and this happens many times during the frame entry/exit animation.

Here is a photo:
http://dev.laptop.org/~dsd/20090624/flicker.jpg

You can see that most of the bottom of the screen is "dislodged." A
split-second later it would be dislodged in a different way. Once the
frame animation completes, the dislodgings stop and screen is always
back to normal.

It is easy to reproduce in other environments too. For example, just
click on the GNOME applications menu a few times to open/close it, and
you'll get a flicker. However the Sugar frame really makes it flicker a
lot more. Also it flickers more with XAA than EXA.


I found some points in the via_accel.c code where we can disable certain
accelerations and work around this issue. For EXA, we have to disable
the Copy acceleration. For XAA, we have to disable both
SubsequentScreenToScreenCopy and SubsequentSolidFillRect.
http://dev.laptop.org/~dsd/20090624/flicker-workaround.patch

I find this issue surprising, because both of these codepaths involve
calling viaAccelCopyHelper(). This function seems to behave very
similarly for all supported hardware, and is also called in other
acceleration paths. It seems unlikely that the real bug is in this
function, since there don't seem to be other reports of this issue.

Any thoughts on how we can continue investigating this issue?

Thanks,
Daniel






More information about the Openchrome-devel mailing list