From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:48517) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S7H3E-000839-CI for qemu-devel@nongnu.org; Mon, 12 Mar 2012 22:01:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S7H3B-0002hk-RZ for qemu-devel@nongnu.org; Mon, 12 Mar 2012 22:01:23 -0400 Received: from mail-gx0-f173.google.com ([209.85.161.173]:33690) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S7H3B-0002hZ-NY for qemu-devel@nongnu.org; Mon, 12 Mar 2012 22:01:21 -0400 Received: by ggnj2 with SMTP id j2so45474ggn.4 for ; Mon, 12 Mar 2012 19:01:20 -0700 (PDT) Message-ID: <4F5EAA69.3090702@codemonkey.ws> Date: Mon, 12 Mar 2012 21:01:13 -0500 From: Anthony Liguori MIME-Version: 1.0 References: <1331201959-24133-1-git-send-email-kraxel@redhat.com> In-Reply-To: <1331201959-24133-1-git-send-email-kraxel@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] implement vnc_dpy_setdata List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerd Hoffmann Cc: qemu-devel@nongnu.org On 03/08/2012 04:19 AM, Gerd Hoffmann wrote: > The comment is wrong, we have to do something in the setdata callback. > Changing the framebuffer backing storage (happens when the guest pans > the display) renders the whole screen content invalid. > > Trigger #1: cirrus vga + 32bit linux guest + vesafb with ypan enabled. > Trigger #2: std vga + http://patchwork.ozlabs.org/patch/145479/ > > Signed-off-by: Gerd Hoffmann Applied. Thanks. Regards, Anthony Liguori > --- > ui/vnc.c | 5 ++++- > 1 files changed, 4 insertions(+), 1 deletions(-) > > diff --git a/ui/vnc.c b/ui/vnc.c > index 8ee39bc..bdec33a 100644 > --- a/ui/vnc.c > +++ b/ui/vnc.c > @@ -1936,7 +1936,10 @@ static void pixel_format_message (VncState *vs) { > > static void vnc_dpy_setdata(DisplayState *ds) > { > - /* We don't have to do anything */ > + VncDisplay *vd = ds->opaque; > + > + *(vd->guest.ds) = *(ds->surface); > + vnc_dpy_update(ds, 0, 0, ds_get_width(ds), ds_get_height(ds)); > } > > static void vnc_colordepth(VncState *vs)