Apple seeks to position Metal as part of new 3D graphics standard for web
Apple's WebKit team on Tuesday proposed a new Community Group at the World Wide Web Consortium (W3C) that will focus on developing a new standard API, perhaps based on Metal, for accelerating GPU-based 3D graphics and general computation for the web.
Announced through Apple's WebKit blog, the new 'GPU for the Web' Community Group will discuss a potential next-generation web graphics API that can better leverage modern GPUs. Along with 3D content, Apple proposes GPU architecture might also be used to accelerate general web computations.
As noted by Dean Jackson from the WebKit team, advancements in the GPU hardware space has led to identical enhancements in software APIs. He cites platform technologies like Apple's Metal, Microsoft's Direct3D 12 and the Khronos Group's Vulkan as offering lower overhead, and thus better performance, than the OpenGL standard.
Unfortunately, the new graphics APIs contain nuanced architectural differences and are not available across all platforms, making them unsuitable for wide implementation on the web.
"In order to expose a modern, low-level technology that can accelerate graphics and computation, we need to design an API that can be implemented on top of many systems," Jackson writes. "With a broader landscape of graphics technologies, following one specific API like OpenGL is no longer possible."
The newly created W3C group will aid in the evaluation and design of a new web standard capable of tapping into modern GPU hardware while at the same time operating securely across a variety of different graphics technologies, Jackson says. The proposed API might also apply GPU hardware to processes outside of graphical computations and should be easy to adopt.
"It needs to be able to work well with other critical emerging web standards like WebAssembly and WebVR," Jackson says. "And most importantly, the standard should be developed in the open, allowing both industry experts and the broader web community to participate."
To help get things started, Apple's WebKit team is proposing an initial API dubbed "WebGPU." Apple began testing next-generation APIs in WebKit "a few years ago" and found encouraging results, so the company is sharing its WebGPU prototype with the the W3C Community Group.
According to the draft proposal, WebGPU started life as a mapping of Metal to JavaScript. Metal debuted for iOS 8 in 2014 as Apple's graphics framework for the then-new A7 SoC. A year later, Metal made its way to Mac as a unified OpenCL and OpenGL API.
While Metal appears to underpin Apple's initial web graphics proposal, the company does not expect its concept to become the ultimate standard. That said, it appears Apple is angling to take Metal cross-platform.
"We don't expect this to become the actual API that ends up in the standard, and maybe not even the one that the Community Group decides to start with, but we think there is a lot of value in working code," Jackson says.
For those interested, Apple intends to make WebGPU assets available in WebKit "soon."
Announced through Apple's WebKit blog, the new 'GPU for the Web' Community Group will discuss a potential next-generation web graphics API that can better leverage modern GPUs. Along with 3D content, Apple proposes GPU architecture might also be used to accelerate general web computations.
As noted by Dean Jackson from the WebKit team, advancements in the GPU hardware space has led to identical enhancements in software APIs. He cites platform technologies like Apple's Metal, Microsoft's Direct3D 12 and the Khronos Group's Vulkan as offering lower overhead, and thus better performance, than the OpenGL standard.
Unfortunately, the new graphics APIs contain nuanced architectural differences and are not available across all platforms, making them unsuitable for wide implementation on the web.
"In order to expose a modern, low-level technology that can accelerate graphics and computation, we need to design an API that can be implemented on top of many systems," Jackson writes. "With a broader landscape of graphics technologies, following one specific API like OpenGL is no longer possible."
The newly created W3C group will aid in the evaluation and design of a new web standard capable of tapping into modern GPU hardware while at the same time operating securely across a variety of different graphics technologies, Jackson says. The proposed API might also apply GPU hardware to processes outside of graphical computations and should be easy to adopt.
"It needs to be able to work well with other critical emerging web standards like WebAssembly and WebVR," Jackson says. "And most importantly, the standard should be developed in the open, allowing both industry experts and the broader web community to participate."
To help get things started, Apple's WebKit team is proposing an initial API dubbed "WebGPU." Apple began testing next-generation APIs in WebKit "a few years ago" and found encouraging results, so the company is sharing its WebGPU prototype with the the W3C Community Group.
According to the draft proposal, WebGPU started life as a mapping of Metal to JavaScript. Metal debuted for iOS 8 in 2014 as Apple's graphics framework for the then-new A7 SoC. A year later, Metal made its way to Mac as a unified OpenCL and OpenGL API.
While Metal appears to underpin Apple's initial web graphics proposal, the company does not expect its concept to become the ultimate standard. That said, it appears Apple is angling to take Metal cross-platform.
"We don't expect this to become the actual API that ends up in the standard, and maybe not even the one that the Community Group decides to start with, but we think there is a lot of value in working code," Jackson says.
For those interested, Apple intends to make WebGPU assets available in WebKit "soon."
Comments
Apple's actual statement:
I mean...
I'm quite excited by this.
What I like about Metal is it isn't specific to a particular platform i.e. it's not written for Nvidia (CUDA) or ATI (ATI Stream) it means that it is able to be utilised on any GPU.
If Microsoft comes on board with this and ported DirectX to this system (not referring to Metal here) then what we could see is a Metal implementation of DirectX which COULD solve the issue of getting games running on macOS easily. This COULD reduce the need for Wine or Cider for games and because Apple could implement this in Metal it COULD solve part of the problem of getting an ARM based Mac to market.
This would solve the graphics issues but would not solve the fact that ARM does not have any Intel code in it so that would cause an issue for Parallels and VMWare.
Talk about eating your own children. Apple is brave to help forge a new world where apps are not tied to a specific platform but can be served from the web. What will this do to the App Store revenue model? Or am I missing something?
And, it does not make sense to do a wholesale rewrite of macOS just for the sake of making it written in Swift.
However, parts of macOS have already been successfully rewritten in Swift. This effort will grow over time because of the advantages of Swift -- modern, performant, concise, predictable, reliable... The biggest advantage of Swift is productivity when writing and maintaining code.
The point is that Swift was designed with this capability as a System Programming Language.