zlacker

[parent] [thread] 40 comments
1. ozarke+(OP)[view] [source] 2023-03-20 16:53:32
I wonder how long it's going to take for games to start generally supporting ARM. Getting Linux running well on M1/M2/etc.. seems like only half the battle for making a good gaming machine out of these.
replies(6): >>nicobu+52 >>smolde+D6 >>est31+ut >>kloone+Py >>fulafe+jL >>sofixa+QP9
2. nicobu+52[view] [source] 2023-03-20 16:59:42
>>ozarke+(OP)
I'd guess that will probably only happen when either windows gets widespread ARM adoption, or there's a new Xbox or PlayStation console that uses an ARM processor. Which... might be a while.
replies(2): >>mepian+ve >>cubefo+Kj
3. smolde+D6[view] [source] 2023-03-20 17:16:27
>>ozarke+(OP)
I wouldn't count on many developers going back to update old games with ARM support. It's more likely that the community will work to build some sort of Box86 + Proton stack to get games working, which should get a lot of the classics working[0]. From there, I think the struggle will be getting Box86 to run fast enough for modern games. Apple's ARM CPUs have great IPC, but that can still get annihilated when it's forced to simulate SIMD/AVX instructions. I assume Apple has some sort of vector acceleration framework in Apple Silicon, but it will take time and effort to reverse-engineer and implement.

Things are certainly looking better than they did a couple years ago, but getting ARM to run x86 code faster-than-native is an uphill battle. Maybe even an impossible one, but I've been surprised before (like with DXVK).

[0] Crysis on a Rockchip ARM SOC, for example: https://youtu.be/k6C5mZvanFU?t=1069

replies(3): >>nicobu+u8 >>kitsun+Tg >>580286+uD
◧◩
4. nicobu+u8[view] [source] [discussion] 2023-03-20 17:22:11
>>smolde+D6
> I assume Apple has some sort of vector acceleration framework in Apple Silicon, but it will take time and effort to reverse-engineer and implement.

I'm pretty sure it's just vanilla ARM NEON so I don't think it will take any reverse engineering. The Apple Silicon GPU is custom, but the CPU is just minor extensions to (and compatible with) AArch64. Rumour has it that this is because AArch64 was designed by Apple and donated to ARM (who Apple has close relationship with being that they were a founding member).

replies(2): >>saagar+Ml >>smolde+6v
◧◩
5. mepian+ve[view] [source] [discussion] 2023-03-20 17:41:18
>>nicobu+52
There's the Nintendo Switch which does get ports.
◧◩
6. kitsun+Tg[view] [source] [discussion] 2023-03-20 17:49:46
>>smolde+D6
It's a little frustrating how it's the norm in the game industry for companies to toss a binary over the wall and maybe patch it for a short period after release (not a given, ports in particular are vulnerable to being forever stuck at 1.0), with significant technical updates being out of the question until it's been long enough for them to try to sell you a remaster.

Not having any experience in that industry, I wonder what the driving forces of this are. I suspect it's some combination of incredibly brittle codebases that cease to build if glanced at the wrong way and aversion to spending anything on games post-release.

replies(4): >>jacque+7j >>stonem+om >>ynx+pr >>maskli+Us
◧◩◪
7. jacque+7j[view] [source] [discussion] 2023-03-20 17:57:49
>>kitsun+Tg
I much prefer that model over services that suddenly disappear.
replies(2): >>kitsun+9n >>izacus+ix
◧◩
8. cubefo+Kj[view] [source] [discussion] 2023-03-20 18:00:04
>>nicobu+52
The Nintendo Switch console already uses an ARM SoC by Nvidia. But I'm not sure whether this has meaningfully increased the probability of porting games to MacOS. The Switch uses Vulkan, but Apple uses Metal, a proprietary graphics API. Whether ports make sense probably depends on how strongly the Mac market share increases compared to Windows.
replies(1): >>jshear+Ht
◧◩◪
9. saagar+Ml[view] [source] [discussion] 2023-03-20 18:07:29
>>nicobu+u8
Apple support NEON (and uses it for most SIMD code) but it also has other proprietary ISA extensions for e.g. matrix multiply.
replies(1): >>shauns+aH1
◧◩◪
10. stonem+om[view] [source] [discussion] 2023-03-20 18:09:12
>>kitsun+Tg
>aversion to spending anything on games post-release.

