Quoting "Antonino A. Daplas" [off-list ref]:
1. SCROLL_ACCEL = no panning + copyarea;
2. SCROLL_REDRAW = no panning + imageblit;
3. SCROLL_PAN/SCROLL_WRAP = pan/wrap + copyarea;
Correct.
Personally, the pseudocode below might be better.
If (pan/wrap is available) {
if (fb reading is fast || accel copyarea is available)
SCROLL_PAN/WRAP;
else
SCROLL_REDRAW; /* since SCROLL_PAN/WRAP_REDRAW not available */
} else {
if (fb_reading is fast || accel copyarea is available)
SCROLL_ACCEL;
else
SCROLL_REDRAW;
}
I coded your pseudocode up, and I'm convinced now that you and Thomas are right.
We should prefer panning when it's available
cat /usr/src/linux/MAINTAINERS is 0.3 seconds instead of 1.5 seconds.
On the down side, panning makes screen corruption for me... time to investigate
to see if fbcon or radeonfb is to blame... perhaps panning is just incompatible
with accel engine at all in radeon...
-dte