Alon Levy 81fb6f1504 qxl: make qxl_render_update async
RHBZ# 747011

Removes the last user of QXL_SYNC when using update drivers that use the
_ASYNC io ports.

The last user is qxl_render_update, it is called both by qxl_hw_update
which is the vga_hw_update_ptr passed to graphic_console_init, and by
qxl_hw_screen_dump.

At the same time the QXLRect area being passed to the red_worker thread
is passed as a copy, as part of the QXLCookie.

The implementation uses interface_update_area_complete with a bh to make
sure dpy_update and qxl_flip are called from the io thread, otherwise
the vga->ds->surface.data can change under our feet.

With this patch sdl+spice works fine. But spice by itself doesn't
produce the expected screendumps unless repeated a few times, due to
ppm_save being called before update_area (rendering done in spice server
thread) having a chance to complete. Fixed by next patch, but see commit
message for problem introduced by it.

Signed-off-by: Alon Levy <alevy@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2012-02-27 09:46:52 +01:00
..
2010-07-26 17:35:54 -05:00
2010-07-26 17:35:54 -05:00
2010-07-26 17:35:54 -05:00
2010-07-26 17:35:54 -05:00
2010-07-26 17:35:54 -05:00
2012-02-27 09:46:51 +01:00
2012-02-27 09:46:52 +01:00
2010-07-26 17:36:14 -05:00
2010-07-26 17:36:14 -05:00
2010-07-26 17:36:14 -05:00
2010-07-26 17:35:54 -05:00
2012-02-10 09:58:33 +01:00
2010-07-26 17:35:54 -05:00