Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

ArPe

macrumors 65816
May 31, 2020
1,281
3,325
Sorry, but what does it help you when no software supports it and it can't even run a single high-res monitor properly (LOL, forget about 2)?
I have zero problem running it with a 4K monitor, all my apps are running very well even the Rosetta ones, and a base model Air or 13” not supporting 2 displays isn’t an issue. The subject is the 16” which will support multiple displays.

Don’t cast yourself as smart if you make basic errors like this.
 
  • Haha
Reactions: crevalic

leman

macrumors Core
Oct 14, 2008
19,521
19,678
Thanks, that's a great perspective. The reason I called the move hostile towards users is because I'd argue that these platform independent libraries still made it a bit more likely for stuff to be ported to Macs by reducing the amount of work needed.

That is a bit of a mind trap hoverer. In practice OpenGL is notoriously difficult to use across platforms for all but most trivial software — driver bugs and little differences in hardware behavior will ruin you day.

Cross-platform Gpu development for Apple is actually less of an issue than people make it out to be. You can just use Vulkan — MoltenVK works fairly well from what I hear. And most games don't use rendering API directly, they use third-party engines. Two most popular 3D engines — Unity and Unreal Engine 4 — fully support Metal.

And again, OpenGL is still there. If you have legacy software or some academic code, you can certainly use OpenGL on Apple platforms. If you are a beginner GPU programmer though, I strongly recommend that you don't even look at OpenGL. Metal is actually the best API IMO to start out with — it's very simple to get into and it teaches all the important concepts that you will later need to learn more messy APIs such as DX12 or Vulkan.

Apple didn’t have a ton of choice here. Microsoft has zero incentive to let Apple license D3D APIs. Vulkan was available 2 years after Metal was, so too little, too late.

That's an interesting one. Apple was actually part of the Vulkan group in the beginning, but they have dropped out by the time Vulkan was released. I was quite upset at the time that they decided to abandon the open source initiative (and surprised, given how strong Apple's involvement was in earlier similar initiatives — I mean, they were the ones who designed OpenCL!). But now, looking back at things, I believe I understand their motivation, and it makes a lot of sense to me today.

First of all, Vulkan is a really complicated, messy API. Apple didn't want a complicated, messy API. Apple wanted something simple, straightforward and accessible to developers at every level, to encourage developers at every level to use their platform.

Second, Apple hardware is unique and comes with features that nobody else has. With Vulkan, more iconic Apple features would be available via platform-specific extensions, and to take advantage of those features one would need to write a separate rendering path anyway. Basically, to get most out their GPUs Apple would need to create an Apple-specific dialect of Vulkan anyway. Choosing to build a platform-specific API (a much simpler one as well) instead was a reasonable choice, I think.

And finally, Vulkan (just like DX12) still has to cater to the least common denominator. It has to support all kind of hardware. And it is subject to political pressure from different sides, forcing it to adopt features that everyone knows don't work well (*ahem* geometry shaders). Apple has more freedom here — they only need to support a fraction of hardware — and they have ultimate freedom when it comes to their own hardware. They have chosen to innovate instead and I have to say, Metal in it's current installment is a really good, ergonomic 3D API. It does lack some stuff, but it also has a lot of selling points. It's shading language is much more modern than GLSL or HLSL, Metal has arguably the best resource binding model of all 3D APIs, ray tracing as part of standard API, function pointers... but most of all, ease of use.

So instead Vulkan at least on Mac is driving Metal for you with a bit of overhead to do so (MoltenVK). I’m not sure if Vulkan on Windows has more direct access.

Vulkan is a first-class citizen on Windows and Linux, with excellent performance. MoltenVK overhead is close to zero anyway, so using Vulkan on macOS is fairly straightforward.
 

Krevnik

macrumors 601
Sep 8, 2003
4,101
1,312
That's an interesting one. Apple was actually part of the Vulkan group in the beginning, but they have dropped out by the time Vulkan was released. I was quite upset at the time that they decided to abandon the open source initiative (and surprised, given how strong Apple's involvement was in earlier similar initiatives — I mean, they were the ones who designed OpenCL!). But now, looking back at things, I believe I understand their motivation, and it makes a lot of sense to me today.

I welcome this sort of insight, to be honest. I haven’t been tracking the graphics world as much as I’d like in the last decade. Wound up being a UX developer for the last decade and only briefly got back into a graphics-related team a while back, but didn’t get much chance to dig into the Metal stack while I was there to bring myself up to speed.

Vulkan is a first-class citizen on Windows and Linux, with excellent performance. MoltenVK overhead is close to zero anyway, so using Vulkan on macOS is fairly straightforward.

Good to know. I figured it had to be low overhead, but wasn’t entirely sure. I was more worried about Vulkan and Metal maybe having a couple quirks that didn’t map well between them that I wasn’t aware of.

ray tracing as part of standard API

This is the thing that has me curious though. What does Apple have planned for that, I wonder?
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.