[doc]: a bunch of consistency fixes

This commit is contained in:
Tudor Brindus 2022-09-18 20:38:03 -04:00 committed by Geoffrey McRae
parent 0c63a901be
commit 6a9075b412
8 changed files with 214 additions and 212 deletions

View file

@ -66,17 +66,17 @@ Required dependencies
Depends: or Recommends: from another listed package is not allowed. Depends: or Recommends: from another listed package is not allowed.
All required packages must be listed. All required packages must be listed.
- cmake - ``cmake``
- gcc, g++ \| clang - ``gcc``, ``g++`` \| ``clang``
- libegl-dev - ``libegl-dev``
- libgl-dev - ``libgl-dev``
- libgles-dev - ``libgles-dev``
- libfontconfig-dev - ``libfontconfig-dev``
- libgmp-dev - ``libgmp-dev``
- libspice-protocol-dev - ``libspice-protocol-dev``
- make - ``make``
- nettle-dev - ``nettle-dev``
- pkg-config - ``pkg-config``
.. _client_deps_may_be_disabled: .. _client_deps_may_be_disabled:
@ -88,41 +88,41 @@ feature is disabled when running :ref:`cmake <client_building>`.
- Disable with ``cmake -DENABLE_BACKTRACE=no ..`` - Disable with ``cmake -DENABLE_BACKTRACE=no ..``
- binutils-dev - ``binutils-dev``
- Disable with ``cmake -DENABLE_X11=no ..`` - Disable with ``cmake -DENABLE_X11=no ..``
- libx11-dev - ``libx11-dev``
- libxfixes-dev - ``libxfixes-dev``
- libxi-dev - ``libxi-dev``
- libxinerama-dev - ``libxinerama-dev``
- libxss-dev - ``libxss-dev``
- libxcursor-dev - ``libxcursor-dev``
- libxpresent-dev - ``libxpresent-dev``
- Disable with ``cmake -DENABLE_WAYLAND=no ..`` - Disable with ``cmake -DENABLE_WAYLAND=no ..``
- libxkbcommon-dev - ``libxkbcommon-dev``
- libwayland-bin - ``libwayland-bin``
- libwayland-dev - ``libwayland-dev``
- wayland-protocols - ``wayland-protocols``
- Disable with ``cmake -DENABLE_PIPEWIRE=no ..`` - Disable with ``cmake -DENABLE_PIPEWIRE=no ..``
- libpipewire-0.3-dev - ``libpipewire-0.3-dev``
- libsamplerate0-dev - ``libsamplerate0-dev``
- Disable with ``cmake -DENABLE_PULSEAUDIO=no ..`` - Disable with ``cmake -DENABLE_PULSEAUDIO=no ..``
- libpulse-dev - ``libpulse-dev``
- libsamplerate0-dev - ``libsamplerate0-dev``
.. _client_deps_recommended: .. _client_deps_recommended:
Recommended Recommended
<<<<<<<<<<< <<<<<<<<<<<
- fonts-dejavu-core (This is the default UI font, but a random font will - ``fonts-dejavu-core`` (This is the default UI font, but a random font will
be chosen if not available). be chosen if not available).
.. _client_fetching_with_apt: .. _client_fetching_with_apt:
@ -140,7 +140,7 @@ You can fetch these dependencies with the following command:
libxpresent-dev libxss-dev libxkbcommon-dev libwayland-dev wayland-protocols \ libxpresent-dev libxss-dev libxkbcommon-dev libwayland-dev wayland-protocols \
libpipewire-0.3-dev libpulse-dev libsamplerate0-dev libpipewire-0.3-dev libpulse-dev libsamplerate0-dev
You may omit some dependencies, if you disable the feature which requires them You may omit some dependencies if you disable the feature which requires them
when running :ref:`cmake <client_building>`. when running :ref:`cmake <client_building>`.
(See :ref:`client_deps_may_be_disabled`) (See :ref:`client_deps_may_be_disabled`)
@ -160,7 +160,7 @@ into the *LookingGlass* directory.
cmake ../ cmake ../
make make
This will build the **looking-glass-client** binary, which is used to display This will build the ``looking-glass-client`` binary, which is used to display
frames from the guest. frames from the guest.
You can then :ref:`continue installing Looking Glass <client_install>`, or run You can then :ref:`continue installing Looking Glass <client_install>`, or run
@ -172,12 +172,12 @@ it directly from the build directory:
.. seealso:: .. seealso::
- :ref:`Client Installation <client_install>` - :ref:`Client installation <client_install>`
- :ref:`Client Usage <client_usage>` - :ref:`Client usage <client_usage>`
.. note:: .. note::
For users running GNOME on Wayland, you may want to enable libdecor when For users running GNOME on Wayland, you may want to enable ``libdecor`` when
building. building.
.. code:: bash .. code:: bash
@ -195,7 +195,7 @@ it directly from the build directory:
cmake -DENABLE_BACKTRACE=0 ../ cmake -DENABLE_BACKTRACE=0 ../
If you disable this and need support for crash, use ``gdb`` to obtain a If you disable this and need support for a crash, use ``gdb`` to obtain a
backtrace manually. backtrace manually.
.. _host_building: .. _host_building:

View file

@ -1,4 +1,4 @@
Frequently Asked Questions Frequently asked questions
########################## ##########################
General General

View file

