From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: Re: [PATCH] vnc linesize Date: Thu, 20 Mar 2008 18:14:51 +0000 Message-ID: <47E2A99B.5070700@eu.citrix.com> References: <47E14C52.3040300@eu.citrix.com> <1206034265.27908.124.camel@bling> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------060303060300040001030905" Return-path: In-Reply-To: <1206034265.27908.124.camel@bling> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Alex Williamson Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------060303060300040001030905 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi Alex, I think I have found the bug that causes the strange behaviour you are describing, but I have no way to be sure because I cannot test it on a ia64 machine. Could you please try the patch I am attaching (to be applied on top of the other one)? Best Regards, Stefano Stabellini Alex Williamson wrote: > On Wed, 2008-03-19 at 17:24 +0000, Stefano Stabellini wrote: >> Hi all, >> the patch I am attaching enables buffer sharing for vnc when the >> linesize != width * depth. > > Hi Stefano, > > I'm seeing some odd issues with this on ia64, see the attached > screenshot. I'm using VNC, not SDL, and have specified opengl=0 in my > domain config file. The left side of the screen is wrapped around > overtop of the right side of the screen. The copy on the left side is > not updated unless I change the resolution the guest is running or force > the VNC client to manually refresh. Updates are normal on the copy on > the right side of the screen. Any ideas? Thanks, > --------------060303060300040001030905 Content-Type: text/x-patch; name="linesize2.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="linesize2.patch" diff -r 491a3b62ae5b tools/ioemu/vnc.c --- a/tools/ioemu/vnc.c Thu Mar 20 17:48:02 2008 +0000 +++ b/tools/ioemu/vnc.c Thu Mar 20 18:03:52 2008 +0000 @@ -370,16 +370,20 @@ static void vnc_dpy_resize(DisplayState int o; if (!ds->shared_buf) { + ds->linesize = w * vs->depth; if (allocated) - ds->data = realloc(ds->data, h * linesize); + ds->data = realloc(ds->data, h * ds->linesize); else - ds->data = malloc(h * linesize); + ds->data = malloc(h * ds->linesize); allocated = 1; - } else if (allocated) { - free(ds->data); - allocated = 0; - } - vs->old_data = realloc(vs->old_data, h * linesize); + } else { + ds->linesize = linesize; + if (allocated) { + free(ds->data); + allocated = 0; + } + } + vs->old_data = realloc(vs->old_data, h * ds->linesize); vs->dirty_row = realloc(vs->dirty_row, h * sizeof(vs->dirty_row[0])); vs->update_row = realloc(vs->update_row, h * sizeof(vs->dirty_row[0])); @@ -396,7 +400,6 @@ static void vnc_dpy_resize(DisplayState size_changed = ds->width != w || ds->height != h; ds->width = w; ds->height = h; - ds->linesize = linesize; if (vs->csock != -1 && vs->has_resize && size_changed) { vs->width = ds->width; vs->height = ds->height; --------------060303060300040001030905 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------060303060300040001030905--