To support suspend a new io port and corresponding spice api is added. The spice api is QXLWorker::update_mem and it is used to do multiple update_area's at once to all existing surfaces, followed by destroy to all the surfaces except the primary. This results in rendered memory on the pci vram bar, and no references except through the release ring, and the last_release list, which is cleared by another io call from the device (this detail is in qemu and not in spice).
The first patches are To test this you will need: updated spice-protocol (patchset on the list) updated qemu (patchset on the list) updated windows driver (patchset on the list) All the git repos are also available here: git://anongit.freedesktop.org/~alon/spice s3.v1 git://anongit.freedesktop.org/~alon/spice-protocol s3.v1 git://anongit.freedesktop.org/~alon/qxl s3.v1 git://anongit.freedesktop.org/~alon/qemu s3.v1 If you want to test with qemu-kvm there is a branch for that too: git://anongit.freedesktop.org/~alon/qemu qemu-kvm.master.spice.v36.s3.v1 Pre built unsigned windows drivers are at: http://annarchy.freedesktop.org/~alon/qxl_win_drivers/unsigned_qxl_win_drivers__s3.v1_git_b218bad.zip Alon Levy (5): server/red_worker: add stream_count (for debug purposes) server/red_worker: validate_surface: print paniced surface_id server/red_worker: add destroy_all_surfaces_starting_from (reused next patch) server: bump minor to 1 to signify QXLInterface addition in next patch server/red_worker: (QXLInterface change) add update_mem for S3/S4 support Yonit Halperin (1): server/red_worker: send surface images on demand (UPDATE_MEM) server/red_dispatcher.c | 12 +++++ server/red_worker.c | 104 +++++++++++++++++++++++++++++++++++++++-------- server/red_worker.h | 1 + server/spice.h | 3 +- 4 files changed, 102 insertions(+), 18 deletions(-) -- 1.7.5.2 _______________________________________________ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel