Windows-games draaien op een Linux GPU-server met Wine, en ze streamen
Je hebt niet altijd Windows nodig om een Windows-programma te draaien. Wine voert Windows-software rechtstreeks uit op Linux, en DXVK vertaalt Direct3D 9, 10 en 11 naar Vulkan. Op een Linux-server met GPU betekent dat: geen Windows-licentie, een lichter systeem en de GPU-drivers die bij Linux horen. We hebben het getest met de Windows-versie van SuperTuxKart, een bekende gratis en open-source game, op een Linux GPU-server met een Intel UHD 770.
De resultaten in het kort
- De Windows-game draait met Wine en wordt door de GPU gerenderd (OpenGL 4.6, Mesa, Intel UHD 770).
- Ongeveer 95 fps in 1080p zonder V-Sync, terwijl een andere virtuele machine tegelijk de GPU gebruikte.
- Zet V-Sync uit: het scherm van de server is virtueel, V-Sync laat de game er alleen op wachten. Moonlight begrenst de framerate aan jouw kant.
- Sunshine draait ook op de Linux-server: het neemt het scherm op en codeert in H.264 of HEVC op de GPU (VA-API), klaar voor Moonlight.
- Gebruik geen Xvfb voor games: de OpenGL daarvan draait op de CPU (9 fps in onze eerste Direct3D-test onder Xvfb). Gebruik in plaats daarvan een Wayland-compositor zonder scherm (zie hieronder).
Testopstelling
| Onderdeel | Waarde |
|---|---|
| Server | Linux (Debian 13), 4 vCPU, Intel UHD 770 (gedeelde GPU), kernel 7.3, Mesa 25.0 |
| Wine | Wine 10.0 en DXVK 2.6 (Debian-pakketten) |
| Beeld | sway in headless-modus + Xwayland, 1920 × 1080 op 60 Hz |
| Game | SuperTuxKart 1.5, Windows-versie, ingebouwde benchmark (opgenomen race, 38 s), OpenGL-renderer |
1. Een scherm voor een server zonder scherm
Games hebben een beeldscherm nodig. Op een server ligt Xvfb voor de hand, een virtuele X-server, maar de OpenGL daarvan wordt door de CPU gerenderd: onze eerste Direct3D-test onder Xvfb haalde 9 fps. De oplossing is sway, een Wayland-compositor die zonder monitor kan draaien en met de GPU rendert, plus Xwayland voor X11-programma’s zoals Wine:
apt install sway xwayland wine wine64 dxvk-wine64 mesa-vulkan-drivers
mkdir -p ~/.config/sway
cat > ~/.config/sway/config <<'EOF'
output HEADLESS-1 resolution 1920x1080 position 0,0
default_border none
xwayland enable
EOF
export XDG_RUNTIME_DIR=/run/user/$(id -u)
WLR_BACKENDS=headless WLR_RENDERER=gles2 WLR_LIBINPUT_NO_DEVICES=1 \
WLR_RENDER_DRM_DEVICE=/dev/dri/renderD128 sway &
Controleer of OpenGL op de GPU draait:
DISPLAY=:0 glxinfo -B | grep renderer
# OpenGL renderer string: Mesa Intel(R) UHD Graphics 770 (ADL-S GT1)
2. De Windows-game starten
export DISPLAY=:0 WINEPREFIX=~/.wine-games
wineboot -i
dxvk-setup install --prefix "$WINEPREFIX" # Direct3D 9/10/11 -> Vulkan
cd SuperTuxKart-1.5-win/stk-code/build-x86_64/bin
wine supertuxkart.exe --screensize=1920x1080 --fullscreen
Het logbestand van de game bevestigt de GPU:
IrrDriver: OpenGL renderer: Mesa Intel(R) UHD Graphics 770 (ADL-S GT1)
Voor Direct3D-games doet DXVK hetzelfde via Vulkan: in onze test vond het de
Intel(R) UHD Graphics 770 (ADL-S GT1).
3. Resultaten
| SuperTuxKart (Windows-versie), 1080p | Typisch | Grotendeels stabiel | Constant |
|---|---|---|---|
| Wine op Linux, V-Sync uit, GPU gedeeld met een andere drukke VM | 95 tot 98 fps | — | — |
| Windows 11 op dezelfde GPU, V-Sync uit, ter vergelijking | 111 fps | 96 fps | 69 fps |
Onder Wine draait de game bijna even snel als onder Windows, zelfs met een gedeelde GPU (Windows-cijfers uit onze test met Windows 11 en Sunshine).
Zet V-Sync uit in de game. Met V-Sync wacht de game op de volgende verversing van het scherm voordat hij een beeld toont. Hier is het scherm virtueel en kijkt niemand ernaar: een game die een verversing net mist, wacht op de volgende en verliest voor niets frames. Laat Moonlight de framerate begrenzen (standaard 60 fps).
4. Streamen met Sunshine en Moonlight
Sunshine heeft een Linux-versie die het sway-scherm opneemt en op de GPU codeert. Met
capture = wlr en encoder = vaapi in de configuratie vond het:
Found H.264 encoder: h264_vaapi [vaapi]
Found HEVC encoder: hevc_vaapi [vaapi]
Koppel Moonlight op je computer, telefoon of tv-box, en je speelt de Windows-game die op de
Linux-server draait. Open de webinterface van Sunshine via een SSH-tunnel
(ssh -L 47990:localhost:47990 root@your-server) in plaats van hem op internet open te zetten.
Wine of Windows?
| Wine op Linux | Windows 11 | |
|---|---|---|
| Prijs | inbegrepen | eenmalig €10 (optie) |
| Compatibiliteit | zeer goed voor oudere en indiegames; kijk op ProtonDB of in de Wine AppDB | alles wat op Windows draait |
| Anti-cheat | meestal niet | vaak geweigerd in een virtuele machine |
| Installatie | sway + Wine + Sunshine | Windows-driver + virtueel scherm + Sunshine |
Begin met Wine als bekend is dat je game ermee werkt; kies Windows als dat niet zo is, of als je andere Windows-tools nodig hebt.
Systemen die direct klaar zijn om te gamen. De systemen die we standaard installeren zijn hier al op ingericht: Debian 13 met een recente kernel (7.3), de Intel-GPU-drivers en Mesa (OpenGL, Vulkan, VA-API-videocodering), en Windows 11 (optie) met de grafische driver van Intel en Extern bureaublad dat op de GPU rendert. Geen drivers zoeken: installeer je game en Sunshine, en speel.
Welk abonnement?
Games hebben CPU- en GPU-tijd tegelijk nodig. We raden iGPU Power aan (4 vCPU, 14 GB RAM, twee keer het GPU-aandeel van Start): zonder V-Sync gebruikte deze game onder Windows in zijn eentje meer dan de helft van de 2 vCPU van iGPU Start, en als andere servers de GPU gebruiken, krijgt Power twee keer zoveel GPU-tijd, dus minder haperingen. iGPU Start is genoeg voor 2D-games en lichte tools.
Bekijk de abonnementen, iGPU Power vanaf €29,99 per maand excl. btw.