Re: qxl and page flip

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



  Hi,

> The other option is we revert atomic modesetting from upstream qxl
> until the hw
> is upgraded to it, and we use the atomic path only on the newer
> hardware.

Well, the non-atomic "page-flip support" is blitting one framebuffer
over the other.  I wouldn't call this a solution either.  It just
happens to work ok in most cases due to lazy rendering (i.e. spice-
server not updating local surfaces unless there is a need to do that).

> I'd really like to see some commitment to fixing qxl if we do decide
> to do that.

Ok, so how about the attached virtual hardware update?

cheers,
  Gerd
>From 47f514ba3c2d261dc3fa76ebab37f0bb5d566252 Mon Sep 17 00:00:00 2001
From: Gerd Hoffmann <kraxel@xxxxxxxxxx>
Date: Fri, 6 Oct 2017 10:17:10 +0200
Subject: [RfC PATCH] qxl: add primary surface update support

This operation allows to update the primary surface without going
through a destroy + create cycle.  It is limited to backing memory
updates (i.e. pageflip operations).  Only the spice server needs the
memory location, so this doesn't need changes in the spice protocol
and the spice client.

The guest must update QXLRam->create_surface->mem, then invoke the new
QXL_IO_UPDATE_PRIMARY_ASYNC operation via ioport write.

I'd suggest spice-server provides a new spice_qxl_update_surface_async()
function implementing this.

Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx>
---
 spice/qxl_dev.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/spice/qxl_dev.h b/spice/qxl_dev.h
index 9e753c4073..b8fba8e233 100644
--- a/spice/qxl_dev.h
+++ b/spice/qxl_dev.h
@@ -50,6 +50,7 @@ enum {
     QXL_REVISION_STABLE_V06=0x02,
     QXL_REVISION_STABLE_V10=0x03,
     QXL_REVISION_STABLE_V12=0x04,
+    QXL_REVISION_STABLE_V14=0x05,
 };
 
 #define QXL_DEVICE_ID_DEVEL 0x01ff
@@ -97,6 +98,8 @@ enum {
     QXL_IO_FLUSH_RELEASE,
     /* appended for qxl-4 */
     QXL_IO_MONITORS_CONFIG_ASYNC,
+    /* appended for qxl-5 */
+    QXL_IO_UPDATE_PRIMARY_ASYNC,
 
     QXL_IO_RANGE_SIZE
 };
-- 
2.9.3

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]