I posted this initially in the TMC forums, but didn’t get much interest. But I thought this might be interesting to the L1T community. Not sure of the best category to post this, but I figure since it’s Linux/virtualization, this may be the best spot.
Tesla finally spilled the beans on how Steam is implemented…
Steam is running inside a Virtual Machine (VM) on the Tesla infotainment OS. The Steam client inside VM is based on the Linux source code for Valve’s Steam Deck. Note they said VM, and not container. So I’m assuming there’s a full blown guest OS running with it’s own kernel.
The discrete GPU (Navi 23) is then passed into the VM for hardware 2D/3D acceleration. IOMMU?
This is probably why Model 3/Y Ryzen infotainment CPUs don’t support Steam, as there is no separate discrete GPU to pass into the VM for graphics acceleration. The basic built-in GPU in the Ryzen APU likely can’t be passed in as it’s still needed for the host OS (Tesla infotainment). Without any GPU, the CPU virtualization of graphics performance is probably very poor due to the VM command translation and general virtualization overhead.
So there is probably very little hope for older Model 3/Y Atom or Ryzen infotainment owners to access Steam. Unless Tesla decides to let us access the Steam VM with CPU virtualization, (which is unlikely).
The VM itself will be probably updated in each Tesla software update (similar to how Tesla native games get updated). The Steam client inside the VM will be updated regularly, as it’s an isolated app running on the guest OS.