Add two new IOs.
QXL_IO_FLUSH_SURFACES - equivalent to update area for all surfaces, used
to reduce vmexits from NumSurfaces to 1 on guest S3, S4 and resolution change
(windows
driver implementation is such that this is done on each of those occasions).
QXL_IO_FLUSH_RELEASE - used to ensure
Add two new IOs.
QXL_IO_FLUSH_SURFACES - equivalent to update area for all surfaces, used
to reduce vmexits from NumSurfaces to 1 on guest S3, S4 and resolution change
(windows
driver implementation is such that this is done on each of those occasions).
QXL_IO_FLUSH_RELEASE - used to ensure
Hi,
+case QXL_IO_FLUSH_SURFACES:
+dprint(d, 1, QXL_IO_FLUSH_SURFACES (%d) entry (%s, s#=%d, res#=%d)\n,
+val, qxl_mode_to_string(d-mode), d-guest_surfaces.count,
+d-num_free_res);
+qemu_spice_stop(d-ssd);
+qemu_spice_start(d-ssd);
+
On Wed, Jun 29, 2011 at 03:06:33PM +0200, Gerd Hoffmann wrote:
Hi,
+case QXL_IO_FLUSH_SURFACES:
+dprint(d, 1, QXL_IO_FLUSH_SURFACES (%d) entry (%s, s#=%d,
res#=%d)\n,
+val, qxl_mode_to_string(d-mode), d-guest_surfaces.count,
+d-num_free_res);
+
+case QXL_IO_FLUSH_RELEASE: {
+QXLReleaseRing *ring =d-ram-release_ring;
+if (ring-prod - ring-cons + 1 == ring-num_items) {
+// TODO - return a value to the guest and let it loop?
Hmm.
So the story goes: I wrote this, but didn't actually
On Wed, Jun 29, 2011 at 03:06:33PM +0200, Gerd Hoffmann wrote:
Hi,
+case QXL_IO_FLUSH_SURFACES:
+dprint(d, 1, QXL_IO_FLUSH_SURFACES (%d) entry (%s, s#=%d,
res#=%d)\n,
+val, qxl_mode_to_string(d-mode), d-guest_surfaces.count,
+d-num_free_res);
+
On Wed, Jun 29, 2011 at 04:50:10PM +0200, Gerd Hoffmann wrote:
+case QXL_IO_FLUSH_RELEASE: {
+QXLReleaseRing *ring =d-ram-release_ring;
+if (ring-prod - ring-cons + 1 == ring-num_items) {
+// TODO - return a value to the guest and let it loop?