Personalised OS Template for GPU Passthrough
When you're building a custom template to enable GPU support, follow the guidance set out below.
Bear in mind there are two principal ways GPU passthrough gets used:
- Machine Learning (no physical display required, for example OpenCL, etc.)
- Image processing (think OBS Studio, Blender, video editing, Multiverse presentations, and similar workloads)
The Machine Learning path is lighter on configuration (the display doesn't need to be driven by the GPU), but we'll walk through the complete process so both scenarios are covered.
Supported GPUs
If you run DaDesktop on your own hardware, or you've asked us to purchase specific cards for a private server, here are some things to keep in mind.
Our testing primarily targets DaDesktop with the AMD Radeon RX 6000 family (particularly the RX 6400) and Nvidia RTX cards. Generally, models released before 2018 aren't supported.
Integrated GPUs found in Ryzen 7/9 chips and Intel iGPUs should work without trouble, though we don't run automated tests against them.
DD Node side
The dadesktop_npnode_deploy/modules/build-os-template path contains scripts that tailor a Linux guest so the GPU can act as the primary display and allow seamless switching between GPU-accelerated machines and CPU-rendered screens.
Guest Settings
Make sure the "support_qemu" flag inside /var/lib/kvm/templatename/sysinfo.json is set to false, so you can connect to the VNC console within the guest – qemu's VNC can't render the passthrough GPU display.
Testing
Method 1: vblank_mode=0 glxgears
Method 2:
/apps/dd-guest/check-gpu
Windows guest settings without a physical monitor attached (the typical case)
We lean on IddSampleDriver to spin up a display adapter and a virtual monitor inside the Windows 10 template. Just install it when your GPU has no physical screen connected.
-
Extract IddSampleDriver into the c:\IddSampleDriver folder
-
Install the certificate
-
Install the driver itself
-
Head to "Display Settings" – you'll spot several displays. Open "Advanced display settings". Commonly Display 2 or 3 labelled "Linux FHD" is the virtual display we've introduced. Take note of that display number – call it N – then return to the "Select and rearrange displays" area, pick display N, and under the "Multiple displays" section choose "Show only on N" when the option exists, and set it as the main display. Adjust its resolution accordingly.
-
If you can't spot a display named "Linux FHD":
Navigate to "Device Manager" → "Display Adapters" → "IddSampleDriver Device": right-click and enable the device. (You can disable it whenever you're not using the virtual display.)
-
If there's a display called "AMD vDisplay", usually Display 2:
it'll run slowly and you can "Disconnect this display" if the option's available.
(Select Display x, go to the "Multiple displays" area, open the drop-down menu and pick the Disconnect this display choice.)
-
A display named "Qemu Monitor", typically Display 1:
You're also free to "Disconnect this display" if the option is present.