From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MTFGN-0003Q8-7v for qemu-devel@nongnu.org; Tue, 21 Jul 2009 09:20:11 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MTFGI-0003NP-AN for qemu-devel@nongnu.org; Tue, 21 Jul 2009 09:20:10 -0400 Received: from [199.232.76.173] (port=51859 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MTFGI-0003NI-7g for qemu-devel@nongnu.org; Tue, 21 Jul 2009 09:20:06 -0400 Received: from mx2.redhat.com ([66.187.237.31]:54968) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MTFGH-00054R-ON for qemu-devel@nongnu.org; Tue, 21 Jul 2009 09:20:06 -0400 Message-ID: <4A65C07D.6080103@redhat.com> Date: Tue, 21 Jul 2009 15:19:57 +0200 From: Gerd Hoffmann MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: [PATCH] update server bits on vnc_update References: <1247892434-21209-1-git-send-email-glommer@redhat.com> <4A6577A1.9010509@redhat.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefano Stabellini Cc: Glauber Costa , "aliguori@us.ibm.com" , "qemu-devel@nongnu.org" On 07/21/09 14:56, Stefano Stabellini wrote: > we call vga_hw_update in vnc_update_client, that means we call it once > per vnc client connected! We should call it only once, probably in a > separate timer, that is enabled only if at least one client is connect. Good point. Even better would be a timer shared by all clients, then loop over all clients (pretty much like vnc_dpy_update calls vnc_update for all connected clients). That would make moving vga_hw_update out of the loop trivial ;) > I also don't like the fact that we are allocating a server surface per > client connected, this can become a problem very fast: I think we could > probably get away with just one server surface for all the clients. I don't think so. server surface matches the vnc clients view of the framebuffer. We need that to avoid sending screen updates for regions which didn't change. Different clients can have a different views here for a number of reasons: Because they support different feature sets. Because we try to skip frames if the pipe is full. Thus sharing the server surface is non-trivial and we'll lose certain optimization when doing that. cheers, Gerd