From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1HSJh1-0003Sk-Ca for qemu-devel@nongnu.org; Fri, 16 Mar 2007 17:10:31 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1HSJh0-0003PY-HK for qemu-devel@nongnu.org; Fri, 16 Mar 2007 17:10:30 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HSJh0-0003Of-82 for qemu-devel@nongnu.org; Fri, 16 Mar 2007 16:10:30 -0500 Received: from wx-out-0506.google.com ([66.249.82.227]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1HSJfq-0000A6-Oj for qemu-devel@nongnu.org; Fri, 16 Mar 2007 17:09:18 -0400 Received: by wx-out-0506.google.com with SMTP id i30so1092209wxd for ; Fri, 16 Mar 2007 14:09:17 -0700 (PDT) Message-ID: <45FB077A.3080407@codemonkey.ws> Date: Fri, 16 Mar 2007 16:09:14 -0500 From: Anthony Liguori MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH] Reducing X communication bandwidth, take 2 References: <200703140152.01319.jseward@acm.org> <45FAE490.6090809@codemonkey.ws> <200703162053.02198.jseward@acm.org> In-Reply-To: <200703162053.02198.jseward@acm.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Julian Seward Cc: qemu-devel@nongnu.org Julian Seward wrote: > On Friday 16 March 2007 18:40, Anthony Liguori wrote: > >> Hi Julian, >> >> Julian Seward wrote: >> >>> Here is a somewhat revised version of a patch I first made nearly >>> three years ago. The original thread is >>> >>> http://lists.gnu.org/archive/html/qemu-devel/2004-07/msg00263.html >>> >>> It still uses a shadow frame buffer. Fabrice mentioned this is not >>> necessary >>> >> I thought about this a little and here's what I came up with. >> >> I think we could change vga_draw_line* so that as part of the drawing >> process, it compared the newly generated pixel with the previous pixel >> value and returned back the min, max x-coordinate that changed. >> >> Since we tend to only extend the vertical dirty range by a couple >> pixels, this should be a relatively cheap way of reducing the size of >> the update region. >> > > Sounds plausible - having said that, I have no familiarity with the VGA > code. Also sounds like a cleaner solution than mine. > > Is there something which guarantees that the vertical dirty range only > overshoots by some small number of pixels? Even at a relatively low resolution (640 x 480 @ 16 bit), a page will span only three rows so one dirty page cannot dirty more than 5 vertical pixels. > (thinking more about it .. > it doesn't matter - finding min/max that changed for each line will also > make it possible to identify the vertical limits of the change). > This is also true. > Will this work also for the CL542x adaptor? (Does that fall in the category > of vga?) My current hack works for with/without -std-vga and I think > that's because it lives "underneath" both, in the connection to SDL. > Each adapter will have to do it's own minimization but that's sort of the write thing anyway IMHO. How granular each update is really only depends on the adapter. For instance, the VMware adapter really shouldn't need to do any minimization at all. Regards, Anthony Liguori > J > >