Blog

Windows-games op een Linux GPU-server met Wine, en ze streamen

De Windows-versie van SuperTuxKart met Wine op een Linux-cloudserver met Intel UHD 770: ongeveer 95 fps in 1080p zonder V-Sync, gestreamd met Sunshine en Moonlight.

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 Windows-versie van SuperTuxKart draait met Wine op de Linux-server, gerenderd door de Intel UHD 770 (5 seconden).

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

OnderdeelWaarde
ServerLinux (Debian 13), 4 vCPU, Intel UHD 770 (gedeelde GPU), kernel 7.3, Mesa 25.0
WineWine 10.0 en DXVK 2.6 (Debian-pakketten)
Beeldsway in headless-modus + Xwayland, 1920 × 1080 op 60 Hz
GameSuperTuxKart 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).

Windows-versie van SuperTuxKart draait met Wine op een Linux-server, gerenderd door de Intel UHD 770
Schermafbeelding van het sway-scherm zonder monitor, gemaakt met grim: de Windows-game, met Wine in 1080p.

3. Resultaten

SuperTuxKart (Windows-versie), 1080pTypischGrotendeels stabielConstant
Wine op Linux, V-Sync uit, GPU gedeeld met een andere drukke VM95 tot 98 fps——
Windows 11 op dezelfde GPU, V-Sync uit, ter vergelijking111 fps96 fps69 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 LinuxWindows 11
Prijsinbegrepeneenmalig €10 (optie)
Compatibiliteitzeer goed voor oudere en indiegames; kijk op ProtonDB of in de Wine AppDBalles wat op Windows draait
Anti-cheatmeestal nietvaak geweigerd in een virtuele machine
Installatiesway + Wine + SunshineWindows-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.