Slashdot Mirror


Apple Seeks To Position Metal as Part of New 3D Graphics Standard For Web (appleinsider.com)

Mikey Campbell, writing for AppleInsider: 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.

3 of 170 comments (clear)

  1. Headline doesn't really match actual news by Anubis+IV · · Score: 4, Informative

    Where in the article does it suggest that Apple is making a power play here to position Metal like the headline says? This really doesn't have a whole lot to do with Metal specifically, and is instead about leveraging the entire class of APIs that have been coming out that are closer to the (lowercase) metal. In fact, they specifically said so in the summary:

    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.

    The only thing special about Metal that's mentioned in the article is its role in the initial implementation. To pull the relevant quote:

    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.

    So, basically, Apple folks have access to Metal and understand how it works, so they're starting with what they know and have so that they can get the ball rolling quickly. Where it goes from there is up to the community, which, given Apple's typical approach their open source/community-driven projects (e.g. WebKit, LLVM, Clang, Swift, etc.), it's likely that they actually mean that. Of course, they'll no doubt use their role in the community to try and steer things to their own advantage, but if they do so too much it's likely that this will simply become another dead-end "standard" that no one adopts.

    1. Re:Headline doesn't really match actual news by Anubis+IV · · Score: 4, Informative

      You clearly have no idea what any of this is about, because what you just said is a terrible idea regardless of whether you support Vulkan or not.

      For one, Vulkan and its competitors aren't designed for use with untrusted code, so there are quite a number of significant security and technical concerns with your notion that we can simply adopt one of them as a web standard that any random web developer has full access to (which would've been just as true had you said Metal or Direct 3D 12 instead). What you "need", then, is a safe layer that abstracts the underlying API and provides safety to the user (I say "need" in quotes, because I'm not actually clear that this is something we want, let alone need).

      Second, neither Vulkan nor its competitors are actually cross-platform in practice today. It may be the case that one of them will become more widespread over time, but, for now, the world we live in is a fragmented one. Any given platform likely supports at least one of these competing standards, but you can't count on having support for any particular one. A web standard that lives over all of them would make it possible to tap into that power without having to know anything about any of them.

      When they talk about using Metal for this standard's initial implementation, what they mean is that they've already done most of the work of mapping Metal back to existing web standards (e.g. Javascript), so they have a head start on which features a standard may be able to support and what that web API may look like. They'll likely take something resembling the intersection of Metal's features with Direct 3D 12's and Vulkan's features so as to provide an initial release of the standard that works across most platforms.

      When they talk about Metal going cross-platform, that's a separate (but related) topic. It wouldn't affect this standard (i.e. you should eventually be able to use this standard with Metal as easily as with Vulkan), but it would provide them with a means for ensuring the availability of the standard across any platforms supported by Metal.

  2. Re:Vulkan by Anubis+IV · · Score: 4, Informative

    Everyone in the comments suggesting we should just use their favorite graphics API is missing the point entirely.

    Neither Vulkan nor its competitors are safe to use with untrusted code from the web. Allowing any random web developer to have access to the full capabilities of any of those APIs is a recipe for disaster. This standard is, from what I can gather, intended to be a layer that abstracts away the underlying API, whether it be Metal, Vulkan, or Direct 3D 12, which should provide a safe means for using them.

    For an initial implementation, Apple is providing a prototype that is compatible with Metal, given that they had apparently already done quite a bit of work mapping Metal to Javascript, but it's clear that the end goal with this standard is to provide something that is compatible with all of these close-to-the-metal APIs. I imagine that version 1 of the standard will resemble an intersection of features between the competing APIs, that way they can ensure the broadest compatibility right from the get-go.

    In addition to but separate from the web standard, they're talking about taking Metal cross-platform. That wouldn't affect the web standard (which, again, should be able to work on top of any of these competing APIs), but it would ensure that the standard is usable on any platform they choose to support with Metal. If they do take Metal cross-platform, that would seem to suggest an uptick in their interest in creating web-based products that are consistent and in top-shape across a variety of platforms, in much the same way that Google created Chrome to do the same.