Test performance of Crossover Preview for arm64
See: Twist our ARM64, here's the latest CrossOver Preview
I have been testing the Crossover Preview edition for Arm64 on the following systems:
- System76 Thelio Astra M128-30 (with Nvidia RTX 4080 Super)
- Minisforum MS-R1 (with Nvidia RTX A2000 Laptop)
- Raspberry Pi (TBD... going to see if I can get it going on AMD cards)
I'll leave my notes on the experience here.
Firstly, a video demonstrating the out of the box experience under Ubuntu 24.04/25.10 on the Thelio Astra and MS-R1, respectively:
(click the image above to play)
In the video, I noted some choppy performance on both systems, maxing out around 12 fps in the built-in Cyberpunk 2077 benchmark. @bexcran noticed the card was operating at PCIe Gen 1 x16, as indicated by nvtop:
This may or may not indicate a problem, as the Nvidia driver doesn't allow forcing persistent Gen 4 link speed. However, PCIe ASPM has caused issues for me in the past in other tests, so I figured it was worth a try checking it out here too.
So I added pcie_aspm=off to /etc/default/grub in the CMDLINE, then ran sudo update-grub and rebooted.
Testing again, I got almost double the performance, and the card seemed to do a better job of remaining at Gen 4 speeds (though it would still downgrade here and there):
So... maybe some other PCIe links that would cause issues due to ASPM?
Here's a video of the conclusion of the Cyberpunk 2077 benchmark with pcie_aspm=off:
https://github.com/user-attachments/assets/dddb6d40-f26f-4465-b425-87949f6b9845
On the Raspberry Pi, I tried installing the Preview, and that worked, but when it asked for my registration information, and I entered it, it would repeatedly say 'Registration failed'.
After chatting with someone from Codeweavers, apparently there's a CLI option:
# Note that the path is different for the non-preview edition:
sudo -H /opt/cxpreview/bin/cxregister
That worked, seeing if I can get Cyberpunk 2077 going on the Pi :)
On the Thelio Astra, I set every setting to Off or Low, and set the resolution to the lowest (1024x768), and it still only got 25 fps, so I think there's a bottleneck somewhere, as the CPU wasn't going 100% and the GPU wasn't nearly that either.
On the Pi, I let it run installing Steam for over an hour, but after it started installing the update (the initial install was fine), the CPU got stuck at 100% on one of the threads, and just stayed like that until I force quit it. Not sure what's up with that.
I tried deleting the bottle and creating it anew, but that didn't work either.
Edit: I also tried setting up Box64/Steam via Pi-Apps (which is compatible with Trixie now), but that ran into similar issues, this time with more logs. Will try to investigate that more later.
I was only getting a relatively low fps too until I switched the graphics backend (in the Crossover bottle settings) from Automatic to DXVK or Wine, which bumped it to around 70-80 fps from 30-40.
I found a post indicating you can avoid the NVIDIA card downgrading the link generation by locking the clocks using nvidia-smi. I found I was able to keep it at Gen 4 by running:
sudo nvidia-smi -lgc 3000,3000
sudo nvidia-smi -lmc 5000,5000
I switched to DXVK manually, but that seemed to make no difference.
I set the card to forced Gen 4x16 using the two commands you listed above, and that did seem to more consistently give me 24-25 fps, whether on tiny / low settings, or on ultra / 1080p:
I noticed the GPU wasn't doing too much (less than 50% load at 1080p with all settings maxed), but the CPU load was 900-1200%, and I saw the CPU was still idling at like 1.1 GHz or something, via btop.
So I forced performance on all cores with:
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
Then ran the ultra / 1080p benchmark again, now getting a smoother 33 fps:
I'm not sure what's hanging up my system from getting more than that :/
First impressions. Not bad. But not great. The stability of everything I run has been great. Steam and any games I start up have not crashed if I can get them working.
How ever the performance is still less than what I was getting with Box64/32 with Proton.
I used the steam deck preset for my test.
The first test was pretty underwhelming...
I then locked my CPU to performance mode and the followed Bexcrans GPU changes and I was able to get a very noticeable improvement in FPS.
I'm testing a few things still but initial impressions are nice.
@MillerDvS - My results match yours pretty closely (25-ish fps to 33 fps in my case). Good to see more data, and thanks for providing the additional info!
Later that night I tested a few other games and got mixed performance. I only use box64/32 since FEX doesn't play nice with nvidia yet. ( I know there is a installer for it but I haven't been able to get it to work yet, even on 24.04.3 server.) so that's where I'm coming from.
Some things I noticed. Doom eternal installs and the ID launcher worked perfectly, however after the opening logos the game black screens and doesn't progress. Under box64 I can get to the game normally.
The best result I got was with 'No mans sky.' Under box64 it was slow and gave me a hard time navigating around the game. In crossover I was getting what felt like high 50's or 60 fps, with very few dips below into the 30fps range. It was extremely playable and stable.
The oblivion Remaster would install and on the first boot it would get to the 'compile shader's' screen in game but after that every time I tried to start it up again it would hang on a black screen.
In Elden ring on Box64, the game crashes/locks up in the menu and doesn't like the opening cut scene. Where as in crossover I can play the game and I got around 30 fps with some minor hitching. I did lock up once so it's not perfect but certainly an improvement!
Another game that worked under box64/32 was Helldivers 2 (with multiplayer) It didn't run well but it ran between 20-30 fps. However under crossover it would not boot because of the anti-cheat.
Tonight I want to try the Mass effect legendary edition.
I also want to try more games but ran out of time. I'm a fiend for mmo's so I'm going to try GW2 again since that worked under box64 and I'll be able to compare it with crossover then I'll give both SWTOR and FFXIV another try. Since both of those would hang on boot. The wow private server I play on works pretty well under box64 with lutris but I tried to install it anyway however crossover was having a hard time running the .exe it seems.. or reading the files in the folder. (I'm not sure yet, it was late.)
Steam was overall very smooth and snappy and it doesn't crash every few moments like when I use box64/32. All the features I could think of at the time worked fine. (Messaging, browsing, deleting games, installing etc..)
I guess rapid fire post tonight.
Testing didn't go so well.
Mass Effect Legendary edition did not work. It crashed because the EA app couldn't work. (There are some work arounds but it's a cat and mouse game of what works because EA keeps trying to patch it. Lots of information regarding this because of the steamdeck running into similar issues with offline play.)
FFXIV wouldn't get past the initial logo screen of it's launcher.
SWOTR would not get past the launchers log in and just hanged. (I could get past this with box64, just couldn't get to the character screen or in game.)
GW2 did end up working. Pretty well honestly, I would say overall it was far more stable and had fewer issues with graphics bugs or anything. But after forcing my cpu back to 3.3ghz, because I forgot about that. I managed to get a pretty consistent 25-40 fps and it felt really smooth most of the time, regardless of where I was.
I'm going to setup my Orion O6 system again to see if I can get better results, I also have my X elite laptop I can try.
I've spent some time with my Orion O6 and RTX A2000. Sadly the experience was a little worse. I tested the same games and even tried to get a couple random ones to work. (Star wars: Empire at war, lunacid, and Red dead redemption 2.).
The performance of the Steam UI itself was sluggish. And all the games I had working on my Ampere setup ran a bit slower or in the case of Elden ring. Just not start at all. (This could be something else however.) Moving forward I'm just going to keep testing on my Ampere system. The experience has been far more repeatable and stable. And outside of Doom eternal on Box64, the performance is extremely similar from my own test.
I did mess with Mass effect legendary edition some more. I tried to install the EA app/origin in a separate bottle and getting it to recognize my steam copy of Mass Effect: LE. This trick works on mac so I was hopeful, sadly it didn't work as the EA app kept failing to install.
Lastly I started a game of hearts of iron. It ran very well even after twelve hours of playing.
I guess my final thoughts so far.
I have been playing with Box64/32/86 and FEX for almost a year now and I have been fairly negative about FEX for a bit. Box64 has better performance and any game I can get running with FEX runs on box64. The only exception was FF14 on my Orion O6 with fex. However FEX couldn't use my Nvidia gpu so it was doing CPU rendering which really isn't useful. That being said. I know it's a preview and beyond that I don't expect anything to run 120fps. But compared to just using Box64/32, Less seems to work and if it does work the performance is worse. BUT BUT BUT. It is 100x better than what I'm used to with FEX-EMU and I'm extremely excited to see what this will look like in a year/when ever the valve headset launches.
I also wish we had better ARM cores, where is my X925 core SBC at? (Not you NVidia).
@MillerDvS haha I hear you on that last line... The GB10 has a nice Mediatek CPU in the 'Grace' side of things. Why can't we just have that, for an Arm board, with Linux supported on it?
Honestly if Ampere, Mediatek, or whoever just had a chip that was those cores on it, and gave it the full SystemReady support workup, they'd have a killer Arm Linux box.
I also wish we had better ARM cores, where is my X925 core SBC at? (Not you NVidia).
Do you want X925 core SBC or Oryon core SBC? We can only choose one to build.
@hipboi I would not complain with either core on a board. As long as it had a pcie slot to play with.
Having 8-12 x925 or Oryon cores would be a dream to play with. However if I had to pick, the x925s would be my choice.
@hipboi I would not complain with either core on a board. As long as it had a pcie slot to play with.
Having 8-12 x925 or Oryon cores would be a dream to play with. However if I had to pick, the x925s would be my choice.
Your dream will come true in 2026.
I have so many questions and probably wouldn't get many answers. But I would love to know more.
Until 2026, I'm going to keep asking codeweavers how they got 120fps in Cyber Punk to hold me over. I'm just not sure what they might have done to get that number. And my cynicism is telling me they probably didn't get that number at all. Unless there is some information I'm just not seeing, I really want to be wrong here.
@MillerDvS haha I hear you on that last line... The GB10 has a nice Mediatek CPU in the 'Grace' side of things. Why can't we just have that, for an Arm board, with Linux supported on it?
Honestly if Ampere, Mediatek, or whoever just had a chip that was those cores on it, and gave it the full SystemReady support workup, they'd have a killer Arm Linux box.
Is the issue with the NVIDIA DGX Spark the fact that it's so expensive (with the overpowered GPU) compared to other Arm boards? Another option similar to the DGX Spark is the Jetson Thor, which has Neoverse-V3AE cores but isn't any cheaper.
For me at least. If it cost around 2k and didn't have the giant NIC I would probably be more willing to buy it and not think about it. Overall I think the system performance wise is plenty for me. The THOR would be another interesting option. But that is around 2700 and the idea of 'AE' cores makes me hesitant since I remember how bad the A78ae cores are.
Ok so, with FSR framegen I get far better performance. I'm currently working on getting DLSS to work so I can test that, but I'm now 100% convinced they didn't get native 120fps and instead it was with frame gen. I'm going to test with a few other games and then check similarly working games with box64 and frame gen to see how that looks.
DGX Spark / Dell Pro Max GB10 with Framegen enabled:
I have so much I want to say. This is with framegen and Box64 and Proton 10.0. Same settings as before.
Still not quite 120 haha, but getting there!
Still not quite 120 haha, but getting there!
It matches your DGX spark! I'll take that as a win. Though now I'm curious what the Spark would do with Box64 instead of crossover.
What happens if you reduce the resolution? For example, down to 1024x768.
What happens if you reduce the resolution? For example, down to 1024x768.
I ran it twice and it actually was around 2-5fps lower on average. Strange.
The best result I got was with 'No mans sky.' Under box64 it was slow and gave me a hard time navigating around the game. In crossover I was getting what felt like high 50's or 60 fps, with very few dips below into the 30fps range. It was extremely playable and stable.
I'm a bit late here, but I just tried No Man's Sky (Steam version) on my Ampere machine with latest Box64 and it was smooth, not issue on my side. Is it still behaving incorrectly on your side?
In Elden ring on Box64, the game crashes/locks up in the menu and doesn't like the opening cut scene. Where as in crossover I can play the game and I got around 30 fps with some minor hitching. I did lock up once so it's not perfect but certainly an improvement!
Mmmm, is there a parameter in steam to launch without EAC?
Mmmm, is there a parameter in steam to launch without EAC?
For Elden ring, you can go into the game files and delete the 'start_protected_game.exe'. Then copy the eldenring.exe file and name it the 'start_protected_game.exe'. When it launches it's looking for the protected game.exe, however instead of launching EAC. It will just launched Elden ring.
Mmmm, is there a parameter in steam to launch without EAC?
For Elden ring, you can go into the game files and delete the 'start_protected_game.exe'. Then copy the eldenring.exe file and name it the 'start_protected_game.exe'. When it launches it's looking for the protected game.exe, however instead of launching EAC. It will just launched Elden ring.
Thanks. I can start the game like that indeed. I can see it's unstable yes, I need to debug it. Hopefully I'll find something.
