On Fri, Jul 08, 2011 at 09:17:50AM +0200, Gerd Hoffmann wrote:
> >+void qxl_spice_update_area_async(PCIQXLDevice *qxl, uint32_t surface_id,
> >+ struct QXLRect *area, struct QXLRect
> >*dirty_rects,
> >+ uint32_t num_dirty_rects, uint32_t
> >cle
On Fri, Jul 08, 2011 at 09:17:50AM +0200, Gerd Hoffmann wrote:
> >+void qxl_spice_update_area_async(PCIQXLDevice *qxl, uint32_t surface_id,
> >+ struct QXLRect *area, struct QXLRect
> >*dirty_rects,
> >+ uint32_t num_dirty_rects, uint32_t
> >cle
btw, I'm looking at "#if.*MINOR" code like
#if SPICE_INTERFACE_CORE_MINOR>= 3
(ui/spice-core.c)
Shouldn't that be checking the MAJOR as well?
major changing means a incompatible change. I doubt we ever will do
that. But if you feel better checking that it probably should just be a
#if
The above two lines change was a mistake. What about:
qxl_spice_update_area_async(...)
{
#ifdef ..
if (async) {
qxl->ssd.worker->update_area_async(...)
} else {
qxl_spice_update_area(...)
}
#else
qxl_spice_update_area(...)
#endif
}
I would do
if (async) {
#if ...
worker->fo
+void qxl_spice_update_area_async(PCIQXLDevice *qxl, uint32_t surface_id,
+ struct QXLRect *area, struct QXLRect *dirty_rects,
+ uint32_t num_dirty_rects, uint32_t
clear_dirty_region,
+ int async)
+{
+if (async) {
+
Some of the QXL port i/o commands are waiting for the spice server to
complete certain actions. Add async versions for these commands, so we
don't block the vcpu while the spice server processses the command.
Instead the qxl device will raise an IRQ when done.
The async command processing relies