Anthony Liguori wrote:
> VGA framebuffer operations come in as memory operations.  They're 
> tracked by watching what memory gets dirtied.  This can only operate at 
> a page-granularity so this results in scan-line granularity updates.  
> The VNC front-end goes to great lengths to keep a shadowed framebuffer 
> and reduce these updates to a smaller update region.  You could possibly 
> look at refactoring that code.  However...

That update region code should probably be moved to something generic
and made into a generic display option.

Reducing update region is logically orthogonal, and could work with
any update method (e.g. local X11, remote X11, local X11-OpenGL,
remote X11-OpenGL, SDL etc.).  With some of those, for some people
(especially some but not all remote setups) it might be worth it.

> I would be amazed if screen updates on OS X are so slow that it would 
> make a difference if updates are in scanline granularities.  The copying 
> latency is nothing compared to the other latencies in QEMU.  A modern 
> processor can move memory at an extremely high speed.
> 
> At a refresh rate of 30 times per second, this is only ~4MB of data for 
> mouse movements.  A typical processor can easily handle many GB of data 
> per second.

That's 16MB/frame on an Apple Cinema display at 32bpp, which is
0.5GB/sec.  Not too much, but not free either :-)

-- Jamie


Reply via email to