From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MTDNQ-0003AW-CV for qemu-devel@nongnu.org; Tue, 21 Jul 2009 07:19:20 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MTDNK-00039W-Np for qemu-devel@nongnu.org; Tue, 21 Jul 2009 07:19:19 -0400 Received: from [199.232.76.173] (port=50960 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MTDNK-00039P-Fj for qemu-devel@nongnu.org; Tue, 21 Jul 2009 07:19:14 -0400 Received: from mx2.redhat.com ([66.187.237.31]:51079) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MTDNK-0004VX-46 for qemu-devel@nongnu.org; Tue, 21 Jul 2009 07:19:14 -0400 Message-ID: <4A65A42C.5050703@redhat.com> Date: Tue, 21 Jul 2009 13:19:08 +0200 From: Gerd Hoffmann MIME-Version: 1.0 References: <1247892434-21209-1-git-send-email-glommer@redhat.com> <4A6577A1.9010509@redhat.com> In-Reply-To: <4A6577A1.9010509@redhat.com> Content-Type: multipart/mixed; boundary="------------040108040908040607080505" Subject: [Qemu-devel] Re: [PATCH] update server bits on vnc_update List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Glauber Costa Cc: aliguori@us.ibm.com, qemu-devel@nongnu.org This is a multi-part message in MIME format. --------------040108040908040607080505 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 07/21/09 10:09, Gerd Hoffmann wrote: > On 07/18/09 06:47, Glauber Costa wrote: > And while looking at the code I think I've spotted the actual bug: When > sending a bitblit to the client we do *not* update the local server > surface. Result is the vnc clients and the vnc servers idea of the > screen content are not in sync any more. Which in turn will break the > optimization in (2) and can easily result in a corrupted screen ... Quick test: Disabling copyrect should make the screen corruption go away then. Real fix will follow later. cheers, Gerd --------------040108040908040607080505 Content-Type: text/plain; name="fix" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="fix" diff --git a/vnc.c b/vnc.c index de0ff87..86acfee 100644 --- a/vnc.c +++ b/vnc.c @@ -1541,9 +1541,11 @@ static void set_encodings(VncState *vs, int32_t *encodings, size_t n_encodings) case VNC_ENCODING_RAW: vs->vnc_encoding = enc; break; +#if 0 case VNC_ENCODING_COPYRECT: vs->features |= VNC_FEATURE_COPYRECT_MASK; break; +#endif case VNC_ENCODING_HEXTILE: vs->features |= VNC_FEATURE_HEXTILE_MASK; vs->vnc_encoding = enc; --------------040108040908040607080505--