Earlier in the year, while working on the Khronos Group’s big Vulkan graphics and compute API announcements, I pressed Neil Trevett, VP at NVIDIA and President of the Khronos Group, the computer industry’s influential industry standards group, about the possibly of Metal for OS X. Of course, Metal for OS X was a very high possibility, but this wouldn’t make the pursuit of the Vulkan API less worthy.
Developers Need Optionality
In fact, Apple getting back to a proprietary graphics API (think QuickDraw days…) shouldn’t surprise anybody. Not only is such a move in Apple’s DNA, but Microsoft has gone it alone with its Windows-only DirectX technology for decades, while all the while supporting the open standards-based OpenGL and OpenCL APIs. What’s to stop Apple from merely walking in Microsoft’s footsteps?
Given Apple’s massive influence, size and wealth, one can honestly say it was about time Apple took a bit more control in its graphics the way Microsoft always has. But the problem with DirectX or Metal technology is they are proprietary to operating systems and platforms. The CAD and 3D DCC (digital content creation) industries, in particular, have thrived on having OpenGL around because it meant simplification of software development to multiple desktop platforms. The same could be said of the console world and the mobile environments with OpenGL ES. So where will that flexibility and simplification exists now?
Vulkan, OpenGL and OpenGL ES
As Neil Trevett remarked to me earlier this week, yes, “there is a trio of new generation GPU API’s arriving in the industry: DX 12, Metal and Vulkan. All three share similar design goals to reduce driver complexity and overhead.” But only Vulkan provides these goals across an ‘open standards’ multi-OS and multi-device world.
As Trevett remarked in an earlier article here, Vulkan isn’t going to displace OpenGL and OpenGL ES immediately either. Even Apple’s QuickDraw 3D existed in OS X well into the mid-late part of the last decade, running side-by-side with OpenGL on OS X.
While Vulkan is arguably running behind both Metal and DX 12 (which is default kit in Windows 10), Trevett remarked, “Vulkan is still on schedule to have specs and implementations before the end of the year.” We know that despite DX 12 technology in Windows 10 and its future, Vulkan technology will no doubt be supported, along with OpenGL. In fact, on the latter, OpenGL is the basis of graphics technology for the entire CAD industry. And the CAD industry moves quite slowly.
It’s About Developer Bandwidth (Resource wise)
The final decisions where to go, what GPU API to support, will come down to a developer’s ultimate resource bandwidth for what platforms and devices they want to target. “Metal has chosen to provide less flexibility in some areas, for example memory management, in order to make programming simpler for mobile developers, said Trevett. “Vulkan is focused on providing maximum flexibility and performance to support advanced applications, middleware and engines.”
“Overall however, they are similar enough that business concerns, such as availability on platform, portability and cross-platform support, will outweigh low-level technical considerations of API selection for most developers.” So developers will have to weigh what advantages they gain out of use of the proprietary API’s versus their abilities to take their applications to multiple operating systems and devices.
“No application developer will be able to use Metal exclusively unless their business needs are met by shipping only on Apple and not on any other platform,” Trevett continues. “Only Vulkan is non-proprietary, providing application portability across multiple platforms through a design that supports a wide diversity of GPU and OS architectures.”
Though Apple is on the working committee at the Khronos Group on Vulkan’s development, Trevett acknowledged that the group or himself cannot comment on whether or not Apple plans to support Vulkan on iOS and OS X, though they are free to do so.