[Spice-devel] [PATCH spice-space-pages v2] Add documentation for using multiple monitors

Jonathon Jongsma jjongsma at redhat.com
Tue Mar 14 21:45:40 UTC 2017


Proposed changes to squash with previous patch
---
 multiple-monitors.rst | 28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/multiple-monitors.rst b/multiple-monitors.rst
index 5967999..dd7a439 100644
--- a/multiple-monitors.rst
+++ b/multiple-monitors.rst
@@ -28,17 +28,18 @@ QXL driver supports multiple displays (up to 4) with a single video device,
 whereas the Windows QXL driver only supports a single display for each video
 device. So to enable 4 monitors, a Linux guest would need only a single QXL
 device, while a Windows guest would need to be configured with 4 separate QXL
-devices. It is possible to limit the number of displays that a single linux
-driver supports by setting the `qxl-vga.max_outputs` property in qemu. If you
-are using libvirt to configure your guest, you may need to ensure that the
-`heads` parameter for the video device is set properly.
+devices. Since qemu 2.4.0, it is possible to limit the number of displays that
+a single linux driver supports by setting the `qxl-vga.max_outputs`. If you are
+using libvirt to configure your guest, you may need to ensure that the `heads`
+parameter for the video device is set properly.
 
 QXL Driver Video Memory
 -----------------------
 If you want to use multiple displays on your guest, you need to make sure that
 the device has enough video memory to support the number and size of screens
-you intend to use. There are several QXL parameters that you can use to control
-the amount of memory allocated to the QXL devices. These parameters are:
+you intend to use. There are several QXL parameters in qemu that you can use to
+control the amount of memory allocated to the QXL devices. These parameters
+are:
 
 * `ram_size` / `ram_size_mb`
 * `vram_size` / `vram_size_mb`
@@ -57,8 +58,8 @@ determines the size of the primary surface, and therefore determines the
 maximum resolution of the device. For devices that support
 multiple displays with a single device (i.e. Linux drivers), this primary
 surface must be large enough to contain all displays. This bar is also used for
-dynamic meory such as cursors, commands, and images. The second bar is used for
-offscreen memory.
+dynamic memory such as cursors, commands, and images. The second bar is used
+for offscreen memory.
 
 In KMS-based Linux drivers, all surfaces (including the primary surface) are
 allocated in the second memory bar and the first memory bar is used for dynamic
@@ -66,8 +67,11 @@ memory such as cursors, commands, images, and monitor configs. Therefore,
 devices that support multiple displays will need larger values for `vram_size`
 / `vram_size_mb`.
 
-XXX: what is `vram64_size_mb` used for? Does the non-KMS driver actually use
-the second bar?
+64 bit drivers support a larger second memory bar that can be configured with
+`vram64_size_mb`. If `vram_size_mb` is configured to 32 and `vram64_size_mb` is
+configured to 128, you will get a 32 bit memory bar of 32 megabytes and a 64
+bit memory bar of 128 megabytes. The first 32 megabytes of the 64 bit memory
+bar will contain the same data as the 32 bit memory bar.
 
 Spice Protocol
 ++++++++++++++
@@ -91,7 +95,7 @@ As mentioned above, the Linux QXL device supports multiple displays in a single
 device, whereas the Windows QXL device requires a separate device for each
 display. This has implications at the protocol level as well. A Linux guest
 will have a single DisplayChannel which manages up to 4 displays on the same
-channel. A Windows guest will have multiple DisplayChannels, one for each
+channel. A Windows guest will have multiple Display channels, one for each
 device and each managing a single display.
 
 Implementation
@@ -131,7 +135,7 @@ Older versions of the QXL driver do not provide the callback mentioned above
 and instead handle all monitor configuration changes via the spice-vdagent
 executable running within the guest. The configuration is sent from the host to
 the guest via the vdagent char device. The spice-vdagent executable then uses
-platform APIs (e.g. xrandr on linux) to attempt to configure the displays to
+platform APIs (e.g. xrandr on Linux) to attempt to configure the displays to
 match the requested configuration.
 
 Device implementation
-- 
2.9.3



More information about the Spice-devel mailing list