zlacker

[return to "Paving the Road to Vulkan on Asahi Linux"]
1. jamies+9g[view] [source] 2023-03-20 16:49:09
>>frankj+(OP)
Asahi Lina is truly an inspiration for open source reverse engineering. For those not aware, they also live stream their coding sessions quite often: https://www.youtube.com/@AsahiLina

I'm excited for the day that I can easily install SteamOS (the modern one that runs on the Steamdeck) on an M2 Mac mini for an insanely powered "Steam console" for my living room TV.

◧◩
2. ozarke+oh[view] [source] 2023-03-20 16:53:32
>>jamies+9g
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.
◧◩◪
3. kloone+dQ[view] [source] 2023-03-20 18:54:16
>>ozarke+oh
16k pages is going to make everything hard, I'm not holding my breath.
◧◩◪◨
4. sophac+nS[view] [source] 2023-03-20 19:02:34
>>kloone+dQ
What role does page size play here, and why is 16K a problem?
◧◩◪◨⬒
5. gavins+7c1[view] [source] 2023-03-20 20:22:36
>>sophac+nS
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

[go to top]