The Continuing Saga of Virtualizing Windows

When I moved away from OS X, I did so knowing there would be some pesky apps I would not be able to find good Linux equivalents for. Essentially most anything related to audio, photography, and video editing. Yes apps do exist and I continually evaluate them (Davinci Resolve on Linux is getting close!) But for getting stuff done, I resigned myself to using Windows for some of these things. Some of these apps historically were hard to virtualize (such as Ableton Live since it commands low latency) but I’ve had ok success using Lightroom in a Windows virtual machine. The problem has been latency of the UI. When using something like VirtualBox or VMWare Player, the latency is passable but noticeable and sometimes frustrating when I’m trying to make precise adjustments to curves.

One thing I’ve been thinking about is using IOMMU/PCI Passthrough. I had a space video card I was borrowing from a friend so last night on a whim I threw it in my machine and gave it a go. Turns out, once setup, it works pretty damn well! Lightroom is much much faster. Native speed? Maybe not quite but it honestly became sort of hard to tell. The problem here is manging the Windows and Linux environments. The typical solution is to use a KVM, which seems like a funky solution given it’s a KVM to the same computer. But it would work – only problem is ones that support multiple monitors are expensive and I do have the occasional need to look at photos using my smaller (but much more color accurate) second monitor.

Enter Looking Glass. While it’s maybe not quite ready for general use, it helps solve the problem of needing a KVM while also providing super fast graphical performance to the VM. It works by duplicating the framebuffer using Linux shared memory. You can find more info here. Of note you still need to dedicate a video card to the VM but the performance is very very good.

None of these options were as convenient as using VMWare Player because I can jump in and out of the VM using virtual desktops on Linux. But it may be a good compromise to avoid having to boot back and forth into Windows. For the moment though, I am sort of debating about doing my heavy lifting while in Windows directly. It does give me focus time doing that – it’s just often annoying since inevitably Windows wants to update when I want to do something useful.

The future of desktop virtualization looks bright though – Looking Glass, I hope, is the start of some amazing things to come!