@ -5,8 +5,8 @@ Installation
.. _libvirt: .. _libvirt:
libvirt/QEMU configuration: libvirt/QEMU configuration
--------------------------- --------------------------
This article assumes you already have a fully functional libvirt domain with This article assumes you already have a fully functional libvirt domain with
PCI passthrough working. PCI passthrough working.
@ -52,7 +52,7 @@ your virtual machine.
-object memory-backend-file,id=ivshmem,share=on,mem-path=/dev/shm/looking-glass,size=32M -object memory-backend-file,id=ivshmem,share=on,mem-path=/dev/shm/looking-glass,size=32M
The memory size (show as 32 in the example above) may need to be The memory size (show as 32 in the example above) may need to be
adjusted as per the :ref:`Determining Memory <libvirt_determining_memory>` adjusted as per the :ref:`Determining memory <libvirt_determining_memory>`
section. section.
.. warning:: .. warning::
@ -85,10 +85,10 @@ For example, for a resolution of 1920x1080 (1080p):
``1920 x 1080 x 4 x 2 = 16,588,800 bytes`` ``1920 x 1080 x 4 x 2 = 16,588,800 bytes``
``16,588,800 / 1024 / 1024 = 15.82 MB + 10 = 25.82 MB`` ``16,588,800 / 1024 / 1024 = 15.82 MiB + 10 = 25.82 MiB``
You must round this value up to the nearest power of two, which for the You must round this value up to the nearest power of two, which for the
provided example is 32MB. provided example is 32 MiB.
.. note:: .. note::
Increasing this value beyond what you need does not yield any performance Increasing this value beyond what you need does not yield any performance
@ -133,14 +133,14 @@ The shared memory file used by IVSHMEM is found in ``/dev/shm/looking-glass``.
By default, it is owned by QEMU, and does not give read/write permissions to By default, it is owned by QEMU, and does not give read/write permissions to
your user, which are required for Looking Glass to run properly. your user, which are required for Looking Glass to run properly.
You can use `systemd-tmpfiles` to create the file before running your VM, You can use ``systemd-tmpfiles`` to create the file before running your VM,
granting the necessary permissions which allow Looking Glass to use the file granting the necessary permissions which allow Looking Glass to use the file
properly. properly.
Create a new file ``/etc/tmpfiles.d/10-looking-glass.conf``, and populate it Create a new file ``/etc/tmpfiles.d/10-looking-glass.conf``, and populate it
with the following:: with the following::
#Type Path Mode UID GID Age Argument # Type Path Mode UID GID Age Argument
f /dev/shm/looking-glass 0660 user kvm - f /dev/shm/looking-glass 0660 user kvm -
@ -149,18 +149,18 @@ own.
.. _libvirt_spice_server: .. _libvirt_spice_server:
Keyboard/Mouse/Display/Sound Keyboard/mouse/display/audio
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Looking Glass makes use of the SPICE protocol to provide keyboard and mouse Looking Glass makes use of the SPICE protocol to provide keyboard and mouse
input, sound input and output, and display fallback. input, audio input and output, and display fallback.
.. note:: .. note::
The default configuration that libvirt uses is not optimal and must be The default configuration that libvirt uses is not optimal and must be
adjusted. Failure to perform these changes will cause input issues along adjusted. Failure to perform these changes will cause input issues along
with failure to support 5 button mice. with failure to support 5 button mice.
If you would like to use Spice to give you keyboard and mouse input If you would like to use SPICE to give you keyboard and mouse input
along with clipboard sync support, make sure you have a along with clipboard sync support, make sure you have a
``<graphics type='spice'>`` device, then: ``<graphics type='spice'>`` device, then:
@ -180,7 +180,7 @@ along with clipboard sync support, make sure you have a
`virtio-win <https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/>`_ `virtio-win <https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/>`_
in the guest in the guest
To enable Audio support add a standard Intel HDA audio device to your To enable audio support add a standard Intel HDA audio device to your
configuration as per below: configuration as per below:
.. code:: xml .. code:: xml
@ -306,7 +306,7 @@ Host application
The Looking Glass Host application captures frames from the guest OS using a The Looking Glass Host application captures frames from the guest OS using a
capture API, and sends them to the capture API, and sends them to the
:ref:`Client <client_install>`—be it on the host OS (hypervisor) or another :ref:`client <client_install>`—be it on the host OS (hypervisor) or another
Virtual Machine—through a low-latency transfer protocol over shared memory. Virtual Machine—through a low-latency transfer protocol over shared memory.
You can get the host program in two ways: You can get the host program in two ways:
@ -386,9 +386,9 @@ running ``looking-glass-host-setup.exe /?``.
Client application Client application
------------------ ------------------
The Looking Glass Client receives frames from the :ref:`Host <host_install>` to The Looking Glass client receives frames from the :ref:`host <host_install>` to
display on your screen. It also handles input, and can optionally share the display on your screen. It also handles input, and can optionally share the
system clipboard with your guest OS through Spice. system clipboard with your guest OS through SPICE.
First you must build the client from source, see :ref:`building`. Once you have First you must build the client from source, see :ref:`building`. Once you have
built the client, you can install it. Run the following as root:: built the client, you can install it. Run the following as root::

View file

