Hacker News new | ask | show | jobs
by jeffybefffy519 959 days ago
They should just support directx. Devs will never support two graphics api’s. it costs too much especially to grab the marginal mac os share that has powerful enough gpu’s. Id bed in 4 years apple moves to directx.
4 comments

> Id bed in 4 years apple moves to directx.

Not going to happen, what's more likely is a Proton-like layer above macOS APIs to simplify porting games over. Also see "Game Porting Toolkit" here: https://developer.apple.com/games/

Devs have been supporting multiple APIs since graphics programming exists, it is only on the FOSS world that it keeps being touted as a pain point.
DirectX is exclusive to the Windows platform. At this point, it's probably deeply tied into Windows. I don't see how you can make that bet.
I've no idea exactly how MS licenses uses of DX, but just for context Imagination Technologies just released a custom GPU design that implements DirectX Feature Level 11_0 (which corresponds to earlier versions of DX 12 [1]): https://www.imaginationtech.com/news/imagination-launches-br...

Imagination Technologies is a near 40 year old British silicon IP company that has been doing GPUs for quite some time, just not ones supporting DX up until now, and it has nothing to do with MS (in terms of ownership / rights / etc).

[1] https://learn.microsoft.com/en-us/windows/win32/direct3d11/o...

The way that works isn't that IMG ships a full directx implementation, but that they ship some kernel and user mode components that plug in to Microsoft's directx implementation such that when taken together, directx is accelerated by IMG's hardware.

Similarly, Microsoft would need to release the non GPU specific bits for macos to fit the same model.

Wow, that sounds like a very impressive level of separation of concerns. May I kindly ask for some links for further reading? If you have any handy.
It's a pretty standard driver model internal abstraction layer.

In kernel space you as the hardware manufacturer implement a display miniport driver, and heavily lean on dxgkrnl.sys

https://learn.microsoft.com/en-us/windows-hardware/drivers/d...

And implement interfaces like this one for D3D12 https://learn.microsoft.com/en-us/windows-hardware/drivers/d...

There's quite a bit though and it's kind of spread across several sections on MSDN.

Thanks!
FWIW, this is also how Metal and OpenGL work on macOS. It's hard work, for sure, but it's also a pretty common pattern.
DirectX APIs can be emulated on top of other 3D APIs, see Proton on Linux for instance.

Of course the idea of Apple switching from Metal to D3D is rubbish, but a Proton-like solution for macOS totally makes sense (maybe the "Game Porting Toolkit" will be exactly that eventually).

DirectX is closed source. Also, there are more games on Metal than DirectX.
> Also, there are more games on Metal than DirectX.

Sorry, I was around for DirectX 1.0 back when GPUs were called "graphics accelerators", and don't see how that's possible.

Do you have a source for that, or is there some implicit caveat like counting some emulation later or something? Even then...

I guess parent forgot "on macOS and iOS". Technically every game on macOS or iOS is running on Metal, because the Apple OpenGL implementations are also running on top of Metal for quite a while now ;)

Across platforms, there's no chance in hell that more games run on Metal than DirectX, not even when counting iOS shovelware.

Metal owns a significantly bigger market for gaming revenue than DirectX.
Probably, but that's a completely different claim from your first, isn't it?
There are also more games on Metal than DirectX. And when I say DirectX, I meant the latest versions of DirectX. No idea what the count is for all games released for DirectX total. It's not relevant for the topic I was replying to.

The OP said Apple should switch to DirectX. They can't because it's closed source. The reason given was that devs won't support 2 APIs. They already do. They support DirectX and Vulcan (PS5 version) almost always. And devs already support Metal - with more games than the latest DirectX.

Only if we don't count XBox, and all the Windows games produced since DirectX was released in 1995.