This is a rewrite of v1, doesn't use any new api, reuses stop+start+destroy_surfaces instead of the previously introduced update_mem spice server function. stop does a flush of all commands, updating all the surfaces, and with destroy surfaces the result is the same - everything has been pushed either to the release ring or to the last_release list.
I've sent a bunch of patches that have previously appeared on the list, annotated below. The before last patch actually does the implementation of the two new io's to be added to spice-protocol V10, QXL_IO_FLUSH_SURFACES and QXL_IO_FLUSH_RELEASE. The last patch requires some more attention - see it's commit message. Alon Levy (12): qxl: set mm_time in vga update - previously sent as an RfC qxl: interface_get_command: fix reported mode - fixed with Gerd's comments (print INVALID if not know, used where it seemed appropriate) qxl: add mode to debugprint on destroy primary qxl: allow QXL_IO_LOG also in vga qxl: abort on panic instead of exit qxl-logger: add timestamp to command log qxl: update and add debug prints qxl: add dev id to guest prints qxl: add io_port_to_string qxl: update revision to QXL_REVISION_STABLE_V10 qxl: add QXL_IO_FLUSH_{SURFACES,RELEASE} for guest S3&S4 support qxl: add primary_created state, change mode lifetimes hw/qxl-logger.c | 4 +- hw/qxl.c | 180 ++++++++++++++++++++++++++++++++++++++++++++------- hw/qxl.h | 3 +- ui/spice-display.c | 5 ++ 4 files changed, 165 insertions(+), 27 deletions(-) -- 1.7.5.4