Steam et Proton sur un serveur cloud GPU, streamés avec Sunshine et Moonlight
Le Steam Deck et la nouvelle Steam Machine de Valve font tourner des jeux Windows sous Linux grâce à Proton, la version de Wine maintenue par Valve. Le même logiciel fonctionne sur un serveur Linux en data center : installez Steam, laissez Proton lancer vos jeux Windows sur le GPU du serveur, et jouez sur n’importe quel écran avec Sunshine (sur le serveur) et Moonlight (chez vous). Nous l’avons testé sur un serveur Linux GPU équipé d’une Intel UHD 770.
Les résultats en bref
- Le client Steam démarre sur un serveur sans écran : environ 3 minutes entre le premier lancement et la fenêtre de connexion, sur un écran Wayland virtuel rendu par le GPU.
- Proton fait tourner le jeu Windows sur le GPU : 85 à 96 fps en 1080p (V-Sync coupée) dans le benchmark de SuperTuxKart, proche de Wine (environ 95 fps) et de Windows 11 (111 fps) sur le même GPU.
- Le streaming avec Sunshine ne ralentit pas le jeu : 83 à 95 fps pendant un flux 1080p à 60 fps vers Moonlight, 9,3 ms de traitement sur le serveur en moyenne, aucune image perdue.
- Nous ne pouvions pas nous connecter à Steam pour ce test : Proton a donc été lancé avec umu-launcher, l’outil qui exécute le Proton de Valve sans le client Steam. Avec Steam, vous vous connectez avec votre propre compte et activez Steam Play.
- Pour jouer, prenez iGPU Power : avec la part de GPU d’iGPU Start, pendant que d’autres serveurs utilisaient le GPU, le même benchmark tombait à 67 à 84 fps.
Configuration du test
| Élément | Valeur |
|---|---|
| Serveur | Linux (Debian 13), 4 vCPU (comme iGPU Power), 10 Go de RAM, Intel UHD 770 (GPU partagé), noyau 7.3, Mesa 25.0 |
| Affichage | sway en mode headless + Xwayland, 1920 × 1080, rendu par le GPU |
| Steam | paquet Debian steam-installer (client Steam, contrib/non-free) |
| Proton | umu-launcher 1.4.4 (release GitHub), qui a téléchargé UMU-Proton 10.0-4 et le Steam Linux Runtime 3.0 |
| Jeu | SuperTuxKart 1.5, version Windows, benchmark intégré (course enregistrée, 38 s), rendu OpenGL, V-Sync coupée |
| Streaming | Sunshine 2026.914 sur le serveur (capture Wayland, H.264 encodé par le GPU via VA-API), Moonlight 6.2 sur un second serveur Linux, 1080p 60 fps |
| Réseau | client et serveur dans le même data center : sur Internet, ajoutez la latence de votre connexion |
D’autres machines virtuelles utilisaient fortement le GPU partagé pendant tout le test (entre deux tiers et 87 % du temps GPU quand notre serveur était au repos) : les chiffres ci-dessous sont ceux d’un GPU partagé chargé, pas d’un GPU vide.
1. Un écran pour Steam sur un serveur
Steam a besoin d’un affichage et refuse de tourner en root. Nous avons créé un utilisateur normal et lancé sway, un compositeur Wayland qui fonctionne sans écran et dessine avec le GPU, plus Xwayland pour Steam et les jeux Windows (Xvfb ferait le rendu sur le CPU) :
dpkg --add-architecture i386
apt install sway xwayland steam-installer mesa-vulkan-drivers mesa-vulkan-drivers:i386 \
libgl1-mesa-dri:i386 intel-media-va-driver-non-free
# en tant qu'utilisateur de jeu :
mkdir -p ~/.config/sway
printf 'output HEADLESS-1 resolution 1920x1080\nxwayland enable\n' > ~/.config/sway/config
WLR_BACKENDS=headless WLR_RENDERER=gles2 WLR_LIBINPUT_NO_DEVICES=1 \
WLR_RENDER_DRM_DEVICE=/dev/dri/renderD128 sway &
DISPLAY=:0 steam &
Au premier lancement, Steam télécharge et met à jour son client (1,4 Go dans
~/.local/share/Steam), puis affiche la fenêtre de connexion, environ 3 minutes 20 secondes après le
premier démarrage.
Avec votre propre compte : connectez-vous (via Moonlight ou un bureau à distance la première fois),
puis dans Steam → Paramètres → Compatibilité, activez Steam Play pour tous les autres titres
et choisissez une version de Proton. Les jeux Windows s’installent et se lancent alors comme des jeux
Linux. Pour jouer à la manette depuis le canapé, lancez Steam en mode Big Picture
(steam -gamepadui), qui est aussi l’interface de la Steam Machine.
2. Proton sans compte Steam : umu-launcher
Se connecter à Steam n’était pas possible pour ce test : nous avons utilisé umu-launcher, le lanceur utilisé par Lutris et Heroic pour exécuter Proton en dehors de Steam. Il lance un jeu Windows avec Proton dans le même conteneur Steam Linux Runtime que Steam :
export WINEPREFIX=~/prefixes/stk GAMEID=umu-default
./umu-run supertuxkart.exe --screensize=1920x1080 --fullscreen --benchmark
Au premier lancement, umu-launcher a téléchargé UMU-Proton 10.0-4 (1,4 Go décompressé) et le Steam Linux Runtime 3.0 « sniper » (800 Mo), puis créé le préfixe Windows (900 Mo), en moins d’une minute avec la connexion du serveur. Le journal du jeu confirme que Proton dessine sur le GPU :
IrrDriver: OpenGL renderer: Mesa Intel(R) UHD Graphics 770 (ADL-S GT1)
IrrDriver: OpenGL version string: 4.6 (Core Profile) Mesa 25.0.7
3. Résultats
V-Sync coupée dans le jeu (swap-interval-vsync="0" dans le config.xml de SuperTuxKart) : l’écran
du serveur est virtuel, et la V-Sync ne fait qu’obliger le jeu à l’attendre.
| SuperTuxKart (version Windows), 1080p, Proton | Typical | Mostly stable | Steady |
|---|---|---|---|
| Part de GPU d’iGPU Power, 2 passages | 85 à 96 fps | 70 à 83 fps | 52 à 69 fps |
| Part de GPU d’iGPU Power, en streaming vers Moonlight, 2 passages | 83 à 95 fps | 58 à 75 fps | 44 à 58 fps |
| Part de GPU d’iGPU Start, 4 passages | 67 à 84 fps | 59 à 71 fps | 45 à 61 fps |
Pour comparaison, sur le même GPU : environ 95 fps avec Wine et 111 fps sous Windows 11. Proton est un Wine enrichi par Valve ; pour un jeu OpenGL comme celui-ci, la vitesse est la même.
Le jeu utilisait en moyenne environ 10 % des 4 vCPU, environ 30 % avec Sunshine qui capture et encode en même temps. Le serveur entier utilisait 3,2 Go de RAM pendant le test (sway, jeu, Sunshine).
4. Streaming avec Sunshine et Moonlight
Sunshine pour Linux capture l’écran sway et encode sur le GPU. Sa configuration :
capture = wlr
encoder = vaapi
adapter_name = /dev/dri/renderD128
Il lui faut le pilote média Intel (intel-media-va-driver-non-free) ; sans lui, Sunshine ne trouve
aucun encodeur. Avec :
Creating encoder [h264_vaapi]
vaapi vendor: Intel iHD driver for Intel(R) Gen Graphics - 25.2.3
Nous avons appairé un client Moonlight installé sur un second serveur Linux du même data center et relevé ses statistiques pendant la partie :
| Statistique Moonlight (1080p, H.264, 60 fps) | Valeur |
|---|---|
| Images reçues et affichées | 59,8 fps |
| Traitement sur le serveur (capture + encodage), min / moyenne / max | 4,2 / 9,3 / 14,8 ms |
| Images perdues (réseau ou gigue) | 0 % |
| Latence réseau (même data center) | 1 ms |
| Temps de décodage côté client | 0,29 ms |
Ouvrez l’interface web de Sunshine par un tunnel SSH (ssh -L 47990:localhost:47990 utilisateur@votre-serveur)
plutôt que de l’exposer sur Internet. Sunshine pour Linux propose d’office une entrée « Steam Big
Picture » à choisir dans Moonlight. Votre latence totale dépendra surtout de votre connexion Internet
jusqu’au serveur (Allemagne) : une bonne fibre en Europe ajoute en général 10 à 30 ms.
Les limites à connaître
- Anti-triche : beaucoup de jeux en ligne avec anti-triche refusent Proton ou les machines virtuelles. Vérifiez sur ProtonDB avant d’acheter un jeu pour cet usage.
- C’est un GPU intégré : parfait pour les jeux indépendants, les jeux anciens et les jeux 2D/3D des années 2010, pas pour les gros jeux AAA récents en 1080p.
- Son : le serveur n’a pas de carte son. Pour avoir le son dans Moonlight, lancez PipeWire ou PulseAudio dans la session de jeu ; nous n’avons pas testé le son ici.
Des systèmes prêts pour le jeu dès l’installation. Les systèmes que nous installons par défaut sont déjà optimisés pour cela : Debian 13 avec un noyau récent (7.3), les pilotes GPU Intel et Mesa (OpenGL, Vulkan, encodage vidéo VA-API), et Windows 11 (option) avec le pilote graphique Intel et le Bureau à distance rendu sur le GPU. Aucun pilote à chercher : installez votre jeu et Sunshine, et jouez.
Quelle offre ?
Nous recommandons iGPU Power (4 vCPU, 14 Go de RAM, deux fois la part de GPU d’iGPU Start). Quand d’autres serveurs utilisent le GPU, le temps GPU de chacun suit sa part : dans notre test, le même benchmark est passé de 67 à 84 fps avec la part de Start à 85 à 96 fps avec celle de Power. iGPU Start (2 vCPU, 8 Go) reste suffisant pour les jeux 2D et les outils légers.
Envie d’un serveur prêt à jouer ? Demandez-le par e-mail à la commande (contact@linuxgpu.eu) : nous pouvons vous livrer le serveur avec Steam, l’écran virtuel et Sunshine déjà installés et réglés. Vous vous connectez à Steam avec votre propre compte et installez Moonlight sur votre ordinateur, téléphone ou box TV.
Si un jeu ne fonctionne pas avec Proton, l’option Windows 11 (10 €, payés une seule fois) vous donne un Windows complet : voir Windows 11 dans le cloud avec Sunshine et Moonlight.
Voir les offres : iGPU Power coûte 29,99 € HT par mois.