Return to

Looking Glass - Guides, Help and Support



It doesn’t matter what you think, the entire community voted on the name and Looking Glass was the clear winner.

Everyone, it’s done, it’s named, stop bringing this up, it will not have it’s name changed. Looking Glass is a physcal thing too, which is why the name was used as it is appropriate…


Again I will say this, if VGA Passthrough works, then Looking Glass will work… the details of how to setup passthrough are not covered here, look elsewhere. I believe there is even a thread or three on here about it.


Thanks, I’m new to the forum and didn’t know it was voted.


Hey, I hope I’m not cluttering this thread by asking a few questions. I found it through the announcement video. I’m not attempting this at the moment, but I have a few questions about the application/usage:

  • It seemed like this was proposed as “Dedicated GPU-to-Dedicated GPU”, via the PCIe bus. Maybe I’m just dense, but I was wondering (and unsure) whether or not this could be done with a Dedicated GPU and a host using their CPU’s integrated Graphics/APU. Also, are AMD APUs able to work with Freesync?

  • I did a little bit of peeking around for single-slot that had a lot of video outputs. Are there any ideal candidates for host video cards, so we can connect a bunch of monitors to the host and hand them over to VMs when we’re doing that? Obviously Freesync/G-Sync are ideal.

  • How significant of a GPU is needed to display what the other one is rendering? Can a pushover workstation card (one that can handle a 1080p/4K desktop) display what a top-of-the-line card is rendering? My assumption is yes, but I don’t have a precise understanding of what all’s going on in here.

I think I had a few other questions but I’m blanking on them at the moment. Again, I hope I’m not cluttering the thread! Thanks!


All your questions are answered in this thread already but…



GTX680 is ideal for four monitors, it is how I am running. But you need one GPU per guest, so if you want to run 4 VMs, you need four more video cards.

Just something with PCIe 4x or better so that you get the bus bandwidth, it can be a very primitive card.


Feature enhancement in latest git:

OpenGL splitMouse

This was previously hard coded in but is now disabled by default.

This feature when enabled draws mouse updates to the front buffer instead of waiting for full frame updates from the guest in an attempt to achieve better mouse input synchronization with the hardware cursor on the physical GPU. However on some hardware pipelines the excessive calls to glFlush causes a GPU pipeline stall and the mouse can become “jumpy”.

The down side to this is the current frame will be re-drawn on every mouse movement even if there was not a new frame from the guest, this will mean that the frame sync with the guest can be lost and there is a higher chance of frames being dropped. To avoid dropping frames you can turn vsync off at the side effect of screen tearing, it is up to you.

To turn this back on use the command line option below appropriate depending on the renderer you are using:

-o opengl:splitmouse=1 or -o opengl-basic:splitmouse=1

If you are primarily playing games or using applications that use a software, no mouse, or a rendered mouse, and the windows desktop experience doesn’t worry you too much this feature should be enabled for best performance if you wish to retain frame sync with the guest.

You can evaluate the effects of this feature by using the MPRT test (Avoid this test if you are prone to epilepsy) while moving the cursor around.


Feature enhancement in latest git:

OpenGL preventBuffer

This was previously hard coded but is now optional.

This feature when enabled (default) will ensure the video card never buffers more then one frame, this is needed to ensure the lowest latency possible as we are fed new frames from the host. This sometimes however is not desirable if the user is not playing games or using applications that require such low latency where a smoother more fluid user experience is required (ie: CAD applications). If disabled the video driver may buffer up to three frames depending on your hardware.

It is however possible to still achieve low latency with this feature turned off by also turning off vsync where a much higher frame rate will be displayed by the FPS monitor.

Please experiment to find out which combination of options work best for your particular needs and hardware.


Another minor update,

FPS display now shows the UPS (Updates Per Second) from the guest separate to the local rendering FPS.

Also for those that are interested, at current I get the best responsiveness out of the following on my GTX 680:

/bin/looking-glass-client -o opengl:preventBuffer=0 -o opengl:vsync=1 -o opengl:splitMouse=1


It’s official, we now have an IRC channel on FreeNode, the prior owner (gnomethrower) has kindly relinquished the channel to us for Looking Glass.

Join me on #LookingGlass on the FreeNode network :smiley:


Alpha Version 8 Release

This update is quite large as it completely changes the way that rendering is performed so as to prevent holding up the capture API on the host. It decouples the capture rate from the client’s frame rate.

Note: Due to time constraints I have not yet updated the OpenGL-Basic renderer for the new API and as such it is disabled for the moment. I plan to integrate the basic renderer into the standard one and have an option to enable the basic mode when I get some more time.

Windows application needs to be updated, see attached build


Just as an aside, We wrote a guide for people building a gaming PC specifically for passthrough that retains compatibility and easy setup over at our new news site:

Might be useful for newcomers that got interested in the subject because of looking glass.


Well I guess I will wait for a new release. A7 was awesome, A8 give me bad performance and my pointer is acting odd. There is some parts of the screen I can’t reach (it goes back to my linux before the actual end of the desktop). I am not competent enough to know if that’s related to your note about not updating OpenGL-Basic yet.

What is curious is that I can’t rollback to A7 (using git or downloading sources from the release page). Compiling from the git tag a7 actually give me a8, quite strange…

But thanks again for your work, I see a bright future in this project and it’s still alpha after all !

Oh and btw, is there an option like -v to print the version ? Did not find it…


The cursor issue is known… how bad is the performance, please elaborate. And what GPUs are you using?

Did you make clean?

Version is printed on launch, ie:

[I] main.c:641 | run | Looking Glass (a8-0-gec6c35010b)


Thanks for your answer.

For the cursor I know there is known issues about it but it was solved in a7 using the arguments you posted earlier to start the client.

By performance I mean the general feeling, it’s not as fluid as it was before. Probably something related to the args I guess ?

And concerning the compilation, yes I did make clean before. And something weird (and that’s why I asked you about the -v) is that using .zip for a7 release on github, building and then running it :

[I]               main.c:648  | run                            | Looking Glass ()
[I]               main.c:725  | run                            | Initialized OpenGL
[I]            ivshmem.c:154  | ivshmem_connect                | RAM Size : 16777216

No version printed here.


No cursor changes have been made since a5, I simply pointed out where the possible scaling issues were.

Yes, it can’t get the git release information from the .zip as it’s not a git repository. I will address this in a future version.

A8 changes the protocol, and will not run with an A7 client, nor will an A8 client run with an A7 host. If you have the a7 host and it’s working, then you’re on the a7 client.


What you could do is show the version in -h like some other programs do, you might not always want to run the program and just want to know the version. It’s not a huge deal but it wouldn’t take away anything, nor would it add another option if you print it in the help screen.


I did a little video showing off Overwatch running through Looking Glass, recorded with OBS with VAAPI H.264 encoder. I love Looking Glass! I am getting some framedrops while recording, but when OBS is not running, it’s quite smooth!


Please note:


Alpha Version 9 Release

  • Adds multi threaded memory copy which helps with high resolution (4K) performance.
  • Performance improvements to DXGI DD
  • Improved client CPU utilization, doesn’t cause Xorg to hang randomly anymore.

Windows application needs to be updated, see attached build


LG sure is shattering devember.

Haha see what I did there?