22 ms·
"The major platform technologies in this space are Direct3D 12 from Microsoft, Metal from Apple, and Vulkan from the Khronos Group. While these technologies hav
by NickGerleman 10y ago
"The major platform technologies in this space are Direct3D 12 from Microsoft, Metal from Apple, and Vulkan from the Khronos Group. While these technologies have similar design concepts, unfortunately none are available across all platforms."
So Apple, the only company not supporting Vulkan on their platforms, is complaining that there isn't a cross-platform solution?
- mwkaufma 10y agoSeriously, even fricken Nintendo is on board with Vulkan: http://www.gamasutra.com/view/news/287995/Nintendo_Switch_to_support_Vulkan_OpenGL_45_and_OpenGL_ES.php http://www.gamasutra.com/view/news/287995/Nintendo_Switch_to...
- pjmlp 10y agoKind of, they have their own API that has better capabilities to expose the graphics hardware called NVN.
- philipp-spiess 10y agoI doubt it's up to the webkit team to make this decision. Anyway, Apple adopting would make things easier
- om2 10y agoWe're not complaining, we're explaining the lay of the land. Working on top of all three of these APIs is totally doable and will result in a better API for the web. Things worth noting: - We believe other browser vendors agree with us that the web API should work on all three of the major native APIs. - The web has security requirements which force us to go a bit higher-level than Vulkan anyway. I understand your desire to have Vulkan on Apple platforms, but it's really a separate issue from the right target for WebGPU.
- Nullabillity 10y ago> We're not complaining, we're explaining the lay of the land. No, you're stating your own company's ambition.
- kristofferR 10y agoWhy is DirectX support needed? Isn't Vulkan supported on the same platforms as DirectX anyway?
- om2 10y agoWe expect DirectX 12 drivers to be more complete, more performant, and more likely to be available out of the box without a separate install. We expect Windows browsers will want to build on top of DirectX, not Vulkan.
- ioquatix 10y agoCare to back up those assertions with real world evidence?
- spatulon 10y agoChrome and Firefox felt there were sufficient problems with OpenGL driver availabity that they implemented WebGL using DirectX (via the ANGLE project), despite the more obvious mapping to OpenGL. Is there any reason to believe that, unlike OpenGL, Vulkan drivers will be sufficiently widespread for browser vendors to use it on Windows?
- ioquatix 10y agoThat's really fascinating and I didn't know that.
- mrpippy 10y agoIntel has no stated intention of releasing production-quality Vulkan drivers for Windows. Forum statement from August: The current Plan Of Record is that Intel® is not supporting Vulkan on Windows drivers. The drivers that were made available on Developer.com are intended for Vulkan developers. So, it is expected that some Vulkan drivers may not work for end users.
- 10y ago
- ChuckMcM 10y agoThe optics are just really bad. Apple could say "In the mean time we'll support Vulkan" and bam! there is a cross platform solution. Instead you say "We will generously let everyone implement our specifications, we hate to see everyone suffering so, but if everyone else works really hard to do what we say, things will be great!"
- om2 10y agoI don't get what you are suggesting. Apple supporting Vulkan on macOS and iOS wouldn't do anything to expose a new GPU API to the web. They are totally orthogonal. We're expecting work on the new web API to be super collaborative, so your framing is uncharitable and incorrect.
- surrealize 10y ago> Apple supporting Vulkan on macOS and iOS wouldn't do anything to expose a new GPU API to the web. They are totally orthogonal. The web GPU API and the lower-level API aren't "totally orthogonal" if you're using the Metal shader language in your web GPU API! You're trying get web authors to use (a part of) Metal! It's totally not orthogonal.
- om2 10y agoThe Metal Shader Language use in our prototype is totally a placeholder, and the post says so. We expect the standards process to define new source and binary representations, possibly based on Khronos's SPIR-V. The shader language is partly independent of the API though, and we though the API was the interesting thing to prototype, more so than shaders.
- shmerl 10y agoThat's already something. But you shouldn't have started with a bad placeholder, waiting for others to criticize and propose replacing it. Start with open languages and technologies right away.
- hota_mazi 10y ago> I understand your desire to have Vulkan on Apple platforms, but it's really a separate issue from the right target for WebGPU. No, it's not a separate issue. If Apple supported Vulcan, the simple act of proposing this new API as a standard would be laughed out of the room. We can only speculate why Apple won't support Vulcan but I'm going to go with "Prefer a solution they designed themselves over one designed by other parties". Just support Vulkan and let's abandon this silliness, shall we?
- om2 10y agoI think you are wrong on that. Vulkan is a low-level native API, not a JavaScript API for the web. Lots of design work needs to be done. In addition, even on platforms where there are unofficial Vulkan drivers (such as Windows), it's likely the natively available API will still have more complete support and better performance. So either way, we need a cross-platform graphics API. Let's focus this discussion on improving the web platform, not fighting battles about the underlying system APIs.
- modeless 10y ago> Lots of design work needs to be done. So support Vulkan and then let's do the design work! The choice of underlying system API has effects on the design of the upper layers. Your refusal to support Vulkan is blocking progress.
- andreyf 10y agoWhy so combative? How is a JavaScript API standard going to benefit from Vulkan support on Apple platforms? More specifically, how will a JS API benefit from being built exclusively for Vulkan, instead of multiple "APIs that have nuanced architectural differences", to borrow Dean's phrase?
- modeless 10y agoTo the extent that Vulkan has capabilities or features that don't map perfectly to Metal capabilities and features, native Apple Vulkan support would increase the performance and capabilities, and reduce the complexity and bugginess, of a hypothetical WebVulkan implementation on Apple platforms. And by reducing the compromises that have to be made for platform compatibility it would benefit the API design on all platforms.
- yellowapple 10y ago"We're not complaining, we're explaining the lay of the land." The "lay of the land" is that the rest of the world is adopting Vulkan, and therefore the right target for WebGPU is very obviously Vulkan. Even macOS and iOS can (theoretically) support it thanks to MoltenVK [0], and Vulkan is already available on Windows. Trying to wrap all three "major" native APIs is pointless when there's already one that works everywhere and does so reasonably well. [0]: https://moltengl.com/moltenvk/ https://moltengl.com/moltenvk/
- om2 10y agoVulkan on Windows is all based on unofficial drivers that don't come with Windows and aren't supported by MS. We don't think it's right to depend on this even if it's theoretically possible. Likewise for unofficial macOS/iOS drivers.
- modeless 10y ago> Vulkan on Windows is all based on unofficial drivers that don't come with Windows and aren't supported by MS. This is not materially different than the situation with OpenGL, and yet I hope you'll agree that basing WebGL on OpenGL was the right decision, rather than inventing a new API based largely on a lower level API proprietary to a single company's platforms.
- om2 10y agoAs it happens, OpenGL was so high level that supporting it on top of DirectX was feasible. A number of Windows browsers use the DirectX back end to ANGLE, so users don't have to download OpenGL drives. Unfortunately, that doesn't work as well for Vulkan. Vulkan is the lowest-level of the three APIs, so it's hard to support on top of Metal or DirectX 12.
- modeless 10y agoSince WebGL was released, Microsoft has demonstrated a new willingness to support Web graphics. They joined Khronos, and now ship a WebGL implementation of their own with Windows. I have confidence that if the industry moved toward a WebVulkan standard that this new Microsoft would make platform changes to better support it. Unfortunately I have no such confidence about Apple.
- dman 10y agoWhile I have your attention - what can be done to improve the state of Vulkan and OpenGL on the mac - its the single biggest reason for me to ragequit the OSX platform every time I try to give it a shot.
- om2 10y agoI think you'll want to talk to Apple Developer Relations and see if they can put you in touch with the teams responsible for the GPU-level stuff. We as the browser team can't do much with this feedback.
- dman 10y agoI will try do do this, though I remain sceptical that this will lead to anything. Not supporting external graphics APIs and Apple effectively controlling the drivers seems to be more of a business decision to me than a decision from a tech / dev relations team. Unless someone high up at Apple takes a call that supporting something like Vulkan / OpenGL is the path forward I doubt that this can be solved in a bottom up manner.
- sipos 10y agoIt is a serious problem for the future of Apple that they have almost completely lost the support of software developers. It used to be that most software developers had MacBook Pros and, the ones that didn't wished they did. Now software developers are generally buying non-Apple machines and running Linux or Windows. In the short term, this is only a tiny market so the loss of sales is irrelevant but, these people are people that other people look to when they are deciding what to buy and, they are people that develop software that other people use. If there is no decent software for Mac OS because none of the developers who would otherwise write it and release it use it anymore, it will make it much harder for other people to use. Both of these are long term effects and, it is too soon to show their effect on sales but, they are important. Since the release of Mac OS X, it has been an attractive platform for developers but, this has completely changed in the last couple of years and, the only reason to use it now is for iOS development IMHO. Windows has done an awful lot to make itself more attractive to developers recently because they get that it is vital for their future. I hate Windows but, even I have to admit, it has got way way better. Apple's decision to stop producing things like AirPort Extreme or monitors is a stupid decision in the long run too. Even if these don't make any money on their own, part of what makes Apple an attractive platform to people is that they can buy everything from Apple and it work together so, even if these lose a bit of money, they make sense to do. There are an awful lot of reasons to not use Mac OS so, it has to get the reasons to use it right and, it is quickly losing them. Fair enough, most of their money comes from selling iPhones but, sales of these will be seriously harmed in the long run if Apple can't sell other systems that integrate well with them. For example, Microsoft would not have to port or update Office on iOS if there wasn't the possibility that it could weaken their hold on the market if there was a Mac and iOS Office alternative. As it is, they would be insane not to support it on iOS but, without Mac OS and Macs, not doing so would be an option and, it would be a serious selling point for Windows phones. Apple's strategy is seriously broken and, it is going to be a serious problem for the company in the long term if it doesn't fix it soon, if it isn't already too late.
- pharrington 10y agoYou say Vulkan drivers will, for the forseeable future, be of lower quality than D3D12 drivers and lack official support. Lets assume I blindly accept this faith-based argument. WebGPU than, must be implemented on top of D3D12 and Metal, two already very different APIs. What, than, makes a hypothetical WebVulkan unfeasible in contrast to WebGPU?
- Rusky 10y agoA hypothetical WebVulkan is tied to an API that it is guaranteed to have to translate from. A hypothetical WebGPU could simply be tweaked to better support its multiple target APIs.
- pharrington 10y agoThe straightforward translation and predictability of a hypothetical WebVulkan is a strong point in its favor. WebGPU's JavaScript interface can be changed arbitrarily, yes; there is nothing simple about that process.
- Rusky 10y agoVulkan (and similar APIs) are straightforward as translation targets, not so much as sources.
- ioquatix 10y agoKeep in mind that DX12 doesn't support Windows 7 or 8, so that cuts out a significant portion of the existing market.
- pjmlp 10y agoStill higher than GNU/Linux will ever be.
- algo_cheese 10y agoNot if you take Android into account.
- AsyncAwait 10y agoAre you familiar with https://xkcd.com/927 https://xkcd.com/927 ?
- microcolonel 10y agoWhile Microsoft hasn't committed to supporting Vulkan first-party, every major Windows(and macOS) graphics vendor has a compliant Windows Vulkan driver which performs well, most vendors have two or three independent implementations. There are real applications being built today under the assumption that these drivers will continue to work. Also, given that Windows versions other than ten still make up more than half of the PC market, Direct3D 12 is not even an option for most PCs, but Vulkan is. So if we're being honest, it's not really "all three", but Apple vs. literally every other platform. Obviously web applications can't simply be trusted not to crash an exposed driver, but "will result in a better API for the web." is exactly the opposite of what you would expect, given the history of high-level graphics APIs. Any layer of abstraction or heuristic other than those required for security reasons, will ultimately increase the number of implementation inconsistencies, that would be objectively worse. Then consider just the shader language. It would be considerably easier and less error-prone to just support SPIR-V shader programs; but with this there will have to be even more levels of translation, even more places for things to go wrong, and a need to make completely new tooling to generate shader binaries. Furthermore, driver bugs are a given, but Vulkan makes the skills to debug and report driver bugs portable across vendors and operating systems. If I'm an ISV and users are experiencing issues on Metal on OS X on an AMD card, I don't have layers, I largely don't know where to shim the library, and even if I could figure that out, why should I have to figure it out for every system?
- pjmlp 10y agoSony and Nintendo don't support it as well. Sony doesn't has official plans to ever doing it, as the PS4 APIs are better anyway. Nintendo is only supporting Vulkan for easing bringing in titles to the Switch, because they actually have a better API called NVN that exposes all the graphics hardware features.
- MrScruff 10y agoIntel doesn't have a production quality Vulcan driver as of now. Considering that browsers implemented WebGL on top of DirectX, why would it be any different for a proposed new API? In which case it's reasonable to at least have a discussion about what this new API might look like.
- snarfy 10y agoIf Vulkan doesn't have enough security features to support the web, you'd think Apple would work with Khronos to get them implemented, instead of rolling their own API. It's yet more 'not invented here syndrome' from Apple.
- tyoverby 10y agoApples handling of Vulcan / Metal should be a colossal embarrassment.
- fooey 10y agoI don't know why Apple thinks they're going to have any sway over the people working on 3D graphics. Their hardware support for 3d graphics has been so awful for so long, I have a hard time imagining there's a very big user base they can leverage to get their way. So far as I can tell, what Apple wants here is almost completely irrelevant to the industry.
- xenadu02 10y agoApple is proposing an open working group collaborate to agree on an open standard for low-level 3D graphics and compute workloads that all browsers can support. What part of that is "leverage to get their way"? The post explicitly states that they don't expect the WebKit syntax to be the accepted syntax; it is merely one implementation that can help inform the discussions. If you want to vent your rage about 3D graphics on the mac go file a radar.
- abtinf 10y agoThe unstated point of leverage is iOS Safari. I would assume that at some point, they will deprecate webGL on iOS Safari.
- botverse 10y agoIMHO you are underestimating the leverage that Apple has given that macs are the tool of choice for most web developers. Apple is probably aware of this and this move looks like an anticipation.
- unsoundInput 10y agoIMHO you overestimate the use of macs as development machines, doubly so in parts of our industry that works on projects where high performance GPU APIs are actually needed (games, cad, simulations)
- vetinari 10y agoI would be interested to know, where is such a place. OSX support for OpenGL is several versions behind, with low performance and you definitely are not going to write AZDO OpenGL code there.
- dkonofalski 10y agoPardon my ignorance, but what do you mean by "not supporting Vulkan on their platforms"? I thought Vulkan was an API that software developers used for graphics... Isn't that a part of OpenGL? Is Apple actively blocking something or have they just left something out?
- fnord123 10y agoVulkan is a new API distinct from OpenGL. It's lower level but has a nicer API in some respects. https://en.wikipedia.org/wiki/Vulkan_(API) https://en.wikipedia.org/wiki/Vulkan_(API) Apple decided to not support Vulkan as it had been developing a competing API called Metal at around the same time. I don't know why they don't also support Vulkan. https://en.wikipedia.org/wiki/Metal_(API) https://en.wikipedia.org/wiki/Metal_(API)
- dkonofalski 10y agoBut Microsoft isn't supporting Vulkan in Windows either, so why is there only a fuss about Apple's support for it? Both companies have competing API's (Direct X and Metal), but Apple is the only one getting flack for it. Why is that?
- detaro 10y agoFor Windows I install a graphics driver by the GPU maker and get Vulkan support (according to wikipedia that is the case for Nvidia, AMD and Intel), since Windows allows drivers to offer such APIs without any specific support by Microsoft. With a Mac all the drivers come via Apple, without support for it.
- fnord123 10y agoNot just Mac. A big deal is ios' missing support.
- cwyers 10y agoTwo major reasons: 1) Windows allows the GPU manufacturers to ship their own Vulkan support; AMD, Nvidia and Intel all do this, which covers 99.99999999999999% of all Windows machines where this is an issue. It's not as good as native support, but it's good enough. 2) Windows has over 90% market share on desktop. macOS has far, far less. It's a lot easier to get people to support your API when you have that kind of market share. iOS doesn't have enough market share for devs to ignore Android.
- paulddraper 10y agoTo be fair, they are proposing a JS API, not a native one. Though I do agree.
- microcolonel 10y agoI've submitted this as the first GitHub issue regarding the charter. https://github.com/gpuweb/admin/issues/1 https://github.com/gpuweb/admin/issues/1
- coldcode 10y agoWhy is Vulcan so magical that everyone in this thread thinks it is the only choice?
- erikpukinskis 10y agoIt has three things going for it: 1) It's currently the fastest (unlike DirectX) 2) It's not controlled by an OS company (unlike DirectX and Metal) 3) It reflects recent developer and hardware concerns (unlike OpenGL)
- MBCook 10y ago1) Compared to Metal or the low level thing MS has (don't they have one?) 2) Apple is proposing an open standard here, they're not making WebMetal 3) Why do you think Apple's proposal doesn't?
- dkersten 10y ago1) The low level thing MS has is DirectX 12. I saw some benchmarks across multiple graphics cards that showed it was slower than Vulkan, but I can't seem to find it now... so its unclear to me if it is or isn't slower. 2) I think the people here would rather it be developed by an independent group like Khronos Group. For example, Apple created OpenCL as an open standard too and then abandoned it.
- MBCook 10y agoOn one, ok. I haven't followed DirectX too closely. I knew 12 was designed to match modern GPUs much closer but I didn't know if that was sort of 'medium' between DX 11 and Vulcan, there being something even lower from MS. Thanks.
- dkersten 10y agoIm sure it was probably just early drivers and its faster now (or at least getting faster).
- pjmlp 10y agoYou are forgetting Sony and Microsoft.
- Fej 10y agoI love how they mention Direct3D and Vulkan in the same breath as Metal.