Tried box64 on a Raspberry Pi 5 the other day and it worked above expectations. Except for a minor glitch with OGG audio, I got about 60 FPS in Xonotic (x86_64 emulated on AArch64).
I'm curious how long until most users just don't care if their CPU has native x86 support.
As someone developing HPC applications, I generally don't care either, as long as the hardware has good fundamentals, and is well supported by the available compilers and profiling tools.
Honestly at this point the only reason that I'm aware of to prefer Intel for my workloads is the awesomeness of VTune.
How's the quality of the equivalent AMD or Arm tooling these days?
> I'm curious how long until most users just don't care if their CPU has native x86 support.
None of the machines I regularly use are x86-native, this has been the case for 4 years now. I only care because deploying x86 containers is still a thing.
I might be getting a gaming PC at some point, but there are very few titles I'm actually really interested in.
Tablet and phone users don't care, but that is a mix of bytecode based languages, forced upgrades, and shop cleanup from apps that don't want to keep up.
Unless something bad really happens on Windows land, users will care for a long time about native x86 support, Microsoft not being as hardliner as Apple, is the main reason all Windows on ARM efforts keep failing.
There's a handful of Windows game emulators taking off for Android. Using a modern snapdragon GPU, folks are playing Witcher 3, GTA 5. Some suffering gamer is playing through Dark Souls 2 using touch controls
The biggest issue of ARM to me is the fact that ARM hardware never seems to have good or updated drivers.
If I pull an x86 machine or even laptop off the shelf, I'm like 90% sure I can perpetually support that machine for 30 or so years with the latest linux kernel.
For arm, I'm almost guaranteed that the only kernel support I can get is their custom kernel, which I'd have to scrape out of their custom OS. That means being locked into a vendored 3.10 linux kernel forever because there was never any real effort to upstream drivers into the kernel.
It's frankly a bit bizarre that it's so bad. x86 just works even with the latest CPUs. ARM doesn't.
From my experience working on GPU drivers, the ISA is one of the least important parts of porting. 99% of the time, it's just changing a compiler flag. Thankfully, the era of "Ancient Quirky Proprietary Toolchain" is a thing of the past, even on small embedded platforms.
Sure, you might have have a little "optimised" ASM for some specific conversions, but that's always just performance, and a driver even touching bulk data on the CPU means you're already in the slow path.
Stuff like how the busses are enumerated, cache coherency specifics, and interoperability with other devices (some mobile SoCs can be a grab bag of different GPU/Display block/Video encoder/Image processing/whatever else) is waayyyyy more important from what I've seen/.
And while we all hate on stuff like PCI and ACPI, at least it's (kinda) standard and (somewhat) works.
11 comments
[ 2.8 ms ] story [ 25.8 ms ] threadAlso: https://github.com/MattPD/cpplinks/blob/master/assembly.risc...
As someone developing HPC applications, I generally don't care either, as long as the hardware has good fundamentals, and is well supported by the available compilers and profiling tools.
Honestly at this point the only reason that I'm aware of to prefer Intel for my workloads is the awesomeness of VTune.
How's the quality of the equivalent AMD or Arm tooling these days?
None of the machines I regularly use are x86-native, this has been the case for 4 years now. I only care because deploying x86 containers is still a thing.
I might be getting a gaming PC at some point, but there are very few titles I'm actually really interested in.
it seems to at par, if not better than the other offering.
Unless something bad really happens on Windows land, users will care for a long time about native x86 support, Microsoft not being as hardliner as Apple, is the main reason all Windows on ARM efforts keep failing.
If I pull an x86 machine or even laptop off the shelf, I'm like 90% sure I can perpetually support that machine for 30 or so years with the latest linux kernel.
For arm, I'm almost guaranteed that the only kernel support I can get is their custom kernel, which I'd have to scrape out of their custom OS. That means being locked into a vendored 3.10 linux kernel forever because there was never any real effort to upstream drivers into the kernel.
It's frankly a bit bizarre that it's so bad. x86 just works even with the latest CPUs. ARM doesn't.
Sure, you might have have a little "optimised" ASM for some specific conversions, but that's always just performance, and a driver even touching bulk data on the CPU means you're already in the slow path.
Stuff like how the busses are enumerated, cache coherency specifics, and interoperability with other devices (some mobile SoCs can be a grab bag of different GPU/Display block/Video encoder/Image processing/whatever else) is waayyyyy more important from what I've seen/.
And while we all hate on stuff like PCI and ACPI, at least it's (kinda) standard and (somewhat) works.