Return to

Looking Glass - Changelog



Please note that if you are running Windows Server, etc… I believe signed drivers are not enough, they also have to be WHQL certified.


At the moment the current bottleneck is the copy performance of KVM/Qemu, it is not a looking glass or IVSHMEM problem. When the frame size exceeds 4MB (around 1200p), the VM’s memory copy performance becomes horrendous. I have been trying to get input from AMD and the Qemu devs on this problem but it seems everyone is willing to just ignore it.

Until this problem is fixed there is little that can be done.

You can prove this fault by just writing a program that just performs a simple memory -> memory copy, no IVHSHMEM, or capture.


I have been in touch with an engineer at AMD about the Vega 10 reset defect, they have assigned an engineer to the problem and are investigating. It was confirmed that it is a firmware problem with the card and can not be fixed in the kernel without help from the hardware team.


I finally found some time to dig into why the Mouse freezes when using Spice. See, for more information.


Those willing to run the unstable master version and are using AMD hardware on the client may get a substantial performance improvement as I just added GL_AMD_pinned_memory support. On my test system I am seeing a substantial improvement in frame rate.

Edit: A kernel module has also been added to allow VM->VM communication.


I am pleased to announce that VM->VM performance is now fixed, if you want to run using this method you need to load the kernel module for the IVSHMEM device otherwise your performance will be terrible.


Getting very close to an A11 release, most outstanding issues have been resolved including a License incompatibility issue with OpenSSL preventing project packaging. As such the dependencies have now changed, instead of libssl-dev you now require nettle-dev and libgmp-dev to build the current unstable version.


The current state of VM to VM sync:


The client just got UNIX socket support for lower latency input, to use specify the port as 0 and the host as the socket, ie:

./looking-glass-client -P 0 -h /path/to/socket.sock


This is fixed:


At this time wayland is not tested or supported.


Because with vsync off your client is trying to render as fast as possible even if there is nothing new to render which pegs your CPU and/or GPU at 100%, impacting performance of other things, such as your VM, and starving threads for cursor updates, etc. A11 includes a FPS limiter to combat this for those that insist on running with vsync off.

Please note that VSync doesn’t exist just to reduce screen tearing, it’s main feature is to prevent your system going nuts trying to do extra work for no reason. If you must run without vsync, anything greater then 2x the native refresh rate of your screen is useless, wastes power, generates excess heat, and impacts performance in other areas.

In short, VSync is a good thing and before people turn it off they should learn what it is for, what it does, and why. Once you are rendering at the refresh rate of your monitor, anything more is just useless.


Alpha 11 has been released:


Just a note to anyone else experiencing the windows host program crashing at launch with no error output. Be sure you have configured the CPU in qemu/libvirt as the host program requires SSE support. The default “QEMU Virtual CPU” does not expose the support to the guest and as such the host program will fail to operate. It is recommended to set the CPU to “host-passthrough” to expose all the features of your CPU to the guest so it can take full advantage of them.


NvFBC has been disabled until beta release, it is too much work to maintain two APIs while the code is still in flux.


Some changes have been made over the last 48 hours, one of which is an update to the host exe that improves capture performance dramatically. 4K 60Hz should be entirely viable now, once it has had some extra testing and I am sure it’s running stable I will release A12.


Be aware though that turning off driver signing enforcement breaks most modern game anti-hacking software (PunkBuster, BattlEye, VAC, to name a few)…


Thanks for the heads up. I know that PUBG also blocks VMWare specifically, but still works fine with QEMU.


It was brought to my attention that I made an error in the memory copy code, I had used AVX operations when only SSE2 was required. Lastest version of the host in GitHub now doesn’t require AVX and should be more guest CPU compatible.


Looking Glass just got a new website! A huge thanks to Level1Techs for dropping a theme on my lap!