@ -12,7 +12,7 @@ memory device on the host machine that supports dmabuf.
Prerequisites Prerequisites
------------- -------------
The linux kernel headers for your kernel version are required for building. The Linux kernel headers for your kernel version are required for building.
Install them with ``apt-get`` Install them with ``apt-get``
.. code:: bash .. code:: bash
@ -53,11 +53,11 @@ To install the module into DKMS, run
Loading Loading
~~~~~~~ ~~~~~~~
For VM → VM, simply modprobe the module:: For VM → VM, simply ``modprobe`` the module::
modprobe kvmfr modprobe kvmfr
For VM → host with dmabuf, modprobe with the parameter For VM → host with dmabuf, ``modprobe`` with the parameter
``static_size_mb``: ``static_size_mb``:
.. code:: bash .. code:: bash
@ -88,7 +88,7 @@ For VM → VM mode, run:
For VM → host mode with dmabuf, instead of creating a shared memory file, For VM → host mode with dmabuf, instead of creating a shared memory file,
load this module with the parameter ``static_size_mb``. For example, a load this module with the parameter ``static_size_mb``. For example, a
32 MB shared memory device can be created with: 32 MiB shared memory device can be created with:
.. code:: bash .. code:: bash
@ -96,7 +96,7 @@ load this module with the parameter ``static_size_mb``. For example, a
Multiple devices can be created by separating the sizes with commas. For Multiple devices can be created by separating the sizes with commas. For
example, ``static_size_mb=128,64`` would create two kvmfr devices: example, ``static_size_mb=128,64`` would create two kvmfr devices:
``kvmfr0`` would be 128 MB and ``kvmfr1`` would be 64 MB. ``kvmfr0`` would be 128 MB and ``kvmfr1`` would be 64 MiB.
.. note:: .. note::
@ -238,7 +238,7 @@ We can use the ``systemd-modules-load.service(8)`` service for this task.
Create the file ``/etc/modules-load.d/kvmfr.conf`` with the following Create the file ``/etc/modules-load.d/kvmfr.conf`` with the following
contents:: contents::
#KVMFR Looking Glass module # KVMFR Looking Glass module
kvmfr kvmfr
This will now run the next time you start your machine. This will now run the next time you start your machine.

View file

@ -23,7 +23,7 @@ The OBS plugin requires the following extra dependencies alongside the
:ref:`client's build :ref:`client's build
dependencies <installing_build_dependencies>`. dependencies <installing_build_dependencies>`.
- libobs-dev - ``libobs-dev``
Install this package with ``apt-get`` Install this package with ``apt-get``

View file

@ -26,7 +26,7 @@ The clipboard is not working
- **Is clipboard synchronization enabled?** - **Is clipboard synchronization enabled?**
- Before you can copy or paste content between the Guest and Host, - Before you can copy or paste content between the guest and host,
:ref:`clipboard :ref:`clipboard
synchronization <libvirt_clipboard_synchronization>` synchronization <libvirt_clipboard_synchronization>`
must be enabled. must be enabled.

View file

