|
From: | Alexander Graf |
Subject: | Re: [Qemu-devel] [PATCH] Missing cirrus_invalidate_region() in cirrus_do_copy() |
Date: | Tue, 17 Feb 2009 09:39:42 +0100 |
On 16.02.2009, at 23:09, Brian Kress <address@hidden> wrote:
After doing a video to video copy, cirrus_do_copy() in cirrus_vga.c does a conditional call to cirrus_invalidate_region() with an "if (!notify)" test. However at this point the blt has already been done so it seems like this call should be made unconditionally. The patch below fixes some display update problems when dragging windows under both X (fedora10 guest) and a Windows XP guest.
Hm - I've run into this too, exposed the most using a gnome guest on vnc using copyrect.
Basically from what I understood, the conditional is If display supports copyrect tell it to copy Else draw yourselfAnd with this patch you're basically reverting to 'draw yourself' always, no?
I boiled things far enough to see that the blt addresses were completely off. The next idea on my list was to check if this is a Linux driver issue by running the same image on a real cirrus logic.
Alex
Signed-off-by: Brian Kress <address@hidden> Index: hw/cirrus_vga.c =================================================================== --- hw/cirrus_vga.c (revision 6626) +++ hw/cirrus_vga.c (working copy) @@ -781,10 +781,9 @@ /* we don't have to notify the display that this portion has changed since qemu_console_copy implies this */ - if (!notify) - cirrus_invalidate_region(s, s->cirrus_blt_dstaddr, - s->cirrus_blt_dstpitch, s->cirrus_blt_width, - s->cirrus_blt_height); + cirrus_invalidate_region(s, s->cirrus_blt_dstaddr, + s->cirrus_blt_dstpitch, s->cirrus_blt_width, + s->cirrus_blt_height); } static int cirrus_bitblt_videotovideo_copy(CirrusVGAState * s)
[Prev in Thread] | Current Thread | [Next in Thread] |