vga-passthrough with kvm/qemu on optimus-capable laptop

The reason why you need a dedicated video output is that there is no way the host OS can currently access the output framebuffer of the card assigned to the guest OS.

VT-d restricts the host from accessing/memory mapping the graphics memory directly.

Normally, a modified driver (Nvidia Optimus or Bumblebee on Linux) exposes the results of a window running on the Nvidia card as a texture to the Intel graphics, which then blends it onto your desktop environment.

This requires the drivers of both graphics cards to be modified and communicating/sharing memory, something which isn't possible between host and guest OS as far as I've been able to find.

With a dedicated output port, the card assigned to the virtual machine is allowed to be blisfully unaware of this virtualization mumbo-jumbo, and normal drivers can be used which display the output on a physical output port, just like it would when running on bare metal.

A dedicated output port is, as far as I've encountered them in the wild, only available on desktops or Lenovo ThinkPads with dual graphics (the latter of which wire some of the output ports directly to the Nvidia, messing up Bumblebee support on Linux in the process).


I could be mistaken but doesn't KVM currently only work with discrete video cards (the GT 750M is an Optimus card)?

REF: http://www.linux-kvm.org/wiki/images/b/b3/01x09b-VFIOandYou-small.pdf