[Spice-devel] [video-qxl 2/6] Add a DeferredFPS option.

Jeremy White jwhite at codeweavers.com
Thu Jan 10 07:44:34 PST 2013


Signed-off-by: Jeremy White <jwhite at codeweavers.com>
---
 examples/spiceqxl.xorg.conf.example |    7 +++++++
 src/qxl.h                           |    3 +++
 src/qxl_driver.c                    |   10 ++++++++++
 3 files changed, 20 insertions(+)

diff --git a/examples/spiceqxl.xorg.conf.example b/examples/spiceqxl.xorg.conf.example
index f5868c1..a2f2ad9 100644
--- a/examples/spiceqxl.xorg.conf.example
+++ b/examples/spiceqxl.xorg.conf.example
@@ -70,6 +70,13 @@ Section "Device"
     # Set to true to only listen on ipv6 interfaces.
     # defaults to false.
     #Option "SpiceIPV6Only" ""
+
+    # If non zero, the driver will render all operations to the frame buffer,
+    #  and keep track of a changed rectangle list.  The changed rectangles
+    #  will be transmitted at the rate requested (e.g. 10 Frames Per Second)
+    # This can dramatically reduce network bandwidth for some use cases.
+    #Option "SpiceDeferredFPS" "10"
+
 EndSection
 
 Section "InputDevice"
diff --git a/src/qxl.h b/src/qxl.h
index 4cf9830..1389658 100644
--- a/src/qxl.h
+++ b/src/qxl.h
@@ -127,6 +127,7 @@ enum {
     OPTION_SPICE_TLS_CIPHERS,
     OPTION_SPICE_CACERT_FILE,
     OPTION_SPICE_DH_FILE,
+    OPTION_SPICE_DEFERRED_FPS,
 #endif
     OPTION_COUNT,
 };
@@ -260,6 +261,8 @@ struct _qxl_screen_t
         uint32_t       bytes_pp;
         uint8_t        *data, *flipped;
     } guest_primary;
+
+    uint32_t           deferred_fps;
 #endif /* XSPICE */
 };
 
diff --git a/src/qxl_driver.c b/src/qxl_driver.c
index e29a7ae..b01845c 100644
--- a/src/qxl_driver.c
+++ b/src/qxl_driver.c
@@ -124,6 +124,8 @@ const OptionInfoRec DefaultOptions[] =
       "SpiceCacertFile",          OPTV_STRING,    {0}, FALSE},
     { OPTION_SPICE_DH_FILE,
       "SpiceDhFile",              OPTV_STRING,    {0}, FALSE},
+    { OPTION_SPICE_DEFERRED_FPS,
+      "SpiceDeferredFPS",         OPTV_INTEGER,   {0}, FALSE},
 #endif
     
     { -1, NULL, OPTV_NONE, {0}, FALSE }
@@ -2415,6 +2417,14 @@ qxl_pre_init (ScrnInfoPtr pScrn, int flags)
     qxl->num_heads =
         get_int_option (qxl->options, OPTION_NUM_HEADS, "QXL_NUM_HEADS");
     
+#ifdef XSPICE
+    qxl->deferred_fps = get_int_option(qxl->options, OPTION_SPICE_DEFERRED_FPS, "XSPICE_DEFERRED_FPS");
+    if (qxl->deferred_fps > 0)
+        xf86DrvMsg(scrnIndex, X_INFO, "Deferred FPS: %d\n", qxl->deferred_fps);
+    else
+        xf86DrvMsg(scrnIndex, X_INFO, "Deferred Frames: Disabled\n");
+#endif
+
     xf86DrvMsg (scrnIndex, X_INFO, "Offscreen Surfaces: %s\n",
                 qxl->enable_surfaces ? "Enabled" : "Disabled");
     xf86DrvMsg (scrnIndex, X_INFO, "Image Cache: %s\n",
-- 
1.7.10.4





More information about the Spice-devel mailing list