Windows-Spiele auf einem Linux-GPU-Server mit Wine ausführen und streamen
Für ein Windows-Programm braucht man nicht immer Windows. Wine führt Windows-Software direkt unter Linux aus, und DXVK übersetzt Direct3D 9, 10 und 11 nach Vulkan. Auf einem Linux-Server mit GPU heißt das: keine Windows-Lizenz, ein schlankeres System und die GPU-Treiber, die Linux mitbringt. Wir haben es mit der Windows-Version von SuperTuxKart getestet, einem bekannten freien Open-Source-Spiel, auf einem Linux-GPU-Server mit einer Intel UHD 770.
Die Ergebnisse auf einen Blick
- Das Windows-Spiel läuft mit Wine und wird von der GPU gerendert (OpenGL 4.6, Mesa, Intel UHD 770).
- Rund 95 fps in 1080p ohne V-Sync, während eine andere virtuelle Maschine die GPU gleichzeitig nutzte.
- V-Sync ausschalten: Der Bildschirm des Servers ist virtuell, V-Sync lässt das Spiel nur auf ihn warten. Moonlight begrenzt die Bildrate auf Ihrer Seite.
- Sunshine läuft ebenfalls auf dem Linux-Server: Es nimmt den Bildschirm auf und kodiert H.264 oder HEVC auf der GPU (VA-API), bereit für Moonlight.
- Kein Xvfb für Spiele: Dort läuft OpenGL auf der CPU (9 fps in unserem ersten Direct3D-Test unter Xvfb). Nehmen Sie stattdessen einen Wayland-Compositor ohne Bildschirm (siehe unten).
Testaufbau
| Element | Wert |
|---|---|
| Server | Linux (Debian 13), 4 vCPU, Intel UHD 770 (geteilte GPU), Kernel 7.3, Mesa 25.0 |
| Wine | Wine 10.0 und DXVK 2.6 (Debian-Pakete) |
| Anzeige | sway im Headless-Modus + Xwayland, 1920 × 1080 bei 60 Hz |
| Spiel | SuperTuxKart 1.5, Windows-Version, eingebauter Benchmark (aufgezeichnetes Rennen, 38 s), OpenGL-Renderer |
1. Ein Bildschirm für einen Server ohne Bildschirm
Spiele brauchen eine Anzeige. Auf einem Server liegt Xvfb nahe, ein virtueller X-Server, aber dessen OpenGL wird von der CPU gerendert: Unser erster Direct3D-Test unter Xvfb lief mit 9 fps. Die Lösung ist sway, ein Wayland-Compositor, der ohne Monitor läuft und mit der GPU rendert, dazu Xwayland für X11-Programme wie 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 &
Prüfen Sie, ob OpenGL auf der GPU läuft:
DISPLAY=:0 glxinfo -B | grep renderer
# OpenGL renderer string: Mesa Intel(R) UHD Graphics 770 (ADL-S GT1)
2. Das Windows-Spiel 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
Das Log des Spiels bestätigt die GPU:
IrrDriver: OpenGL renderer: Mesa Intel(R) UHD Graphics 770 (ADL-S GT1)
Bei Direct3D-Spielen übernimmt DXVK dieselbe Aufgabe über Vulkan: In unserem Test fand es die
Intel(R) UHD Graphics 770 (ADL-S GT1).
3. Ergebnisse
| SuperTuxKart (Windows-Version), 1080p | Typisch | Meist stabil | Konstant |
|---|---|---|---|
| Wine unter Linux, V-Sync aus, GPU geteilt mit einer anderen ausgelasteten VM | 95 bis 98 fps | — | — |
| Windows 11 auf derselben GPU, V-Sync aus, zum Vergleich | 111 fps | 96 fps | 69 fps |
Unter Wine läuft das Spiel fast so schnell wie unter Windows, auch mit geteilter GPU (Windows-Werte aus unserem Test mit Windows 11 und Sunshine).
Schalten Sie V-Sync im Spiel aus. Mit V-Sync wartet das Spiel auf die nächste Bildwiederholung des Bildschirms, bevor es ein Bild zeigt. Hier ist der Bildschirm virtuell und niemand schaut darauf: Ein Spiel, das eine Bildwiederholung knapp verpasst, wartet auf die nächste und verliert grundlos Bilder. Überlassen Sie die Begrenzung der Bildrate lieber Moonlight (standardmäßig 60 fps).
4. Streaming mit Sunshine und Moonlight
Sunshine gibt es auch für Linux: Es nimmt den sway-Bildschirm auf und kodiert auf der GPU. Mit
capture = wlr und encoder = vaapi in der Konfiguration fand es:
Found H.264 encoder: h264_vaapi [vaapi]
Found HEVC encoder: hevc_vaapi [vaapi]
Koppeln Sie Moonlight auf Ihrem Computer, Smartphone oder TV-Box, und Sie spielen das Windows-Spiel,
das auf dem Linux-Server läuft. Öffnen Sie die Weboberfläche von Sunshine über einen SSH-Tunnel
(ssh -L 47990:localhost:47990 root@your-server), statt sie ins Internet zu stellen.
Wine oder Windows?
| Wine unter Linux | Windows 11 | |
|---|---|---|
| Preis | inklusive | einmalig 10 € (Option) |
| Kompatibilität | sehr gut für ältere und Indie-Spiele; prüfen Sie ProtonDB oder die Wine AppDB | alles, was unter Windows läuft |
| Anti-Cheat | meist nicht | in einer virtuellen Maschine oft abgelehnt |
| Einrichtung | sway + Wine + Sunshine | Windows-Treiber + virtueller Bildschirm + Sunshine |
Beginnen Sie mit Wine, wenn Ihr Spiel dafür bekannt ist, damit zu laufen; nehmen Sie Windows, wenn nicht, oder wenn Sie weitere Windows-Werkzeuge brauchen.
Systeme, die ab Werk spielbereit sind. Die Systeme, die wir standardmäßig installieren, sind bereits dafür eingerichtet: Debian 13 mit aktuellem Kernel (7.3), den Intel-GPU-Treibern und Mesa (OpenGL, Vulkan, VA-API-Videokodierung) sowie Windows 11 (Option) mit dem Intel-Grafiktreiber und GPU-beschleunigtem Remotedesktop. Keine Treibersuche: Spiel und Sunshine installieren und loslegen.
Welches Angebot?
Spiele brauchen gleichzeitig CPU- und GPU-Zeit. Wir empfehlen iGPU Power (4 vCPU, 14 GB RAM, doppelter GPU-Anteil von Start): Ohne V-Sync belegte dieses Spiel unter Windows allein mehr als die Hälfte der 2 vCPU von iGPU Start, und wenn andere Server die GPU nutzen, bekommt Power doppelt so viel GPU-Zeit, also weniger Bildeinbrüche. iGPU Start reicht für 2D-Spiele und leichte Werkzeuge.
Zu den Angeboten, iGPU Power ab 29,99 € netto pro Monat.