What is FEX?
FEX or FEX-Emu translates raw x86 instructions into ARM64 instructions, with Proton handling the software and OS-level translations from Windows into something that can be understood by Linux. When FEX and Proton work in tandem, it means that Arm-based chips could very well run many “full-fat” games stored in your Steam Library.
GitHub repository, and installation was simple: Once the app was installed, all I had to do was log into my Steam account, and voila, my entire library was available to choose from. The gamepad-friendly interface allows you to select from “Compatible” titles, and with that flicked on, I was able to view exactly which titles might play nicely with the RedMagic Astra.
For this test, I wanted to test a handful of AAA gaming titles to see how well they might run and to get a good understanding of how these titles can perform on modern hardware. For a baseline, Cyberpunk 2077 (RED Engine), Clair Obscur: Expedition 33 (Unreal Engine 5), and Resident Evil 3 (RE Engine) all serve as solid showcases to see how well these games might run. Resident Evil 3’s remake is an older RE Engine title, but given my Steam Library’s lack of newer Capcom titles, it’ll just have to do.
Stalled boot
With Cyberpunk 2077 installed on the device, GameNative automatically chooses the best configurations for you and then pulls all of your Steam Cloud data to sync things up. This part of the process took a while, which is (what I presume to be) the sheer number of save files on my particular Steam Cloud variant. But it dutifully whittled away at downloading all of the required files to get Cyberpunk off the ground. And then… Nothing. Cyberpunk 2077 crashed to a halt. It took some tinkering with graphics drivers and Proton versions, then running a driver test to see if everything lined up.
VKD3D translation is what’s causing things to not load correctly, such as DX12’s mesh shaders. To put things simply, there’s a complex stack of operations required to run things smoothly, and when those graphical pipelines get as complex as a modern title, like Clair Obscur, the house of cards begins to fall down.
This isn’t a problem for Resident Evil 3’s RE Engine, which uses a lighter and cleaner implementation of DirectX12, especially when compared to Unreal Engine 5. You also have the option to launch with the DirectX 11-based DXVK, which, in itself, is much easier for a translation layer to handle than the more complicated VKD3D. The caveat here is that you’ll have to access a different legacy beta branch to enable that, as the main branch of the title forces DirectX 12.
Worsening things is the fact that so much of this support relies on community-developed graphics drivers, most notably, custom “Turnip” drivers, based on the open-source Linux Mesa project, which patches Vulkan extensions that are actively still being reverse-engineered by the developers. These optimizations get missed by the official Qualcomm system drivers, which are closed-source. Therefore, as demonstrated in Clair Obscur: Expedition 33, when Turnip drivers are met with complex shader pipelines from UE5, the GPU driver can fail to render geometry correctly, even if the title boots.
Many titles that do not require the usage of such demanding graphical pipelines can work without breaking much of a sweat: So, if you’re missing out on Slay the Spire, or Hollow Knight: Silksong, those titles are demonstrably stable using FEX and emulator apps like GameNative. For our tests, we wanted to see how FEX handled complex shaders, graphics, and modern “big-budget” experiences.
Where does this leave FEX?
In and of itself, FEX is an ongoing project, and we’re not going to see major miracles happen overnight when it comes to elements out of the project’s scope, such as Qualcomm’s development of official drivers that officially support mainstream games.
Qualcomm’s mobile chips were built strictly to run mobile apps and games, meaning that adding the wrinkle of supporting elements like desktop-level Vulkan instructions is a use case they simply never really considered supporting before. If the company wants to capitalize on the work being done by the FEX team, Qualcomm-based chips must also come with similar levels of support as desktop graphics drivers, and the likelihood of that happening is quite slim indeed. As of the time of writing, community drivers for specific titles can enhance the experience of some titles, if you’re willing to go to those lengths.
While the efforts of FEX-Emu and its complex, layered translation to get things running are indeed impressive, you’re not about to be able to take your whole Steam Library with you anywhere, until there’s more maturation of these applications and the community-made drivers (potentially with the help of a company like Valve) to create workarounds, or dedicated drivers. For now, it’s still too early to start throwing FEX out as a feature in a mainstream product until all of those rougher edges, like driver support, are smoothed off for end-users. Anyway, my tablet’s back to being relegated to being a very fancy comic-book reader again until the entire software pipeline has matured.