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

Frediano Ziglio fziglio at redhat.com
Wed Mar 15 07:57:13 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

Acked-by: Frediano Ziglio <fziglio at redhat.com>

Frediano


More information about the Spice-devel mailing list