On 07/06/2011 08:37 PM, Alon Levy wrote:
This does three things:
flush both command rings
stop (rendering everything)
start
Pulled out start and stop to their own functions to do this easily.
The added api is specifically async, i.e. it calls async_complete
when done.
Hi,
after flushing the qxl commands, flush_surfaces doesn't need to call
stop and start, it just needs the start part that flushes the surfaces
and waits for the channels outgoing items. destroy_surfaces that will
come afterwards for S3, will clean the glz drawbales
h b/server/red_worker.h
index 9ed7156..aae025b 100644
--- a/server/red_worker.h
+++ b/server/red_worker.h
@@ -78,6 +78,8 @@ enum {
RED_WORKER_MESSAGE_DESTROY_PRIMARY_SURFACE_ASYNC,
RED_WORKER_MESSAGE_DESTROY_SURFACE_WAIT_ASYNC,
RED_WORKER_MESSAGE_OOM_ASYNC,
+ /* suspend command */
maybe mention it is not only suspend (everything that triggeres
DrvAssertMode(disable) in Windows guest)
+ RED_WORKER_MESSAGE_FLUSH_SURFACES_ASYNC,
};
typedef uint32_t RedWorkerMessage;
diff --git a/server/spice.h b/server/spice.h
index f0d5685..a715666 100644
--- a/server/spice.h
+++ b/server/spice.h
@@ -133,6 +133,8 @@ struct QXLWorker {
QXLDevSurfaceCreate *surface);
void (*destroy_surface_wait_async)(QXLWorker *worker, uint32_t
surface_id);
void (*oom_async)(QXLWorker *worker);
+ /* suspend support - stop+start+read_cmd_ring */
+ void (*flush_surfaces_async)(QXLWorker *worker);
};
typedef struct QXLDrawArea {
_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/spice-devel