@ -3,7 +3,7 @@
Client usage Client usage
------------ ------------
**looking-glass-client** [\-\-help] [\-f] [\-F] [\-s] [\-S] [options...] **``looking-glass-client``** ``[--help] [-f] [-F] [-s] [-S] [options...]``
.. _client_cli_options: .. _client_cli_options:
@ -97,9 +97,9 @@ Configuration files
By default, Looking Glass will load config files from By default, Looking Glass will load config files from
the following locations: the following locations:
- /etc/looking-glass-client.ini - ``/etc/looking-glass-client.ini``
- ~/.looking-glass-client.ini - ``~/.looking-glass-client.ini``
- $XDG_CONFIG_HOME/looking-glass/client.ini (usually ~/.config/looking-glass/client.ini) - ``$XDG_CONFIG_HOME/looking-glass/client.ini`` (usually ``~/.config/looking-glass/client.ini``)
All config files are loaded in order. Duplicate entries override earlier ones. All config files are loaded in order. Duplicate entries override earlier ones.
This means you can set a system-wide configuration in This means you can set a system-wide configuration in
@ -108,7 +108,7 @@ your user in ``~/.looking-glass-client.ini``, which is overlayed on top of
the system-wide configuration. the system-wide configuration.
When first launched, the Looking-Glass client will create the folder When first launched, the Looking-Glass client will create the folder
$XDG_CONFIG_HOME/looking-glass/ if it does not yet exist. ``$XDG_CONFIG_HOME/looking-glass/`` if it does not yet exist.
The format of config files is the commonly known INI format, for example:: The format of config files is the commonly known INI format, for example::
@ -135,13 +135,13 @@ These include:
(see :ref:`client_config_widget`) (see :ref:`client_config_widget`)
You can also reposition and resize enabled widgets, like the FPS/UPS Display, You can also reposition and resize enabled widgets, like the FPS/UPS display,
and Performance Metrics. and performance metrics.
Enter and exit Overlay Mode with :kbd:`ScrLk` + :kbd:`O`. Enter and exit Overlay Mode with :kbd:`ScrLk` + :kbd:`O`.
:kbd:`ESC` can also be used to exit. (see :ref:`client_key_bindings`) :kbd:`ESC` can also be used to exit. (see :ref:`client_key_bindings`)
Modifications done to widgets in Overlay Mode are stored in Modifications done to widgets in overlay mode are stored in
``$XDG_CONFIG_HOME/looking-glass/imgui.ini``. ``$XDG_CONFIG_HOME/looking-glass/imgui.ini``.
Please do not manually edit this file while Looking Glass is running, Please do not manually edit this file while Looking Glass is running,
as your changes may be discarded. as your changes may be discarded.
@ -151,52 +151,52 @@ as your changes may be discarded.
Configuration widget Configuration widget
~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~
The Configuration Widget is accessible through the Overlay Mode. The The configuration widget is accessible through the overlay mode. The
widget has multiple tabs that allow setting a variety of modes and widget has multiple tabs that allow setting a variety of modes and
parameters for Looking Glass at runtime. parameters for Looking Glass at runtime.
Settings tab Settings tab
^^^^^^^^^^^^ ^^^^^^^^^^^^
- Performance Metrics: A toggle for the Performance Metrics Widget. - *Performance Metrics*: A toggle for the performance metrics widget.
Multiple graphs are available, and they will stack vertically. Multiple graphs are available, and they will stack vertically.
- EGL: Modify EGL features, such as the algorithm used for scaling, and - *EGL*: Modify EGL settings, such as the algorithm used for scaling, and
night vision mode. night vision mode.
Changes in the Settings tab are not persistent, and will change back to Changes in the settings tab are not persistent, and will be reset back to
their default values when the client is restarted. their default values when the client is restarted.
EGL filters tab EGL filters tab
^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^
The EGL Filters tab contains options for toggling, configuring, and ordering The EGL filters tab contains options for toggling, configuring, and ordering
post-processing filters. Each filter can be expanded to open its settings. post-processing filters. Each filter can be expanded to open its settings.
Filters can also be re-ordered by dragging them up or down. Filters are applied Filters can also be re-ordered by dragging them up or down. Filters are applied
from top to bottom, keep this in mind when ordering them, e.g applying CAS from top to bottom. Keep this in mind when ordering them -- for example,
before FSR might have different results than the reverse. Users are encouraged applying CAS before FSR might have different results than the reverse. Users
to experiment with the order and parameters to achieve optimal results. The are encouraged to experiment with the order and parameters to achieve optimal
currently available filters include: results. The currently available filters include:
- Downscaler: Filter for downscaling the host resolution. Can be used to undo - *Downscaler*: Filter for downscaling the host resolution. Can be used to undo
poor upscaling on the VM to better utilize AMD FSR (see below). The filter poor upscaling on the VM to better utilize AMD FSR (see below). The filter
has a pixel-size setting that is used to set the effective downscaling ratio, has a pixel-size setting that is used to set the effective downscaling ratio,
and a configurable interpolation algorithm. and a configurable interpolation algorithm.
- AMD FidelityFX Super Resolution (FSR): Spatial upscaling filter that works - *AMD FidelityFX Super Resolution (FSR)*: Spatial upscaling filter that works
on low resolution frames from the guest VM and intelligently upscales to a on low resolution frames from the guest VM and intelligently upscales to a
higher resolution. The filter sharpness is tunable, and displays the higher resolution. The filter sharpness is tunable, and displays the
equivalent AMD quality mode based on the resolution difference. equivalent AMD quality mode based on the resolution difference.
- AMD FidelityFX Contrast Adaptive Sharpening (CAS): Filter that - *AMD FidelityFX Contrast Adaptive Sharpening (CAS)*: Filter that
increases visual quality by applying a sharpening algorithm to the increases visual quality by applying a sharpening algorithm to the
video. CAS can sometimes restore detail lost in a typical upscaling video. CAS can sometimes restore detail lost in a typical upscaling
application. Has adjustable sharpness setting. application. Has adjustable sharpness setting.
The filter settings and order can be saved to presets so that it can be restored The filter settings and order can be saved to presets so that it can be restored
at a later time. As filter settings are usually application specific, multiple at a later time. As filter settings are usually application specific, multiple
presets can be defined for each case scenario. To save a preset, click on "Save presets can be defined for each case scenario. To save a preset, click on *"Save
preset as..." and enter a preset name. Presets are loaded by selecting them in preset as..."* and enter a preset name. Presets are loaded by selecting them in
the "Preset name" pull down. Presets are persistent and are stored on disk at the *Preset name* pull down. Presets are persistent and are stored on disk at
``$XDG_CONFIG_HOME/looking-glass/presets``. ``$XDG_CONFIG_HOME/looking-glass/presets``.
.. warning:: .. warning::
@ -213,127 +213,127 @@ the "Preset name" pull down. Presets are persistent and are stored on disk at
All command line options All command line options
~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~
The following is a complete list of options accepted by this application .. code-block::
+------------------------+-------+------------------------+-----------------------------------------------------------------------------------------+ +------------------------+-------+------------------------+-----------------------------------------------------------------------------------------+
| Long | Short | Value | Description | | Long | Short | Value | Description |
+------------------------+-------+------------------------+-----------------------------------------------------------------------------------------+ +------------------------+-------+------------------------+-----------------------------------------------------------------------------------------+
| app:configFile | -C | NULL | A file to read additional configuration from | | app:configFile | -C | NULL | A file to read additional configuration from |
| app:renderer | -g | auto | Specify the renderer to use | | app:renderer | -g | auto | Specify the renderer to use |
| app:license | -l | no | Show the license for this application and then terminate | | app:license | -l | no | Show the license for this application and then terminate |
| app:cursorPollInterval | | 1000 | How often to check for a cursor update in microseconds | | app:cursorPollInterval | | 1000 | How often to check for a cursor update in microseconds |
| app:framePollInterval | | 1000 | How often to check for a frame update in microseconds | | app:framePollInterval | | 1000 | How often to check for a frame update in microseconds |
| app:allowDMA | | yes | Allow direct DMA transfers if supported (see `README.md` in the `module` dir) | | app:allowDMA | | yes | Allow direct DMA transfers if supported (see `README.md` in the `module` dir) |
| app:shmFile | -f | /dev/shm/looking-glass | The path to the shared memory file, or the name of the kvmfr device to use, e.g. kvmfr0 | | app:shmFile | -f | /dev/shm/looking-glass | The path to the shared memory file, or the name of the kvmfr device to use, e.g. kvmfr0 |
+------------------------+-------+------------------------+-----------------------------------------------------------------------------------------+ +------------------------+-------+------------------------+-----------------------------------------------------------------------------------------+
+-------------------------+-------+------------------------+----------------------------------------------------------------------+ +-------------------------+-------+------------------------+----------------------------------------------------------------------+
| Long | Short | Value | Description | | Long | Short | Value | Description |
+-------------------------+-------+------------------------+----------------------------------------------------------------------+ +-------------------------+-------+------------------------+----------------------------------------------------------------------+
| win:title | | Looking Glass (client) | The window title | | win:title | | Looking Glass (client) | The window title |
| win:position | | center | Initial window position at startup | | win:position | | center | Initial window position at startup |
| win:size | | 1024x768 | Initial window size at startup | | win:size | | 1024x768 | Initial window size at startup |
| win:autoResize | -a | no | Auto resize the window to the guest | | win:autoResize | -a | no | Auto resize the window to the guest |
| win:allowResize | -n | yes | Allow the window to be manually resized | | win:allowResize | -n | yes | Allow the window to be manually resized |
| win:keepAspect | -r | yes | Maintain the correct aspect ratio | | win:keepAspect | -r | yes | Maintain the correct aspect ratio |
| win:forceAspect | | yes | Force the window to maintain the aspect ratio | | win:forceAspect | | yes | Force the window to maintain the aspect ratio |
| win:dontUpscale | | no | Never try to upscale the window | | win:dontUpscale | | no | Never try to upscale the window |
| win:intUpscale | | no | Allow only integer upscaling | | win:intUpscale | | no | Allow only integer upscaling |
| win:shrinkOnUpscale | | no | Limit the window dimensions when dontUpscale is enabled | | win:shrinkOnUpscale | | no | Limit the window dimensions when dontUpscale is enabled |
| win:borderless | -d | no | Borderless mode | | win:borderless | -d | no | Borderless mode |
| win:fullScreen | -F | no | Launch in fullscreen borderless mode | | win:fullScreen | -F | no | Launch in fullscreen borderless mode |
| win:maximize | -T | no | Launch window maximized | | win:maximize | -T | no | Launch window maximized |
| win:minimizeOnFocusLoss | | no | Minimize window on focus loss | | win:minimizeOnFocusLoss | | no | Minimize window on focus loss |
| win:fpsMin | -K | -1 | Frame rate minimum (0 = disable - not recommended, -1 = auto detect) | | win:fpsMin | -K | -1 | Frame rate minimum (0 = disable - not recommended, -1 = auto detect) |
| win:ignoreQuit | -Q | no | Ignore requests to quit (i.e. Alt+F4) | | win:ignoreQuit | -Q | no | Ignore requests to quit (i.e. Alt+F4) |
| win:noScreensaver | -S | no | Prevent the screensaver from starting | | win:noScreensaver | -S | no | Prevent the screensaver from starting |
| win:autoScreensaver | | no | Prevent the screensaver from starting when guest requests it | | win:autoScreensaver | | no | Prevent the screensaver from starting when guest requests it |
| win:alerts | -q | yes | Show on screen alert messages | | win:alerts | -q | yes | Show on screen alert messages |
| win:quickSplash | | no | Skip fading out the splash screen when a connection is established | | win:quickSplash | | no | Skip fading out the splash screen when a connection is established |
| win:overlayDimsDesktop | | yes | Dim the desktop when in interactive overlay mode | | win:overlayDimsDesktop | | yes | Dim the desktop when in interactive overlay mode |
| win:rotate | | 0 | Rotate the displayed image (0, 90, 180, 270) | | win:rotate | | 0 | Rotate the displayed image (0, 90, 180, 270) |
| win:uiFont | | DejaVu Sans Mono | The font to use when rendering on-screen UI | | win:uiFont | | DejaVu Sans Mono | The font to use when rendering on-screen UI |
| win:uiSize | | 14 | The font size to use when rendering on-screen UI | | win:uiSize | | 14 | The font size to use when rendering on-screen UI |
| win:jitRender | | no | Enable just-in-time rendering | | win:jitRender | | no | Enable just-in-time rendering |
| win:showFPS | -k | no | Enable the FPS & UPS display | | win:showFPS | -k | no | Enable the FPS & UPS display |
+-------------------------+-------+------------------------+----------------------------------------------------------------------+ +-------------------------+-------+------------------------+----------------------------------------------------------------------+
+------------------------------+-------+---------------------+----------------------------------------------------------------------------------+ +------------------------------+-------+---------------------+----------------------------------------------------------------------------------+
| Long | Short | Value | Description | | Long | Short | Value | Description |
+------------------------------+-------+---------------------+----------------------------------------------------------------------------------+ +------------------------------+-------+---------------------+----------------------------------------------------------------------------------+
| input:grabKeyboard | -G | yes | Grab the keyboard in capture mode | | input:grabKeyboard | -G | yes | Grab the keyboard in capture mode |
| input:grabKeyboardOnFocus | | no | Grab the keyboard when focused | | input:grabKeyboardOnFocus | | no | Grab the keyboard when focused |
| input:releaseKeysOnFocusLoss | | yes | On focus loss, send key up events to guest for all held keys | | input:releaseKeysOnFocusLoss | | yes | On focus loss, send key up events to guest for all held keys |
| input:escapeKey | -m | 70 = KEY_SCROLLLOCK | Specify the escape/menu key to use (use "help" to see valid values) | | input:escapeKey | -m | 70 = KEY_SCROLLLOCK | Specify the escape/menu key to use (use "help" to see valid values) |
| input:ignoreWindowsKeys | | no | Do not pass events for the windows keys to the guest | | input:ignoreWindowsKeys | | no | Do not pass events for the windows keys to the guest |
| input:hideCursor | -M | yes | Hide the local mouse cursor | | input:hideCursor | -M | yes | Hide the local mouse cursor |
| input:mouseSens | | 0 | Initial mouse sensitivity when in capture mode (-9 to 9) | | input:mouseSens | | 0 | Initial mouse sensitivity when in capture mode (-9 to 9) |
| input:mouseSmoothing | | yes | Apply simple mouse smoothing when rawMouse is not in use (helps reduce aliasing) | | input:mouseSmoothing | | yes | Apply simple mouse smoothing when rawMouse is not in use (helps reduce aliasing) |
| input:rawMouse | | no | Use RAW mouse input when in capture mode (good for gaming) | | input:rawMouse | | no | Use RAW mouse input when in capture mode (good for gaming) |
| input:mouseRedraw | | yes | Mouse movements trigger redraws (ignores FPS minimum) | | input:mouseRedraw | | yes | Mouse movements trigger redraws (ignores FPS minimum) |
| input:autoCapture | | no | Try to keep the mouse captured when needed | | input:autoCapture | | no | Try to keep the mouse captured when needed |
| input:captureOnly | | no | Only enable input via SPICE if in capture mode | | input:captureOnly | | no | Only enable input via SPICE if in capture mode |
| input:helpMenuDelay | | 200 | Show help menu after holding down the escape key for this many milliseconds | | input:helpMenuDelay | | 200 | Show help menu after holding down the escape key for this many milliseconds |
+------------------------------+-------+---------------------+----------------------------------------------------------------------------------+ +------------------------------+-------+---------------------+----------------------------------------------------------------------------------+
+------------------------+-------+-----------+---------------------------------------------------------------------+ +------------------------+-------+-----------+---------------------------------------------------------------------+
| Long | Short | Value | Description | | Long | Short | Value | Description |
+------------------------+-------+-----------+---------------------------------------------------------------------+ +------------------------+-------+-----------+---------------------------------------------------------------------+
| spice:enable | -s | yes | Enable the built in SPICE client for input and/or clipboard support | | spice:enable | -s | yes | Enable the built in SPICE client for input and/or clipboard support |
| spice:host | -c | 127.0.0.1 | The SPICE server host or UNIX socket | | spice:host | -c | 127.0.0.1 | The SPICE server host or UNIX socket |
| spice:port | -p | 5900 | The SPICE server port (0 = unix socket) | | spice:port | -p | 5900 | The SPICE server port (0 = unix socket) |
| spice:input | | yes | Use SPICE to send keyboard and mouse input events to the guest | | spice:input | | yes | Use SPICE to send keyboard and mouse input events to the guest |
| spice:clipboard | | yes | Use SPICE to synchronize the clipboard contents with the guest | | spice:clipboard | | yes | Use SPICE to synchronize the clipboard contents with the guest |
| spice:clipboardToVM | | yes | Allow the clipboard to be synchronized TO the VM | | spice:clipboardToVM | | yes | Allow the clipboard to be synchronized TO the VM |
| spice:clipboardToLocal | | yes | Allow the clipboard to be synchronized FROM the VM | | spice:clipboardToLocal | | yes | Allow the clipboard to be synchronized FROM the VM |
| spice:audio | | yes | Enable SPICE audio support | | spice:audio | | yes | Enable SPICE audio support |
| spice:scaleCursor | -j | yes | Scale cursor input position to screen size when up/down scaled | | spice:scaleCursor | -j | yes | Scale cursor input position to screen size when up/down scaled |
| spice:captureOnStart | | no | Capture mouse and keyboard on start | | spice:captureOnStart | | no | Capture mouse and keyboard on start |
| spice:alwaysShowCursor | | no | Always show host cursor | | spice:alwaysShowCursor | | no | Always show host cursor |
| spice:showCursorDot | | yes | Use a "dot" cursor when the window does not have focus | | spice:showCursorDot | | yes | Use a "dot" cursor when the window does not have focus |
+------------------------+-------+-----------+---------------------------------------------------------------------+ +------------------------+-------+-----------+---------------------------------------------------------------------+
+------------------------+-------+--------+-------------------------------------------------------------------------------+ +------------------------+-------+--------+-------------------------------------------------------------------------------+
| Long | Short | Value | Description | | Long | Short | Value | Description |
+------------------------+-------+--------+-------------------------------------------------------------------------------+ +------------------------+-------+--------+-------------------------------------------------------------------------------+
| audio:periodSize | | 2048 | Requested audio device period size in samples | | audio:periodSize | | 2048 | Requested audio device period size in samples |
| audio:bufferLatency | | 13 | Additional buffer latency in milliseconds | | audio:bufferLatency | | 13 | Additional buffer latency in milliseconds |
| audio:micDefault | | prompt | Default action when an application opens the microphone (prompt, allow, deny) | | audio:micDefault | | prompt | Default action when an application opens the microphone (prompt, allow, deny) |
| audio:micShowIndicator | | yes | Display microphone usage indicator | | audio:micShowIndicator | | yes | Display microphone usage indicator |
+------------------------+-------+--------+-------------------------------------------------------------------------------+ +------------------------+-------+--------+-------------------------------------------------------------------------------+
+------------------+-------+-------+---------------------------------------------------------------------------+ +------------------+-------+-------+---------------------------------------------------------------------------+
| Long | Short | Value | Description | | Long | Short | Value | Description |
+------------------+-------+-------+---------------------------------------------------------------------------+ +------------------+-------+-------+---------------------------------------------------------------------------+
| egl:vsync | | no | Enable vsync | | egl:vsync | | no | Enable vsync |
| egl:doubleBuffer | | no | Enable double buffering | | egl:doubleBuffer | | no | Enable double buffering |
| egl:multisample | | yes | Enable Multisampling | | egl:multisample | | yes | Enable Multisampling |
| egl:nvGainMax | | 1 | The maximum night vision gain | | egl:nvGainMax | | 1 | The maximum night vision gain |
| egl:nvGain | | 0 | The initial night vision gain at startup | | egl:nvGain | | 0 | The initial night vision gain at startup |
| egl:cbMode | | 0 | Color Blind Mode (0 = Off, 1 = Protanope, 2 = Deuteranope, 3 = Tritanope) | | egl:cbMode | | 0 | Color Blind Mode (0 = Off, 1 = Protanope, 2 = Deuteranope, 3 = Tritanope) |
| egl:scale | | 0 | Set the scale algorithm (0 = auto, 1 = nearest, 2 = linear) | | egl:scale | | 0 | Set the scale algorithm (0 = auto, 1 = nearest, 2 = linear) |
| egl:debug | | no | Enable debug output | | egl:debug | | no | Enable debug output |
| egl:noBufferAge | | no | Disable partial rendering based on buffer age | | egl:noBufferAge | | no | Disable partial rendering based on buffer age |
| egl:noSwapDamage | | no | Disable swapping with damage | | egl:noSwapDamage | | no | Disable swapping with damage |
| egl:scalePointer | | yes | Keep the pointer size 1:1 when downscaling | | egl:scalePointer | | yes | Keep the pointer size 1:1 when downscaling |
| egl:preset | | NULL | The initial filter preset to load | | egl:preset | | NULL | The initial filter preset to load |
+------------------+-------+-------+---------------------------------------------------------------------------+ +------------------+-------+-------+---------------------------------------------------------------------------+
+----------------------+-------+-------+---------------------------------------------+ +----------------------+-------+-------+---------------------------------------------+
| Long | Short | Value | Description | | Long | Short | Value | Description |
+----------------------+-------+-------+---------------------------------------------+ +----------------------+-------+-------+---------------------------------------------+
| opengl:mipmap | | yes | Enable mipmapping | | opengl:mipmap | | yes | Enable mipmapping |
| opengl:vsync | | no | Enable vsync | | opengl:vsync | | no | Enable vsync |
| opengl:preventBuffer | | yes | Prevent the driver from buffering frames | | opengl:preventBuffer | | yes | Prevent the driver from buffering frames |
| opengl:amdPinnedMem | | yes | Use GL_AMD_pinned_memory if it is available | | opengl:amdPinnedMem | | yes | Use GL_AMD_pinned_memory if it is available |
+----------------------+-------+-------+---------------------------------------------+ +----------------------+-------+-------+---------------------------------------------+
+-----------------------+-------+-------+-------------------------+ +-----------------------+-------+-------+-------------------------+
| Long | Short | Value | Description | | Long | Short | Value | Description |
+-----------------------+-------+-------+-------------------------+ +-----------------------+-------+-------+-------------------------+
| wayland:warpSupport | | yes | Enable cursor warping | | wayland:warpSupport | | yes | Enable cursor warping |
| wayland:fractionScale | | yes | Enable fractional scale | | wayland:fractionScale | | yes | Enable fractional scale |
+-----------------------+-------+-------+-------------------------+ +-----------------------+-------+-------+-------------------------+
.. _host_usage: .. _host_usage:
@ -343,7 +343,7 @@ Host usage
By default the host application will simply work however there are some By default the host application will simply work however there are some
configurable options available. While the host application will accept command configurable options available. While the host application will accept command
line arguments just as the client will it is more convenient to create the line arguments just as the client will it is more convenient to create the
`looking-glass-host.ini` file with the desired configuration options. ``looking-glass-host.ini`` file with the desired configuration options.
This file must be placed in the same directory that the Looking Glass host This file must be placed in the same directory that the Looking Glass host
application was installed for it to be found and used by the application application was installed for it to be found and used by the application
@ -366,7 +366,7 @@ however this can be changed via the ini file with the following configuration:
[app] [app]
capture=<INTERFACE> capture=<INTERFACE>
Where `<INTERFACE>` is one of `dxgi` or `nvfbc` Where ``<INTERFACE>`` is one of ``dxgi`` or ``nvfbc``
.. _host_capture_dxgi: .. _host_capture_dxgi:
@ -386,12 +386,12 @@ the cursor directly, as such titles that do not use a mouse (most FPV games)
are not affected. are not affected.
The other drawback of this API is the overall system overhead, however this can The other drawback of this API is the overall system overhead, however this can
be mitigated by using the DirectX 12 back end. Please be aware though that this be mitigated by using the DirectX 12 backend. Please be aware though that this
back end is not experimental because it's new, but rather it's a slight backend is not experimental because it's new, but rather it's a slight
abuse/misuse of the DXGI API and allows us to bypass some windows internals. abuse/misuse of the DXGI API and allows us to bypass some Windows internals.
To enable the DirectX 12 back end the following configuration needs to be added To enable the DirectX 12 backend the following configuration needs to be added
to the `looking-glass-host.ini` configuration: to the ``looking-glass-host.ini`` configuration:
.. code:: ini .. code:: ini
@ -403,7 +403,7 @@ to the `looking-glass-host.ini` configuration:
d3d12CopySleep=5 d3d12CopySleep=5
disableDamage=false disableDamage=false
The option `d3d12CopySleep` is to work around the lack of locking this misuse The option ``d3d12CopySleep`` is to work around the lack of locking this misuse
of the API allows and you will need to tune this value to what suits your of the API allows and you will need to tune this value to what suits your
hardware best. The default value is 5ms as this should work for most, lowing hardware best. The default value is 5ms as this should work for most, lowing
it below 2ms is doubtful to be of practical use to anyone. If this value is too it below 2ms is doubtful to be of practical use to anyone. If this value is too
@ -412,25 +412,25 @@ a window around on the Windows desktop.
.. note:: .. note::
Lowering d3d12CopySleep can improve the UPS however the UPS metric makes Lowering d3d12CopySleep can improve the UPS however the UPS metric makes
little sense when using the d3d12 back end as if this value is too low little sense when using the d3d12 backend as if this value is too low
unchanged frames will be doubled up. unchanged frames will be doubled up.
The `disableDamage` option may be needed to avoid screen corruption however The ``disableDamage`` option may be needed to avoid screen corruption. Note
please note that this will increase the bandwidth required and in turn the that this will increase the bandwidth required and in turn the overall load on
overall load on your system. your system.
The DXGI capture interface also offers a feature that allows downsampling the The DXGI capture interface also offers a feature that allows downsampling the
captured frames in the guest GPU before transferring them to shared memory. captured frames in the guest GPU before transferring them to shared memory.
This feature is very useful if you are super scaling for better picture quality This feature is very useful if you are super scaling for better picture quality
and wish to reduce system memory pressure. and wish to reduce system memory pressure.
The configuration for this is fairly straight forward and is defined as set of The configuration for this is fairly straightforward and is defined as set of
rules to determine when to perform this downsampling. The format is as follows: rules to determine when to perform this downsampling. The format is as follows:
.. code:: ini .. code:: ini
[dxgi] [dxgi]
downssample=RULE1,RULE2,RULE3 downsample=RULE1,RULE2,RULE3
The rules are written as follows: The rules are written as follows:
@ -438,7 +438,7 @@ The rules are written as follows:
(>|>=)(WIDTH)x(HEIGHT):(LEVEL) (>|>=)(WIDTH)x(HEIGHT):(LEVEL)
The `LEVEL` is the fractional scale level where 1 = 50%, 2 = 25%, 3 = 12.5%. The ``LEVEL`` is the fractional scale level where 1 = 50%, 2 = 25%, 3 = 12.5%.
**Examples:** **Examples:**
@ -470,7 +470,7 @@ system load and lower latency capture, and does not suffer from the mouse
motion stutter issues that DXGI suffers from. motion stutter issues that DXGI suffers from.
To enable it's usage use the following configuration in the To enable it's usage use the following configuration in the
`looking-glass-host.ini` file: ``looking-glass-host.ini`` file:
.. code:: ini .. code:: ini
@ -492,7 +492,7 @@ rules to determine when to perform this downsampling. The format is as follows:
.. code:: ini .. code:: ini
[nvfbc] [nvfbc]
downssample=RULE1,RULE2,RULE3 downsample=RULE1,RULE2,RULE3
The rules are written as follows: The rules are written as follows:
@ -515,5 +515,5 @@ The rules are written as follows:
downsample=3840x2160:1920x1080,3840x2400:1920x1200 downsample=3840x2160:1920x1080,3840x2400:1920x1200
This capture interface also looks for and reads the value of the system This capture interface also looks for and reads the value of the system
environment variable `NVFBC_PRIV_DATA` if it has been set, documentation on environment variable ``NVFBC_PRIV_DATA`` if it has been set, documentation on
it's usage however is unavailable. its usage however is unavailable.

View file

@ -1,3 +1,4 @@
backend
backtrace backtrace
borderless borderless
BigNavi BigNavi
@ -31,6 +32,7 @@ libvirt
linux linux
LookingGlass LookingGlass
memballoon memballoon
MiB
microstutters microstutters
mingw mingw
mipmapping mipmapping