Frequently Asked Questions

General

How does Looking Glass work?

This YouTube video featured created by the author features a detailed explanation:

https://www.youtube.com/watch?v=U44lihtNVVM

Can I feed the VM directly into OBS?

Looking Glass now features a functional OBS plugin, which acts as another Looking Glass client, but instead feeds the captured frames into OBS.

Why is my UPS (Updates Per Second) so low?

There are several reasons why this can happen, the most common are your capture resolution, or refresh rate. The windows capture methods currently struggle to capture high resolutions under certain circumstances.

Another cause can be how the game or application you are running is configured. Because of the way windows integrate with the WDM (Windows Desktop Manager), running applications in “Full Screen” mode may—in some cases—cause a large performance penalty. Try switching to windowed full-screen mode, the difference in performance can be like night and day.

Some titles do some strange things at early initialization that cause capture performance issues. One such title is the Unigine Valley benchmark where the capture rate is limited to 1/2 the actual rate. For an unknown reason to both myself and the Unigine developers a simple task switch (alt+tab) in and out resolves the issue. This is not a Looking Glass bug.

Is my GPU supported?

Your guest GPU almost certainly supports DXGI. Use DxDiag to confirm that you have support for WDDM 1.2 or greater.

The server-side (guest) probing error “Capture is not possible, unsupported device or driver” indicates NVidia duplication has failed, not that DXGI has failed. You can fix the error by specifying -c DXGI

Why do I need Spice if I don’t want a Spice display device?

You don’t need Display Spice enabled. Looking Glass has a Spice client built in to provide some conveniences, but you can disable it with the “-s” argument.

Note

Without Spice, Looking Glass cannot send mouse/keyboard input to the guest and clipboard synchronization is disabled.

Where is the host application for Linux?

The “Windows host application” is actually the display server, which runs in the guest VM. The only thing that needs to run in your Linux host OS is the looking-glass-client application.

You can build a version of the host for Linux as well.

Mouse

The mouse is jumpy, slow, laggy when using SPICE

Please be sure to install the SPICE guest tools from https://www.spice-space.org/download.html#windows-binaries.

The mouse doesn’t stay aligned with the host.

This is intentional. The host’s mouse no longer interacts with your operating system, and is completely captured by Looking Glass.

The cursor position doesn’t update until I click

Make sure you have removed the Virtual Tablet Device from the Virtual Machine. Due to the design of Windows, absolute pointing devices break applications/games that require cursor capture, and as such Looking Glass does not support them.

Audio

Looking Glass does not support audio routing. The preferred solution is to pass through QEMU’s audio to your host’s audio system.

Another popular solution is to use Scream, a virtual sound card which pipes audio through the network. A guide for setting up scream is available on the wiki: https://looking-glass.io/wiki/Using_Scream_over_LAN

Windows

NvFBC (NVIDIA Capture API) doesn’t work

NvFBC is only supported on professional-grade GPUs, and will not function on consumer-grade cards like those from the GeForce series.

The screen stops updating when left idle for a time

Windows is likely turning off the display to save power, you can prevent this by adjusting the Power Options in the control panel.

Host

Where is the log?

The log file for the host application is located at:

%ProgramData%\Looking Glass (host)\looking-glass-host.txt

You can also find out where the file is by right clicking on the tray icon and selecting “Log File Location”.

The log file for the looking glass service is located at:

%ProgramData%\Looking Glass (host)\looking-glass-host-service.txt

This is useful for troubleshooting errors related to the host application not starting.

High priority capture using DXGI and Secure Desktop (UAC) capture support

By default Windows gives priority to the foreground application for any GPU work which causes issues with capture if the foreground application is consuming 100% of the available GPU resources. The looking glass host application is able to increase the kernel GPU thread to realtime priority which fixes this, but in order to do so it must run as the SYSTEM user account. To do this, Looking Glass needs to run as a service. This can be accomplished by either using the NSIS installer which will do this for you, or you can use the following command to Install the service manually:

looking-glass-host.exe InstallService

To remove the service use the following command:

looking-glass-host.exe UninstallService

This will also enable the host application to capture the secure desktop which includes things like the lock screen and UAC prompts.

Why does the host require Administrator privileges?

This is intentional for several reasons.

  1. NvFBC requires a system wide hook to correctly obtain the cursor position as NVIDIA decided to not provide this as part of the cursor updates.

  2. NvFBC requires administrator level access to enable the interface in the first place. (WIP)

  3. DXGI performance can be improved if we have this. (WIP)

NvFBC (NVIDIA Frame Buffer Capture)

Why can’t I compile NvFBC support into the host?

You must download and install the NVidia Capture SDK. Please note that by doing so you will be agreeing to NVIDIA’s SDK License agreement.

-Geoff

Why doesn’t Looking Glass work with Scream over IVSHMEM?

Warning

Using IVSHMEM with Scream may interfere with Looking Glass, as they may try to use the same device.

Please do not use the IVSHMEM plugin for Scream. To fix this issue, use the default network transfer method. The IVSHMEM method induces additional latency that is built into its implementation. When using VirtIO for a network device the VM is already using a highly optimized memory copy anyway so there is no need to make another one.

If you insist on using IVSHMEM for Scream—despite its inferiority to the default network implementation—the Windows Host Application can be told what device to use. Create a looking-glass-host.ini file in the same directory as the looking-glass-host.exe file. In it, you can use the os:shmDevice option like so:

[os]
shmDevice=1