Beta 2 Release Candidate 4
Changes since RC3:
- The host application can now install and run as a service removing the need for PsExec or a scheduled task to start the application.
- There is now a NSIS installer for the host application which installs the service and will handle seamless upgrades without the need to uninstall prior versions.
- The host application now runs with
High scheduler priority
- The host application will now stop capture and go to sleep if there are no subscribers (clients).
- The host application no longer opens the log file but instead shows it’s location. This is to prevent the elevated process from being abused to run processes as the
SYSTEM user account.
- The client framebuffer copy spinlock is less aggressive preventing CPU stalls on some systems due to starving the system scheduler.
- Installing the spice guest tools no longer breaks mouse support.
I (Geoffrey McRae) am the primary developer behind this project and I have invested thousands of hours of development time into it.
If you like this project and find it useful and would like to help out you can support me directly using the following platforms.
@gnif You’re on a roll!!!
Installer works absolutely great and eliminates all the hacks I had to write in PowerShell for seamless upgrades. The seamless upgrade works perfectly - a few seconds of purple glass screen and the session restarts with the new, updated host service.
Thank @TheCakeIsNaOH, a ton of work was invested by him to get the NSIS installer script off the ground too
a few seconds of purple glass screen and the session restarts with the new, updated host service.
Wait till you see how nice it works on a system reboot
I ran B2 RC3 and then RC4 all day yesterday and unfortunately I had to go back to B1 this morning.
There’s a lot to like in the new beta, namely:
- 3D graphics are as smooth as I could ask for, especially considering my lowly IGP host. Almost no tearing, no hitching. (I can’t add another graphics adapter due to motherboard PCIe lane limitations)
- Running the client with -k, I see solid >50 : 60 refresh rates. Update rate never drops below 50 except when there were no updates to display.
However I had to go back to B1 because I use Looking Glass in a professional environment (CAD / CAM / CAE) and need to get work done. I’m used to the B1 issues, they’re mostly cosmetic not functional. I noted the following issues before reverting this morning:
- Client randomly stops refreshing, typically every 2-10 minutes. Seems to be loosely associated with vm window update activity - i.e. client refresh keeps working when vm is idle. Nothing in output log linked to this, the client is still running, refresh just stops. Restarting the client resolves the issue until the next refresh stop in 2-10 minutes.
- In the windows VM, actuating the mouse wheel in both up and down results in down behavior, both in 3D CAD zoom & in scrolling browsers, text windows, etc. (UPDATE: This is happening in B1 so apparently it’s something else) (UPDATE2: I traced this to the fact that I was running B1 as superuser where the mouse wheel works correctly but mouse wheel is broken when I’m running as a normal-privilege user. Uncertain if it’s looking-glass related or not.)
- Although 3D refresh behavior is very good now, 2D behavior is similar to B1 or worse. Mouse pointer isn’t smooth (visual estimate is maybe 10-20Hz refresh) & dragging windows around is similarly choppy.
- Keyboard input lag (probably related to #3) is really bad. When typing text in a window, there can be a 2-3 second delay between when a key is pressed and when it’s displayed. This is intermittent. When it’s happening I can type ‘12345’ before seeing ‘1’ displayed. (This issue and #1 are deal-killers for me and forced me to revert)
- Cut & paste seemed to be broken; at least switching out of the client to other Linux windows, copying text, switching back into the client window and pasting didn’t seem to work.
- Ghost-frames (lost last frame update) is different. Better in some ways but still present.
- Mouse-capture (Server mode: on/off) behavior changed for the worse. I run the client exclusively in full-screen mode (-F option) and I’ve gotten used to hitting scroll-lock when starting the client the first time. Now I need to hit scroll-lock three times in order to get a reliable mouse pointer.
- Probably related to #3, there’s now a very reproducible diagonal tear in displayed frames when playing video.
*note, yes, when switching from rc3 to rc4 I disabled the frame server scheduled task and ran the new installer instead.
I think the new version would work great in a gaming environment where there’s usually a constant screen refresh. My issues seem to all be in the Windows desktop environment where refresh rate often drops to 0. My use case is probably a little atypical but I use Looking Glass all day every day and hammer it hard with a lot of unusual non-game cases.
It’s nice to see the progress. I think with a little more work on the edge-cases this would be a workable solution for more typical IGP + GPU hardware setups. This could be a very big deal and the missing key-component in delivering a user-friendly (turn-key) ‘Windows+GPU on Linux’ solution that could become very popular and help fight the Linux-on-Windows endrun travesty that Microsoft is strategically using to break client-pc Linux with a good Windows-on-Linux solution that could help end the Windows PC monopoly. GPU-enabled apps (mostly games) are the ‘killer app’ and one place where unfortunately it’s true that Windows > Linux.
Any mouse-related issues are not nor can not be LG related. Mouse wheel scroll direction, etc… has nothing to do with the host application or if it’s running privileged or not. It’s all QEMU /Spice related.
Are you running the client with any options? OpenGL/EGL? etc.
Cut & paste code has not changed since it’s inception, any issues with it are spice/qemu related, or other.
This is an ongoing issue that is continually being worked on. Cat and mouse type game.
The logic here also has not changed, again something else is messing with it if you’re having issues.
The client doesn’t run with VSYNC enabled by default, either turn it on, or turn on tear free or your equivalent in Xorg.
Not at all, I use it the same way. The refresh rate is a minimum 60fps simply to keep the mouse responsive, but it’s allowed to exceed it if there are more frequent updates, it does not run at a constant rate at all. You can adjust this with the
-K parameter if you like.
Thanks for responding @gnif. If I can’t work things out I’ll post on a separate support thread.
Update is working perfectly. New install process is way more friendly and i especially like the default high priority.
Overall really happy with B2-RC4
Graphics and performance are good, install is awesome. I think all my nagging issues are spice related, but even they are minor, I’m hoping for some advice on them if possible:
Really good mouse usage without capture, and almost perfect with capture. Bi-directional copy-paste is working consistently. Mouse scroll wheel works smoothly. Middle click works.
-no forward / back on mouse.
-no key repeating of any kind, which is hugely annoying for backspace and arrow keys.
If those can be fixed please advise!
FYI I’m using Arch linux with r9 290 and vfio kernel + reset patch and windows 10 with rx5700XT.
The SPICE protocol doesn’t support > 3 button mice.
This is a VM configuration issue, make sure you have the VirtIO keyboard attached.
As @gnif suggested, I can confirm that key repeat works fine for all keys on my VM.
Does anyone know if it is already possible to resize the Looking Glass window to the actual VM screen size? Like when I have a higher resolution in the VM then the LG window the pixels are shrunk and the screen gets blurry, same in the opposite way. It would be really awesome for working in the LG windows when I would be able to set the resolution to say 1600x1200 and could get a clear view by resizing the LG window to the actual host size that 1600x1200 would need. If not this would be a great feature.
I’m not aware of such ability. From my basic understanding of the application, the LG host application is a simple piece that dumps the frames into shared memory. What you are looking for (from what I understand) is a host dynamic resize based on the client window. I will leave the feasibility of such feature to @gnif, but would mention to approach it carefully as resizing the host window carries implications to how the applications that run on the host render. I’m actually still salivating at a small window on my Linux system running MS FlightSim 2020 in high resolution . This would not work if LG will auto-resize the host.
The client application already supports this. Actually sorry, if I understand you, you want the client to resize it’s window to the resolution on resolution switch?
This is really tricky to explain. Based on the resolution in the VM and the size of the client window the pixels in the client window can either be larger or smaller than the actual pixels of my display.
I basically want the behaviour I have with a Spice display. The pixels of the VM are actually the same size as the pixels on my display, so neither compressed nor stretched, and the window is the size and aspect ratio of the resolution I choose in the VM.
The most simple explanation would be changing the resolution in a VM and hitting the “View -> Resize to VM” button in virt-manager.
I am asking for this feature since gaming is perfectly fine using fullscreen in LG, but doing actual work means using it in windowed mode, setting a certain resolution in the VM and trying to resize the LG client window so it is not too blurry.
I checked your github if I can help or do that on my own, but I really do not have any experience using C as a programming language.
I’m not sure if this is related to the latest RC-version or so. But I’ve downloaded the latest version from the page (
B2-rc4-0-g969effedde), and it’s working great. I actually think it’s working better than ever before…
The only thing I can’t get to work, is Fullscreen Borderless “target-mode” so it’s not minimizing the Looking Glass window, if i move my mouse to another screen.
I’ve created the
/home/exetico/.looking-glass-client.inifile, and all other things works great:
But, by using element on my screen no. 1, Looking Glass Client on screen no. 2 is minizing
And oh, I’m on the latest version of Manjaro (KDE-edition). All other programs with borderless fullscreen works as they should. They’re not minizing, if I’m using programs on screen no. 1, while having the fullscreen borderless program on screen no. 2. A good example is Minecraft, or other programs (Wine games and so…)
I finally managed to pass though my Intel Graphics Card, instead of my dedicated - so now i really want to fix this issue… I guess it’s the only one still hanging on my checklist
Bump - If it’s working? I’m not sure if I’m allowed to do it, but I think my question is relevant for more than a few people?