I am pretty sure that is the answer. Unless the game is Cyberpunk levels of unplayable, there is no money in post release support unless it is bundled with DLC or GOTY releases.

Back in the day it was pretty commonly sited figure that like 90% of a game's revenue came in the first 3-4 weeks of release. DLC and "seasons" are an attempt to stretch it out and make more off a single release, but I haven't heard how well that works.

replies(1): >>maskli+Er
◧◩◪◨
11. kitsun+9n[view] [source] [discussion] 2023-03-20 18:11:24
>>jacque+7j
The "binary abandonment" model can have effectively the same result, though.

An example that come to mind immediately is how much of a mess it is to get games that were built with Games for Windows Live like the PC port of Fable 3 running on modern Windows. It's possible, but there's a ridiculous number of hoops to jump through, none of which would be necessary if Microsoft shipped a quick and dirty update that pulled out the Games for Windows Live dependency.

replies(1): >>howint+7y1
◧◩◪
12. ynx+pr[view] [source] [discussion] 2023-03-20 18:26:05
>>kitsun+Tg
Not supporting new platforms is because

- Total dependency on an engine's build system

- Lack of official support for uncommon platforms

- Extremely low expected ROI even if it were possible to deliver on other platforms

Gamedevs aren't in the business of building platforms, they're in the business (mostly) of consuming them and going where the players are.

Gamedevs not updating is because

- The engines themselves are indeed outrageously brittle at times, with LTS releases sometimes containing significant bugs that persist against newer releases of minor and major versions

- New releases can actually cause dramatic regressions, not just in terms of bugs, but in terms of features, stability, binary size, and more

- AAAs are wasting time chasing the next big thing, non-AAAs are struggling with few people and need to constantly be building the next thing because they're building products, not services

- Gamedevs are largely media/entertainment companies, very few act like technology companies

◧◩◪◨
13. maskli+Er[view] [source] [discussion] 2023-03-20 18:27:20
>>stonem+om
> DLC and "seasons" are an attempt to stretch it out and make more off a single release, but I haven't heard how well that works.

That also dates back to back in the days, we just called it expansion packs.

◧◩◪
14. maskli+Us[view] [source] [discussion] 2023-03-20 18:31:46
>>kitsun+Tg
> I suspect it's some combination of incredibly brittle codebases that cease to build if glanced at the wrong way and aversion to spending anything on games post-release.

The primary reason is that there's no money in it. Like movies, your "one shot" game (without some sort of continuous billing e.g. mmo, subscription, continuous stream of DLCs) makes most of its revenue in the first few weeks, and once the kinks are ironed out what it makes afterwards doesn't really depend on maintenance.

Additional maintenance doesn't pay for itself, the producer doesn't pay the devs for that, and thus the devs take on the next contract to pay the bills. Not to mention additional maintenance is a risk.

replies(1): >>Gigach+HV1
15. est31+ut[view] [source] 2023-03-20 18:33:45
>>ozarke+(OP)
Desktop games*. ARM is a major target for gaming already. Games are 61 percent of app store revenue and 71 percent of play store revenue. And mobile games are the majority of the gaming market (51%).

https://www.businessofapps.com/data/mobile-games-revenue/

replies(2): >>ajvs+Jw >>kuschk+AG1
◧◩◪
16. jshear+Ht[view] [source] [discussion] 2023-03-20 18:34:08
>>cubefo+Kj
The Switch can use Vulkan but it's unusual in offering a wide range of APIs, from OpenGL and Vulkan (the implementations likely derived from Nvidia's existing PC driver) or a custom low-level API tailored to the hardware called NVN. From what I gather from the emulation scene, the majority of Switch titles with non-trivial performance requirements use NVN. Even idTech, which famously uses Vulkan on PC, uses NVN instead for its Switch ports.
replies(1): >>cubefo+G23
◧◩◪
17. smolde+6v[view] [source] [discussion] 2023-03-20 18:39:48
>>nicobu+u8
Interesting, that's what I was curious about. NEON is a bit slow last I checked, but at least Apple is sticking to spec here. It does make me wonder how much performance is left on the table for ARM architectures that want to emulate x86, though.

