Re: [Linux-fbdev-devel] [PATCH] fb accel capabilities (resend against 2.6.7-rc2)
From: Antonino A. Daplas <hidden>
Date: 2004-06-04 00:07:20
Also in:
lkml
On Friday 04 June 2004 02:01, David Eger wrote:
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...
The one time I saw screen corruption with panning was when the console virtual
rows (p->vrows in fbcon.c) were unconditionally set to var->yres_virtual/
fontheight. In most cases, this will cause screen corruption (or even a GPU
crash) when you scroll down to end of virtual memory. Symptoms are corrupted
data when you pan to p->vrows, fixed by changing to another console and back
again.
The correct thing to do is not to scroll to the very end, but scroll only to a
point where you still have enough fb memory at the end of fbmem to display 1
screenful of data. This is done by subtracting several lines to p->vrows as
illustrated by this code snippet scattered in fbcon.c
p->vrows = info->var.yres_virtual / vc->vc_font.height;
if(info->var.yres > (vc->vc_font.height * (vc->vc_rows + 1))) {
p->vrows -= (info->var.yres - (vc->vc_font.height * vc->vc_rows)) /
vc->vc_font.height;
}
Or this in fbcon_resize()
p->vrows = var.yres_virtual/fh;
if (var.yres > (fh * (height + 1)))
p->vrows -= (var.yres - (fh * height)) / fh;
The above code is scattered because we cannot seem to find a central location
to strategically place it because of the very confusing console code :-(
Is it possible that the changes in your development tree might have failed to
appropriately update p->vrows?
Tony
P.S. I believe this corruption was spotted with fix contributed by Thomas
last year.