Signed-off-by: Peter Krempa <pkre...@redhat.com> --- docs/formatdomain-devices-video.rst | 101 +++++++++++++++++++++++++++ docs/formatdomain-devices.rst | 103 +--------------------------- docs/meson.build | 1 + 3 files changed, 103 insertions(+), 102 deletions(-) create mode 100644 docs/formatdomain-devices-video.rst
diff --git a/docs/formatdomain-devices-video.rst b/docs/formatdomain-devices-video.rst new file mode 100644 index 0000000000..54f84a1a8a --- /dev/null +++ b/docs/formatdomain-devices-video.rst @@ -0,0 +1,101 @@ +:anchor:`<a id="elementsVideo"/>` + +Video devices +~~~~~~~~~~~~~ + +A video device. + +:: + + ... + <devices> + <video> + <model type='vga' vram='16384' heads='1'> + <acceleration accel3d='yes' accel2d='yes'/> + </model> + <driver name='qemu'/> + </video> + </devices> + ... + +``video`` + The ``video`` element is the container for describing video devices. For + backwards compatibility, if no ``video`` is set but there is a ``graphics`` + in domain xml, then libvirt will add a default ``video`` according to the + guest type. + + For a guest of type "kvm", the default ``video`` is: ``type`` with value + "cirrus", ``vram`` with value "16384" and ``heads`` with value "1". By + default, the first video device in domain xml is the primary one, but the + optional attribute ``primary`` ( :since:`since 1.0.2` ) with value 'yes' can + be used to mark the primary in cases of multiple video device. The + non-primary must be type of "qxl" or ( :since:`since 2.4.0` ) "virtio". + +``model`` + The ``model`` element has a mandatory ``type`` attribute which takes the + value "vga", "cirrus", "vmvga", "xen", "vbox", "qxl" ( :since:`since 0.8.6` + ), "virtio" ( :since:`since 1.3.0` ), "gop" ( :since:`since 3.2.0` ), "bochs" + ( :since:`since 5.6.0` ), "ramfb" ( :since:`since 5.9.0` ), or "none" ( + :since:`since 4.6.0` , depending on the hypervisor features available. The + purpose of the type ``none`` is to instruct libvirt not to add a default + video device in the guest (see the paragraph above). This legacy behaviour + can be inconvenient in cases where GPU mediated devices are meant to be the + only rendering device within a guest and so specifying another ``video`` + device along with type ``none``. Refer to Host device assignment to see how + to add a mediated device into a guest. + + You can provide the amount of video memory in kibibytes (blocks of 1024 + bytes) using ``vram``. This is supported only for guest type of "vz", "qemu", + "vbox", "vmx" and "xen". If no value is provided the default is used. If the + size is not a power of two it will be rounded to closest one. + + The number of screen can be set using ``heads``. This is supported only for + guests type of "vz", "kvm", "vbox" and "vmx". + + For guest type of "kvm" or "qemu" and model type "qxl" there are optional + attributes. Attribute ``ram`` ( :since:` since 1.0.2` ) specifies the size of + the primary bar, while the attribute ``vram`` specifies the secondary bar + size. If ``ram`` or ``vram`` are not supplied a default value is used. The + ``ram`` should also be rounded to power of two as ``vram``. There is also + optional attribute ``vgamem`` ( :since:`since 1.2.11` ) to set the size of + VGA framebuffer for fallback mode of QXL device. Attribute ``vram64`` ( + :since:`since 1.3.3` ) extends secondary bar and makes it addressable as + 64bit memory. + + :since:`Since 5.9.0` , the ``model`` element may also have an optional + ``resolution`` sub-element. The ``resolution`` element has attributes ``x`` + and ``y`` to set the minimum resolution for the video device. This + sub-element is valid for model types "vga", "qxl", "bochs", and "virtio". + +``acceleration`` + Configure if video acceleration should be enabled. + + ``accel2d`` + Enable 2D acceleration (for vbox driver only, :since:`since 0.7.1` ) + ``accel3d`` + Enable 3D acceleration (for vbox driver :since:`since 0.7.1` , qemu driver + :since:`since 1.3.0` ) + ``rendernode`` + Absolute path to a host's DRI device to be used for rendering (for + 'vhostuser' driver only, :since:`since 5.8.0` ). If none is specified, + libvirt will pick one available. + +``address`` + The optional ``address`` sub-element can be used to tie the video device to a + particular PCI slot. On S390, ``address`` can be used to provide the CCW + address for the video device ( :since:` since 4.2.0` ). +``driver`` + The subelement ``driver`` can be used to tune the device: + + ``name`` + Specify the backend driver to use, either "qemu" or "vhostuser" depending + on the hypervisor features available ( :since:`since 5.8.0` ). "qemu" is + the default QEMU backend. "vhostuser" will use a separate vhost-user + process backend (for ``virtio`` device). + virtio options + `Virtio-specific options <#elementsVirtio>`__ can also be set ( + :since:`Since 3.5.0` ) + VGA configuration + Control how the video devices exposed to the guest using the ``vgaconf`` + attribute which takes the value "io", "on" or "off". At present, it's only + applicable to the bhyve's "gop" video model type ( :since:`Since 3.5.0` ) diff --git a/docs/formatdomain-devices.rst b/docs/formatdomain-devices.rst index d2aba7ba28..8d8d52731e 100644 --- a/docs/formatdomain-devices.rst +++ b/docs/formatdomain-devices.rst @@ -52,108 +52,7 @@ following characters: ``[a-zA-Z0-9_-]``. :since:`Since 3.9.0` .. include:: formatdomain-devices-input.rst .. include:: formatdomain-devices-hub.rst .. include:: formatdomain-devices-graphics.rst - -:anchor:`<a id="elementsVideo"/>` - -Video devices -~~~~~~~~~~~~~ - -A video device. - -:: - - ... - <devices> - <video> - <model type='vga' vram='16384' heads='1'> - <acceleration accel3d='yes' accel2d='yes'/> - </model> - <driver name='qemu'/> - </video> - </devices> - ... - -``video`` - The ``video`` element is the container for describing video devices. For - backwards compatibility, if no ``video`` is set but there is a ``graphics`` - in domain xml, then libvirt will add a default ``video`` according to the - guest type. - - For a guest of type "kvm", the default ``video`` is: ``type`` with value - "cirrus", ``vram`` with value "16384" and ``heads`` with value "1". By - default, the first video device in domain xml is the primary one, but the - optional attribute ``primary`` ( :since:`since 1.0.2` ) with value 'yes' can - be used to mark the primary in cases of multiple video device. The - non-primary must be type of "qxl" or ( :since:`since 2.4.0` ) "virtio". - -``model`` - The ``model`` element has a mandatory ``type`` attribute which takes the - value "vga", "cirrus", "vmvga", "xen", "vbox", "qxl" ( :since:`since 0.8.6` - ), "virtio" ( :since:`since 1.3.0` ), "gop" ( :since:`since 3.2.0` ), "bochs" - ( :since:`since 5.6.0` ), "ramfb" ( :since:`since 5.9.0` ), or "none" ( - :since:`since 4.6.0` , depending on the hypervisor features available. The - purpose of the type ``none`` is to instruct libvirt not to add a default - video device in the guest (see the paragraph above). This legacy behaviour - can be inconvenient in cases where GPU mediated devices are meant to be the - only rendering device within a guest and so specifying another ``video`` - device along with type ``none``. Refer to Host device assignment to see how - to add a mediated device into a guest. - - You can provide the amount of video memory in kibibytes (blocks of 1024 - bytes) using ``vram``. This is supported only for guest type of "vz", "qemu", - "vbox", "vmx" and "xen". If no value is provided the default is used. If the - size is not a power of two it will be rounded to closest one. - - The number of screen can be set using ``heads``. This is supported only for - guests type of "vz", "kvm", "vbox" and "vmx". - - For guest type of "kvm" or "qemu" and model type "qxl" there are optional - attributes. Attribute ``ram`` ( :since:` since 1.0.2` ) specifies the size of - the primary bar, while the attribute ``vram`` specifies the secondary bar - size. If ``ram`` or ``vram`` are not supplied a default value is used. The - ``ram`` should also be rounded to power of two as ``vram``. There is also - optional attribute ``vgamem`` ( :since:`since 1.2.11` ) to set the size of - VGA framebuffer for fallback mode of QXL device. Attribute ``vram64`` ( - :since:`since 1.3.3` ) extends secondary bar and makes it addressable as - 64bit memory. - - :since:`Since 5.9.0` , the ``model`` element may also have an optional - ``resolution`` sub-element. The ``resolution`` element has attributes ``x`` - and ``y`` to set the minimum resolution for the video device. This - sub-element is valid for model types "vga", "qxl", "bochs", and "virtio". - -``acceleration`` - Configure if video acceleration should be enabled. - - ``accel2d`` - Enable 2D acceleration (for vbox driver only, :since:`since 0.7.1` ) - ``accel3d`` - Enable 3D acceleration (for vbox driver :since:`since 0.7.1` , qemu driver - :since:`since 1.3.0` ) - ``rendernode`` - Absolute path to a host's DRI device to be used for rendering (for - 'vhostuser' driver only, :since:`since 5.8.0` ). If none is specified, - libvirt will pick one available. - -``address`` - The optional ``address`` sub-element can be used to tie the video device to a - particular PCI slot. On S390, ``address`` can be used to provide the CCW - address for the video device ( :since:` since 4.2.0` ). -``driver`` - The subelement ``driver`` can be used to tune the device: - - ``name`` - Specify the backend driver to use, either "qemu" or "vhostuser" depending - on the hypervisor features available ( :since:`since 5.8.0` ). "qemu" is - the default QEMU backend. "vhostuser" will use a separate vhost-user - process backend (for ``virtio`` device). - virtio options - `Virtio-specific options <#elementsVirtio>`__ can also be set ( - :since:`Since 3.5.0` ) - VGA configuration - Control how the video devices exposed to the guest using the ``vgaconf`` - attribute which takes the value "io", "on" or "off". At present, it's only - applicable to the bhyve's "gop" video model type ( :since:`Since 3.5.0` ) +.. include:: formatdomain-devices-video.rst :anchor:`<a id="elementsConsole"/>` diff --git a/docs/meson.build b/docs/meson.build index f26754852d..56791e3258 100644 --- a/docs/meson.build +++ b/docs/meson.build @@ -137,6 +137,7 @@ docs_rst_files = [ 'formatdomain-devices-input.rst', 'formatdomain-devices-hub.rst', 'formatdomain-devices-graphics.rst', + 'formatdomain-devices-video.rst', ] }, { 'name': 'hacking' }, -- 2.26.2