qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 3 of 4] [UPDATE ]single vnc server surface


From: Gerd Hoffmann
Subject: Re: [Qemu-devel] [PATCH 3 of 4] [UPDATE ]single vnc server surface
Date: Fri, 31 Jul 2009 10:04:11 +0200
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1b3pre) Gecko/20090513 Fedora/3.0-2.3.beta2.fc11 Lightning/1.0pre Thunderbird/3.0b2

On 07/30/09 15:18, Stefano Stabellini wrote:
This patch removes the server surface from VncState and adds a single
server surface to VncDisplay for all the possible clients connected.
Each client maintains a different dirty bitmap in VncState.
The guest surface is moved to VncDisplay as well because we don't need
to track guest updates in more than one place.

This patch has been updated to handle copyrect correctly.

Well. Sort of. At least it has no screen corruption. The patch kills a number of bandwith saving optimizations though.

Number one (the big one): vnc clients without copyrect support get a *huge* penalty. Each vnc_copy call now sends a screen refresh to *all* clients, not only the ones with copyrect support. And they get the *whole* destination rectangle, not only the screen areas which did actually change. Given that vnc_copy can happen much more frequently than the refresh interval I think this increases the bandwith used *alot*.

Number two: In case we skip frames because we have data buffered (i.e. kernel output pipe is full) we might send more updates than we have to. With your patch the dirty bits of all screen updates are combined together, including the screen updates skipped. So screen areas which changed in the skipped frame, then changed back for the frame we actually sent are updated nevertheless. This isn't the case without the patch.

cheers,
  Gerd




reply via email to

[Prev in Thread] Current Thread [Next in Thread]