Hacker News new | ask | show | jobs
by roytries 1545 days ago
I don't believe that Apple did not know about these initiatives before committing to building Metal. Apple was using the OpenGL graphics API (governed by the Khronos group) and AMD GPUs exclusively around this time period.

Note also that Apple is also in the highest tiers of members of the Khronos group. (see: https://www.khronos.org/members/list).

Vulkan was created from the Mantle API that AMD donated to the Khronos group. Mantle exist 2 years prior to any mentions of Metal. As a member of the Khronos group and a very important partner of AMD they would surely have information on what these groups thought the future would be of graphics-APIs.

I believe that Apple had other reasons for choosing to build Metal. But I'm afraid it will be hard to figure out what they were.

2 comments

Your timeline is wrong.

Development of Mantle was announced at the end of September 2013 [1]. Metal was announced and released to developers in preview form in June 2014 [2]. Talk of integrating Mantle into OpenGL happened around August, 2014 [3].

The actual timeline is: Apple spends months-to-years developing a proprietary graphics API (Metal) for their A-series chips. About nine months prior to Metal's release to developers, AMD announces they're going to _start_ developing their own proprietary graphics API. And two months after Apple announces Metal's existence and gives developers access to the software, AMD floats the idea of donating its API to Kronos.

In other words, Metal v1 was pretty much complete by the time the AMD and Kronos even considered a partnership, and "Mantle going to Kronos" may have even been a reaction to the announcement of Apple transitioning to their own graphics API, rather than the reverse.

-- [1] https://www.forbes.com/sites/davealtavilla/2013/09/30/amd-an... [2] https://arstechnica.com/apple/2014/06/apple-gets-heavy-with-... [3] https://www.guru3d.com/news-story/amd-mantle-might-end-up-in...

I guess the debate then comes down to if Apple, as an insider, had already committed to development of Metal before they knew AMD was up to something.

With the public announcement of Mantle in Q3 2013, and the first release of Metal in Q2 2014. (With the first release of Mantle in Q4 2014 afaik). I still think there is enough slack in the timelines given that Apple must have had inside information. But I could be very wrong of course.

> had already committed to development of Metal before they knew AMD was up to something.

They might have, but it's sort of a moot question. In 2012-2014, Apple was supporting four different graphics processors across their various product lines: Intel, Nvidia, AMD, and Apple A-series chips. Even if AMD had announced Mantle the day before Apple started working on Metal, it would've been a solution that only covered the AMD category, whereas the first version of Metal was capable of running on all of those architectures. [1]

The only alternative to Apple rolling their own would've been Apple working in conjunction with Kronos to develop a next-gen OpenGL. I can't find anything that indicates Apple approached Kronos, so it's hard to say whether Apple decided against it for technical reasons (Apple may have felt it would have been too long a time frame to reach a final form, or the design-by-committee approach would not have resulted in a satisfactory-to-Apple result) or political ones (perhaps there was insufficient appetite for that scope of change until Apple announced it was abandoning OpenGL for Metal).

--

[1] https://en.wikipedia.org/wiki/Metal_(API)#Supported_GPUs

I had originally assumed that Vulkan was an open-source response to Metal just by the name alone- Vulkan resembles Vulcan, a metalworker god. But I suppose these naming conventions would be common when you're writing code that's "close to the metal."