...it also raises the question of how emulated titles fare against translated ones. It would be fascinating to see how something like Dark Souls Remastered performs through Yuzu vs DXVK on Apple Silicon.

◧◩
18. ajvs+Jw[view] [source] [discussion] 2023-03-20 18:46:55
>>est31+ut
Getting Waydroid to run well on Linux has big issues still unfortunately if you wanted to use it to play Android games. Managed to get it working for a few months on a previous Ubuntu version, now can't get it to work at all.
◧◩◪◨
19. izacus+ix[view] [source] [discussion] 2023-03-20 18:48:40
>>jacque+7j
Not to mention the predatory subscription models that are rampant in mobile for software that is equally as broken, just costing more.
20. kloone+Py[view] [source] 2023-03-20 18:54:16
>>ozarke+(OP)
16k pages is going to make everything hard, I'm not holding my breath.
replies(2): >>sophac+ZA >>nicobu+Cg1
◧◩
21. sophac+ZA[view] [source] [discussion] 2023-03-20 19:02:34
>>kloone+Py
What role does page size play here, and why is 16K a problem?
replies(3): >>gavins+JU >>london+FV >>jraph+Hi1
◧◩
22. 580286+uD[view] [source] [discussion] 2023-03-20 19:11:25
>>smolde+D6
The problem with Box86 is that it requires 32 bit ARM, which Apple Silicon does not support.
23. fulafe+jL[view] [source] 2023-03-20 19:43:16
>>ozarke+(OP)
Linux gaming has been developing in the opposite direction for a while, moving away from even x86 Linux native ports and toward running x86 Windows games under emulation.
replies(1): >>kccqzy+KL
◧◩
24. kccqzy+KL[view] [source] [discussion] 2023-03-20 19:45:31
>>fulafe+jL
They are running x86 Windows games under Wine. Remember that Wine stands for Wine is not an emulator.
replies(2): >>fulafe+0P >>forest+NX
◧◩◪
25. fulafe+0P[view] [source] [discussion] 2023-03-20 19:59:44
>>kccqzy+KL
The recursive acronym tradition of course (GNU's Not Unix, Eine Is Not Emacs etc) traditionally implied the implementation being superset or better than the thing it's replacing and referencing in the acronym.

Wine FAQ concludes

> "Wine is not just an emulator" is more accurate. Thinking of Wine as just an emulator is really forgetting about the other things it is. Wine's "emulator" is really just a binary loader that allows Windows applications to interface with the Wine API replacement.

◧◩◪
26. gavins+JU[view] [source] [discussion] 2023-03-20 20:22:36
>>sophac+ZA
The page size dictates the minimum size and alignment requirements for `mmap`, and also for regions of memory with different levels of protection (e.g. read-only vs read+write vs read+execute, etc). If a program expects to be able to `mmap` in 4kb chunks and can't, it will probably not work properly.

On macOS, IIRC the userspace and kernel-space page size can be different and different userspace programs can run with diferent page sizes, however on Linux the page size is currently fixed across the system and set at compile time. The M1's IOMMU only supports 16k-aligned pages, so memory regions that need to be shared with other hardware (e.g. the GPU) need to be 16k-aligned. As such (and because Linux doesn't currently have great support for mixed page sizes), the Asahi Linux project has decided to run with 16k pages globally. However, that breaks a number of applications that are expecting 4k pages.

More info: https://github.com/AsahiLinux/docs/wiki/Broken-Software

replies(1): >>pxc+XO1
◧◩◪
27. london+FV[view] [source] [discussion] 2023-03-20 20:25:37
>>sophac+ZA
Pages have been 4k on a lot of systems for 30+ years.

That means a lot of software has come to assume that.

Certain memory buffers need to be page size aligned, or a multiple of pages long. Code can only be loaded to a page aligned memory address. Memory mapping and read/write/execute permissions can only be set on a per-page basis.

If all that stuff is hardcoded now, there will be lots of fixes necessary to make things work properly with a different page size.

