04/12/2025

FEX – L'émulateur x86 financé par Valve

Par admin

FEX - L'émulateur x86 financé par Valve

et.

Pour ceux qui connaissent pas, FEX permet de faire tourner des applications x86 (32 et 64 bits) sur des processeurs ARM64 sous Linux. C’est un peu comme qemu-user ou box64, sauf que FEX utilise un recompilateur binaire avancé avec un IR custom qui génère du code plus optimisé qu’un JIT classique.

Concrètement, au lieu de traduire directement le code x86 en ARM64 (ce qui serait un bordel monstre vu les différences entre les deux architectures), FEX fait donc ça en deux temps :

  1. x86 → IR : le code x86 est d’abord converti dans un langage intermédiaire simplifié, indépendant de toute architecture
  2. IR → ARM64 : ensuite cet IR est traduit en code ARM64 natif

L’avantage c’est qu’on peut appliquer des optimisations sur l’IR (par exemple, éliminer du code mort, simplifier des opérations, réorganiser les instructions…etc) avant de générer le code final.

FEX supporte même AVX et AVX2, ce qui est quand même pas mal pour de l’émulation.

La vraie force de FEX, c’est sa capacité à rediriger les appels API vers les bibliothèques natives du système. Au lieu d’émuler OpenGL ou Vulkan (ce qui serait une catastrophe pour les performances), FEX balance directement les appels vers les versions ARM des bibliothèques. Selon Valve, on parle d’une perte de performances de seulement 10 à 20% sur certains aspects du code… et visiblement, ils arrivent à faire tourner Hades 2 en 1440p à 90 Hz sur le Steam Frame donc c’est pas dégueu.

Du coup, on a maintenant la vue d’ensemble de la stratégie Valve pour le gaming ARM :
FEX pour émuler l’x86 natif
, Lepton pour les APK Android, et Proton pour les jeux Windows. Trois couches de compatibilité qui devraient permettre au Steam Frame de jouer à peu près tout ce qui existe. C’est la même stratégie que pour le Steam Deck, finalement.

Le cache de code expérimental de FEX permet aussi de réduire les saccades en jeu, et y’a même une interface graphique (FEXConfig) pour configurer les paramètres par application. Parce que oui, selon les jeux, vous pouvez ajuster les réglages pour optimiser les perfs… genre désactiver l’émulation coûteuse du modèle mémoire si le jeu n’en a pas besoin.

Et comme d’hab avec eux, c’est open source et ça profite à tout le monde alors c’est cool !

[Source](https://w

Source : korben.info