Games on an ARM Machine: Three Layers of Translation
A machine of the NVIDIA GB10 class is ARM64, while most games are written for x86 and Windows. Three independent translations sit between them — and each is paid for in a different currency. This lesson does not promise "console-like play": it teaches you which layer costs what, how to check whether the GPU is used at all, and why heat and neighbouring services decide more than the settings menu.
steam package from the Snap Store is available for arm64. We did not measure performance. The licence, terms and compatibility of every individual game are the responsibility of the player and the publisher.01What you'll learn
- What the three translations between an x86 Windows game and an ARM64 Linux machine are, and what each costs.
- How to check with one command whether the session draws with the GPU or with a software fallback.
- Where the official FEX installation lives and what it requires.
- Why a driver built for another architecture is not run on the ARM machine.
- Why streaming a desktop can "steal" your processor.
- Why heat and neighbouring services are part of the task.
02Before you start
- An ARM64 Linux machine with a GPU driver — for example of the NVIDIA GB10 class — and a terminal on it. Its address in the examples is
<server-address>. - Games that you have bought or are entitled to play. The lesson does not provide them.
- Willingness to read the official documentation: this technology changes fast, and the lesson points to the primary sources.
- Realistic expectations: this is a machine for artificial intelligence. If you need a gaming machine, buy a gaming machine.
03Steps
-
Understand the three layers and what each costs
Why: no layer "speeds up" anything — each one translates and takes its toll. If you know which layer pays what, you know where to look when something limps.
Layer What it translates The cost (in principle) FEX x86 and x86-64 instructions into ARM64 CPU time. Games that load the CPU suffer the most. Proton Windows calls into Linux ones (a compatibility tool based on Wine) Compatibility. Some games, especially those with protection at the Windows kernel level, may not start. Remote desktop Rendered frames into a video stream Network and, with software encoding, CPU again. According to the FEX README the project "can be used alongside Wine/Proton to play Windows games" — that is the reason for the two layers stacked on top of each other. The table describes the principle, not measured values.
-
Check what the machine is and who draws the session
Why: when the machine is reached remotely with no monitor attached, the session sometimes draws with the CPU through Mesa's
llvmpipesoftware rasteriser. The GPU then sits unused and the game is a slideshow — regardless of its settings. So the first command is a check, not an install.bash · on the server# architecture — expect aarch64 uname -m # CPU features lscpu # who draws the session sudo apt install -y mesa-utils glxinfo -B | grep -i renderer # is there a graphical session and is the GPU in use echo $DISPLAY nvidia-smi🛑Rule: read the "renderer" line, then installIt names the GPU → go on. It saysllvmpipe→ the session is software-rendered and that is fixed first (for example an attached screen or a device that imitates a monitor), otherwise the whole install is wasted effort.⚠️Trap: a missing command ≠ a missing GPUIfglxinfois not installed, the output is "command not found" — that is about the tool, not the machine. Install the package and repeat before concluding anything. ⚠️ On machines with shared memory some fields ofnvidia-smimay show "N/A" — we have not checked this ourselves. -
Install FEX from its official instructions
Why: the project moves fast and the exact steps change; so the lesson does not copy scripts but points to the primary source and tells you what to check.
- FEX "allows you to run x86 applications on ARM64 Linux devices" (README, 03.10.2026) and is MIT licensed.
- Requirements: ARMv8.0-a or newer hardware, at least with the FEAT_FP and FEAT_CRC32 extensions — see
lscpu. An x86-64 RootFS (a file system with x86 libraries) is also needed, downloaded with theFEXRootFSFetchertool. - Tested distributions according to the README: Arch, Fedora, openSUSE, Ubuntu 22.04 / 24.04 / 24.10 / 25.04. Others are "likely to work".
- For Ubuntu the README gives a "quick start" with an install script. Download the script, read it, and only then run it — do not run someone else's code blindly through a pipe.
FEX can forward calls to the machine's own libraries (such as OpenGL or Vulkan) to reduce the cost of emulation, and it has per-application settings, including a graphical program,
FEXConfig. Some settings trade accuracy for speed. ⚠️ We have not checked their effect on GB10 — change one setting at a time, write down what you changed and how to undo it. -
The game client and Proton
Proton is a "compatibility tool for Steam Play based on Wine and additional components" (Valve's page, 03.10.2026). In practice this means:
- Install the client as its publisher describes for your distribution. The Snap Store has a package named
steam(sudo snap install steam). ⚠️ Whether it is available for arm64 is not confirmed; check snapcraft.io/steam. - In the client's settings enable the compatibility layer for the titles you own, and for a specific game choose its version in the game's properties. A pinned version matters because a new release can break what already runs.
- If a game does not start, check its compatibility reports and its terms. Do not try to "break" its protections — that is not the subject of this lesson and may violate the licence.
- Install the client as its publisher describes for your distribution. The Snap Store has a package named
-
The trap: a driver for another architecture on an ARM machine
Why: while reading guides for games on x86 you will meet an installer for an
x86_64driver and advice to "run it". On an ARM64 host that is dangerous.🛑Rule: a driver for another architecture is not run on the ARM hostThe driver on an ARM64 machine comes from the distribution's or vendor's packages for this platform and is updated only that way. An installer built for another architecture does nothing at best, and at worst can remove the working driver and leave the machine without a GPU. When an installer announces it will stop services — stop and check. An interrupted step is repeated in minutes; a driver rolled back costs an evening.bash · on the server# is the driver intact (read-only, changes nothing) nvidia-smi dpkg -l | grep -i nvidia -
The pipe, the heat and the neighbours
Three things decide what you actually experience — and none of them is in the game's menu.
The pipe
The status of the remote session tells the truth: resolution, frame rate and whether encoding is software. Software encoding is paid for by the same CPU that is already translating the game. Raise quality and resolution to something usable and look for hardware encoding. For real play use a tool built for game streaming, not for desktops.
⚠️Trap: counting the wrong framesThe frames in the window are the stream's, not the machine's. Comparisons and conclusions come only from the game's own counter or from a benchmark.The heat
In the NVIDIA GB10 class the processor and the GPU are on one chip and are cooled together, so a game can heat more than a purely computational job. Follow the guidance of your machine's maker and set your own limit for temperature and load — do not wait for the chip to throttle itself. The strongest lever is a frame cap; the second is lower resolution; the third is cooling the room. Temperatures are read with a tool (for example
nvidia-smi), not by feel.The neighbours
The machine is not a console — models and services run on it. Before a long session look at what holds the GPU and leave awake only what is needed.
🛑Rule: the game is a guest, not the ownerNothing in production is stopped, unloaded or reconfigured for a game. If the resources are not there, the session gets shorter — someone else's resources do not get freed.
04Check
- You use only games you are entitled to play.
uname -mshowsaarch64andglxinfo -Bnames the GPU, notllvmpipe.- FEX is installed from its official instructions and has a RootFS.
- You have not run an installer for a driver for another architecture on the host.
- You know what each layer costs and where your limit for heat is.
Quiz
1. The "renderer" check shows llvmpipe. What does it mean?
2. A guide says to run an installer for an x86_64 driver on the ARM machine. The right reaction?
3. The game stutters while GPU load is low. The most likely cause?
4. The temperature exceeds the limit you set while you play. What do you do?
05What's next
06Sources
All pages were reviewed on 03.10.2026.
- FEX-Emu/FEX — README — what FEX is, requirements, tested distributions, quick start, licence · FEX-Emu wiki.
- ValveSoftware/Proton — a compatibility tool for Steam Play based on Wine.
- Steam in the Snap Store — an available
steampackage; availability for arm64 — check there. - Mesa · llvmpipe — the software rasteriser used when there is no hardware rendering.
- NVIDIA · nvidia-smi — monitoring the state of the GPU.