And those fixes probably will need the software to be recompiled. And some software is only distributed in binary form, and getting someone to recompile it may be nearly impossible.

◧◩◪
28. forest+NX[view] [source] [discussion] 2023-03-20 20:34:26
>>kccqzy+KL
Try to remember that hardware emulation is not the only kind of emulation.

Wine (written as WinE when I first encountered it, IIRC) emulates the Windows runtime environment.

◧◩
29. nicobu+Cg1[view] [source] [discussion] 2023-03-20 22:05:18
>>kloone+Py
I think the Asahi project will release a 4k kernel version for those really need/want it at some point. As I understand there are no technical barriers, they're just delaying it to push more projects into supporting the 16k mode (which has better perf).
replies(1): >>sliken+Rj8
◧◩◪
30. jraph+Hi1[view] [source] [discussion] 2023-03-20 22:15:13
>>sophac+ZA
Sibling comments said it all, though "The Quest for Netflix on Asahi Linux", posted on HN [1] as a very good, detailed explanation of this and is a nice read.

[1] https://news.ycombinator.com/item?id=35081510

◧◩◪◨⬒
31. howint+7y1[view] [source] [discussion] 2023-03-20 23:44:24
>>kitsun+9n
GFWL games are really an exception -- most games on Windows or Proton work fine years down the road.
◧◩
32. kuschk+AG1[view] [source] [discussion] 2023-03-21 00:45:14
>>est31+ut
How many sprites to you need to add to a one-armed bandit before it becomes a game?
◧◩◪◨
33. shauns+aH1[view] [source] [discussion] 2023-03-21 00:49:34
>>saagar+Ml
note that the proprietary extensions are extremely unlikely to gain linux support though, unless upstream arm adopts something similar

though amx won’t help out with emulation much

◧◩◪◨
34. pxc+XO1[view] [source] [discussion] 2023-03-21 01:50:07
>>gavins+JU
Damn. There's some really important software on that list: libvirt/QEMU/KVM, LVM, WINE
replies(1): >>worthl+d12
◧◩◪◨
35. Gigach+HV1[view] [source] [discussion] 2023-03-21 02:51:27
>>maskli+Us
Most of the time if the game was good and it’s been abandoned, someone will make a remaster or a modern take on it which now works on modern systems again
◧◩◪◨⬒
36. worthl+d12[view] [source] [discussion] 2023-03-21 03:44:44
>>pxc+XO1
I imagine that there will be a lot of work to improve this over the coming years, not just because of asahi, but the cloud ARM systems that are being developed.

I think that Fedora may be leading the pack here, see https://danielpocock.com/power9-aarch64-64k-page-sizes/

◧◩◪◨
37. cubefo+G23[view] [source] [discussion] 2023-03-21 14:04:27
>>jshear+Ht
Interesting, I didn't know that. I thought Vulkan was already pretty low-level compared to OpenGL.

Then I guess Metal on Mac can't be such a big issue either.

◧◩◪
38. sliken+Rj8[view] [source] [discussion] 2023-03-22 20:17:41
>>nicobu+Cg1
I believe 4k pages works with Asahi Linux today. However the CPU can do 4k and 16k pages, the GPU is 16k pages only. So you give up accelerated 3D to run 4k pages.
replies(1): >>nicobu+fsa
39. sofixa+QP9[view] [source] 2023-03-23 10:04:08
>>ozarke+(OP)
I have Steam on a Mac, and roughly 1/3 of my library supports M1 Macs. I have some old games in my library, so that's pretty decent numbers for a relatively new platform that is 64 bit only, relatively niche in general, and extremely niche for gaming.
◧◩◪◨
40. nicobu+fsa[view] [source] [discussion] 2023-03-23 13:48:38
>>sliken+Rj8
Looks like 4k support has just been added to the GPU driver https://twitter.com/LinaAsahi
replies(1): >>sliken+kFa
◧◩◪◨⬒
41. sliken+kFa[view] [source] [discussion] 2023-03-23 14:41:04
>>nicobu+fsa
Nice, I was right ... up to yesterday. Now it's fixed. Things are moving quickly.
[go to top]