> Tessellation enables games like The Witcher 3 to generate geometry. The M1 has hardware tessellation, but it is too limited for DirectX, Vulkan, or OpenGL. We must instead tessellate with arcane compute shaders
> Geometry shaders are an older, cruder method to generate geometry. Like tessellation, the M1 lacks geometry shader hardware so we emulate with compute.
Is this potentially a part of why Apple doesn't want to support Vulkan themselves? Because they don't want to implement common Vulkan features in hardware, which leads to less than ideal performance?
(I realize performance is still relatively fast in practice, which is awesome!)
> Is this potentially a part of why Apple doesn't want to support Vulkan? Because they don't want to implement common Vulkan features in hardware, which leads to less than ideal performance?
Yes, it's a big reason.
I tried to port the yuzu switch emulator to macos a few years ago, and you end up having to write compute shaders that emulate the geometry shaders to make that work.
Even fairly modern games like Mario Odyssey use geometry shaders.
Needless to say, I was not enough of a wizard to make this happen!
Why Apple does not just implement it? They have more resources than anyone in the world. Patents?
In hardware? I would assume because it takes up space on the die, right? It's not free.
Because they don't care. They've decided that Metal is The One True Way to write 3D-accelerated apps on macOS, so they only implement the things in hardware that Metal requires.
Because they like to be different tm
Geometry shaders are not part of base Vulkan. They're an extension.
they are not an extension, they are part of core 1.0 vulkan.
Although its true that they are an optional feature (as is tessellation).
From a performance and technical perspective this is incredible. Well done!
It will never happen, but my dream is for the Asahi devs, Valve, and Apple to all get together to build out a cross-platform Proton to emulate and play games built for Windows on both x86 and ARM hardware running Linux.
A Steam Deck with the performance and power efficiency of an M-series ARM chip and the entire library of games that run on Proton is just...dreamy.
That's awesome news!
You can play windows game with this release in Asahi Linux! So it is possible now
An ARM CPU only emulating x86 isn't going to be more efficient than straight x86. ARM is barely more efficient as it is at those performance levels.
The real reason Apple is ahead is because they're paying for more expensive more advanced nodes for their CPUs. I you compare CPUs on similar node sizes, you'll see that AMD and Intel are basically caught up architecturally in perf/W metrics.
I'm not sure if you know. But Alyssa, the person who basically wrote almost the entire userspace opengl and vulkan driver, works at valve.
Wow! I wasn't aware, but that actually gives me a ton of confidence that Valve isn't ignoring ARM with all of their Linux + Proton work.
Her output is incredible.
Alyssa rules. We all love Alyssa.
It is shocking the effort required to have a good gaming experience on Apple computers (excluding iOS). They always struck me as agnostic to games, yet in recent years it appears to border on open hostility.
They made gameportingkit, which got made into whisky app. So not totally hostile
Incredible work. May I also interest you in retrowin32 https://github.com/evmar/retrowin32/blob/main/README.md
Which is an attempt to collapse the stack so that fewer translation and virtualisation stages are needed.
This is super cool.
So, wait, does this mean that gaming is better on Linux, on a Mac?
I've been gaming on Linux since Warcraft 3 days.
Wine is wonderful and with Valve's help it only got better.
But why would gaming on a mac be better? Maybe one day, but for now:
FTA: "While many games are playable, newer AAA titles don’t hit 60fps yet."
I read the GP differently. I think they meant: if you are on a Mac computer, is gaming better under Linux vs macOS?
I think the answer might be yes, because it's possible to play so many more titles!
Game emulation isn't a Linux only thing.
Is there a way to run Control or Cyberpunk on macOS?
Yes. Haven’t tried those games, but on apple silicon whisky app emulates with gameporting toolkit + wine/proton. For intel silicon I think it was also possible but not sure.
Oh, wow, I did not realize how many games worked with this:
https://docs.getwhisky.app/game-support/index.html
I had assumed the lack of Vulkan on macOS was a major issue. Apparently not!
But if anyone can name a non-Windows platform that does it better, I'll wait!
Emulation has unavoidable overhead.
For instance, Alyssa mentions in this post that most emulated games will need at least 16 Gigs of RAM at minimum.
In addition, native ARM games on MacOS don't have the additional overhead of emulating a different CPU architecture and Graphics API.
However, that doesn't take away from this emulated support being an amazing achievement.
If you mean "I have a mac, is it better to run linux to game?"
Then there's a case for it, since you can run AAA games that apple + macos doesn't support / allow.
Nothing prevents you from running games under emulation on MacOS.
Apple and Wine provide the tools, and apps like Whisky make them easy to use.
> Essentially, this app combines multiple translation layers into a single translation tool. It uses Wine, a translation layer that allows Windows apps and games to run on POSIX-based operating systems, like macOS and Linux. It also uses Rosetta and the Game Porting Toolkit, which are two official Apple tools that allow x86 programs to run on Apple Silicon and serve as a framework for porting Windows games to macOS, respectively.
Normally, this sort of process would require users to manually port games to Mac. But by combining Wine, Rosetta, and the Game Porting Toolkit, this can all happen automatically.
https://www.xda-developers.com/hands-on-whisky-macos-gaming/
However, as aleays, running games under emulation has a performance cost.
You’d need to compare with what can be done on macOS including with things like crossover and the GPT. AFAICT, the Linux side is making progress, but still more games can be run from macOS.
> AFAICT, the Linux side is making progress, but still more games can be run from macOS.
I don't believe that's true. According to ProtonDB, 80% of the top-1000 most-played games on Steam are confirmed working on Linux: https://www.protondb.com/dashboard
I haven't seen any source documenting nearly similar success rates with Mac but I also haven't seriously tried gaming on Apple Silicon.
steam deck is x86
What a coincidence! So are a variety of Macs that shipped with hardware supporting Linux and Vulkan on day 1.
I will have to check this newest development out, but as someone who dual boots Asahi and MacOS - up until now MacOS with Crossover has definitely been the best experience, if you are willing to pay
Yeah it has been for a while. The steam deck runs Linux out of the box.
Valve and open source devs have put a lot of effort over the years on projects like Photon which is a translation layer for Windows games.
The question was "better on Linux on a Mac", meaning specifically Asahi Linux.
The correct answer is no, not yet anyway.
Linux running on x86 with proton is still the bee's knees for most games though.
> on a Mac
Right. It sounds like the Asahi devs have implemented APIs which aren’t available under stock MacOS.
Back when I was actively developing for Freespace, we had a Linux port that had a better framerate than Windows (the game’s original platform).
Afaik they are emulating, which you can do on macOS too. Still great that it works with Linux
Better on Linux on mac (as compared to macos) maybe?
Proton, not Photon. ;-) Here is a list with games and their support status: https://www.protondb.com/
Fantastic! A great proof of concept on Linux - lots of AAA gaming is already possible on Mac with Crossover and/or Parallels or VMWare Personal, which is free! While I have a Steam Deck, gaming on Mac works for me - I refuse to play Baldurs Gate 3 on a controller.
I know it's an extremely un-Apple-like thing to do, but I really wish Apple would team up with Valve to work on Proton, and bring full Proton support to MacOS.
Bringing Proton to Mac would involve either Apple making amends with Khronos and supporting Vulkan, or Valve making the substantial effort to port Proton to Metal natively, or doing DirectX-to-Vulkan-to-Metal translation with MoltenVK. None of those sound very likely or optimal to me.
Besides, the main reason Valve is investing so heavily in Linux and Proton is so their destiny isn't tied to someone else's platform. MacOS is just another someone else's platform like Windows is, with the same threat of getting rug-pulled by a first-party app store that spooked Gabe Newell[1] into investing in Linux in the first place.
Apple already provides their Game Porting Toolkit which includes a D3D12 to Metal translation later for Wine, and it has been integrated into user-friendly Wine distributions like Crossover since last year. There's not much Proton has to offer over what's already available.
My understanding about the game porting toolkit is that it requires developers to specifically modify their game in order to make their game compatible.
The magic of Proton from a consumer point of view is that it just works for basically every game, sans those with Kernel-level anticheat stuff. This means thousands of old games that haven't been updated in years will work.any games that don't have active developers.
So Apples solution works for new games but isn't a practical option for compatibility for existing games.
There is things like whisky app which makes it a more general thing like proton
crossover experience does not require manual modification by developer
I wouldn't hold my breath. Valve is still bitter about Apple deprecating i386 support back in 2019.
Don’t forget Apple’s GamePortingToolkit based on Crossover/Wine and the open source client for it Whisky. I think it supports most games Linux Proton does now.
You can hook up a monitor, mouse and keyboard to your Steam Deck to be fair.
The M-series chips from Apple have some special hardware to help emulate x86 with near-native performance, right? I wonder if they take advantage of those features (actually I forget exactly what the features were).
I mean this is an incredible achievement either way. Everything is emulated, but they are still running AAA games. Wow.
They are using it:
Other than the page size issue, FEX and Rosetta are comparable technologies (both are emulators, despite what Apple marketing might have you believe). Both FEX and Rosetta use the unique Apple Silicon CPU feature that is most important for x86/x86_64 emulation performance: TSO mode. Thanks to this feature, FEX can offer fast and accurate x86/x86_64 emulation on Apple Silicon systems.
From: https://docs.fedoraproject.org/en-US/fedora-asahi-remix/x86-...
I believe libkrun is the tech behind.
https://fosstodon.org/@slp/113283657607783321
Sergio Lópéz has more info in his blog
https://sinrega.org/2024-03-06-enabling-containers-gpu-macos...
https://sinrega.org/2023-10-06-using-microvms-for-gaming-on-...
No reason they can’t.
If every layer of abstraction and emulation is set up to allow it to pass through. It still seems really impressive to me, like lining up a bunch of targets and shooting an arrow through to get multiple bullseyes or something, haha.
Hardly, the benefit of binary is if everything lines up once, it always will. It’s not an analog world with pesky things like wind resistance.
Why not? In fact they are using it right now.
I think the comment was saying “there isn’t any reason they can’t.” Which is true in theory, but in the practice it seems to be a lot of stuff to line up.
Ok, but why would a hardcore Linux person want to play games that embody everything they hate about Windows in their mode of production, data gathering practices, politics, etc?
May I use this space to ask the question: is the M3 substantially different from the M1 and M2 that it is not supported?
The M3 GPU added a bunch of features including ray tracing. The "dynamic caching" sounds like a big change to local memory which could require serious driver changes.
https://www.theverge.com/2023/10/30/23938676/apple-m3-chip-g...
Yes. And also some other peripherals are different.
I don't know how different but it apparently has dramatically improved hardware shaders compared to earlier M chips so I'm guessing that a lot of this might be different, there.
Wish NixOS (or at least Arch) were supported on the level that Fedora is
I see that they're using FEX, what about box86? Is it comparable in term of performance?
box86 does ARM32 which isn’t supported by Apple Silicon
box64 if you prefer.
https://box86.org/2022/03/box86-box64-vs-qemu-vs-fex-vs-rose...
Yeah yeah great, now please m3 support, or maybe before that support for internal mic and external displays/dp-alt. Pretty please? (Not complaining happy about any progress)
I think at the moment, this is probably the only way to feasibly game on a Mac. Crossover and other Wine-based apps as well as Parallels are... not really truly possible. If you bought the top-of-the-line MacBook Pro 16-inch, 2021 with M1 Max and tried to play anything reasonably modern on it, you'd find the performance is basically not playable .
I’ve been able to play a few games with crossover (like overwatch 2) fine. Whisky also works for some stuff.
I also run Asahi so will have to check this out to compare
I've been having good luck on my M1 Max MBP with Whisky, which uses Apple's game porting toolkit: https://getwhisky.app/
Where's the real inspiration for Asahi, Fandaniel in FFXIV?
> Asahi means “rising sun” in Japanese, and it is also the name of an apple cultivar. 旭りんご (asahi ringo) is what we know as the McIntosh Apple, the apple variety that gave the Mac its name.
I noticed the URL was updated for this post. Previously it linked to asahilinux.org which showed an anti-HN manifesto from the HN referral. Curious as I haven’t seen this before. Seems it has been covered by previous commenters: https://news.ycombinator.com/item?id=36227103
It's almost as bad as jzw's website: https://cdn.jwz.org/images/2016/hn.png (nsfw)
He does the same redirect whenever someone links to his DNA Lounge: https://dnalounge.com (NSFW)
It’s completely different. Jwz’s is funny.
The URL wasn't updated. You're thinking of https://news.ycombinator.com/item?id=41799011, which was a separate post.
Ah, thanks for clarifying!
The manifesto is longer than the content...
How can the site even detect where a user is coming from? Browsers leaking this information seems like a huge privacy issue to me.
Referer (misspelled in the spec) has been a part of HTTP from day 1.
Feels crazy this isn’t disabled by default
See[1] the Referrer-Policy header, <meta name="referrer">, <a referrerpolicy> and <a rel="noreferrer">.
But generally, webmasters have found it useful to know who caused their server to fall over^W^W^W^W^W^W is linking to their pages. This was even used as a predecessor to pingbacks once upon a time, but turned out to be too spammable (yes, even more so than pingbacks).
After the HN operators started adding rel=noreferrer to links to the Asahi Linux website, Marcan responded[2] by excluding anyone who has the HN submit form in their browser history, which feels like a legitimate attack on the browser’s security model—I don’t know how it’d be possible to do that. (Cross-origin isolation is supposed to prevent cross-site tracking of this exact kind, and concerns about such privacy violations are why SRI has not been turned into a caching mechanism along the lines of Want-Content-Digest, and so on and so forth.) ETA: This is no longer in place, it seems.
[1] https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Re...
[2] https://social.treehouse.systems/@marcan/110503331622393719
> I don’t know how it’d be possible to do that
It isn't, at least not in the way you think.
Visited links have always looked different from unvisited ones, and the moment you could customize how links looked via CSS, browsers also had to implement styling for visited links specifically.
Modern browsers put a lot of care into making the changes to those styles observable to the user, but not to Javascript.
This is an extremely hard problem, and browsers have had a lot of security issues related to this behavior. Nowadays, you can only apply a very limited subset of CSS properties to those styles, to avoid side-channel timing attacks and such.
This means you can display a banner to anybody who has a certain URL in their browser history, but you can't observe whether that banner actually shows up with JS or transmit that information to your server.
Ah. Ahhh[1]. I see.
<!doctype html>
<style>a { color: white; background-color: white; } a:visited { color: black; }</style>
<body><a href="https://example.com/abracadabra" onclick="return false">you are a bad person</a>
[1] https://developer.mozilla.org/en-US/docs/Web/CSS/:visited#pr...> This means you can display a banner to anybody who has a certain URL in their browser history, but you can't observe whether that banner actually shows up with JS or transmit that information to your server.
How do they stop you from using Canvas to see the output and send it back?
Canvas can't "see the output", it only sees what is drawn in it (which is not a set of HTML tags, it's JS commands).
The screen recording/screen sharing API can be used for this but security is the reason you have to give explicit permission to the site before it can do this.
Referer does have legitimate uses. For example, back in the day people would use it to detect if someone embedded an image from their site on another site. SomethingAwful famously used to respond to any such requests with goatse, and forums I was on had very strict "don't link to SA images" rules as a result.
I think that using referer to try to deliver manifestos to users of another site is kinda childish, but so it goes. Every tool can be put to good or bad uses.
It's only slightly less childish than the current WP drama.
There's a handy addon for Firefox called Privacy Settings that can take care of that. Explicitly adds and option to have the referers be not sent, and a quick way of re-enabling it, in case it breaks a website. Because of course that happens too.
This is part of the web DNA. Pages linking pages and being aware about it. Origin can still disable it.
There is little hope to get it disabled when an ad company is running running the most popular ad platf... Erm, the world wide web browser.
The Referrer-Policy header lets a server tell the browser how much referrer information to pass on when following links, all the way down to nothing at all if desired. Chrome does respect that, and they also followed other browsers in changing the default to "strict-origin-when-cross-origin" a few years ago which truncates the referrer path when leaving to a different domain, so they only see the domain the visitor came from rather than the specific page like they used to. Can't really fault Google in this case.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Re...
Thank you
Alyssa Rosenzweig
Asahi Lina
chaos_princess
Davide Cavalca
Dougall Johnson
Ella Stanforth
Faith Ekstrand
Janne Grunau
Karol Herbst
marcan
Mary Guillemard
Neal Gompa
Sergio López
TellowKrinkle
Teoh Han Hui
Rob Clark
Ryan Houdek
Thank not only these people but also their employers for funding the work.
Marcan and asahi Lina are the same person.
Is there actually any proof of that?
And we would care because...?
Because they were mentioned twice..?