Mike Kronenberg wrote:
While testing with Quartzdebug, I realized, that qemu is updating
always the whole screenwidth even if only the mouse is moved... is
this a qemu problem, or is this the default windows behaviour?
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...
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.
Regards,
Anthony Liguori
Mike
[1]
http://developer.apple.com/documentation/Carbon/Conceptual/QuickDrawToQuartz2D/tq_image_data/chapter_6_section_2.html#//apple_ref/doc/uid/TP40001098-CH227-BBCFFDBB