1. 15
    1. 5

      Just six days ago, Vulkan released an extension to remove PSOs from the API, as they might not be such a good idea after all (especially with user-generated content, games like Fortnite or Roblox, or with emulators). And now they ship WebGPU which has the same idea behind… As some people say: yes, WebGPU may be a bit too late

      1. 2

        WebGPU is a living standard that will be regularly updated and tracked by all the major browsers: Chrome, Firefox, Safari. Google, Mozilla and Apple are all core members of the coalition who created the standard and who have agreed to keep updating it. Microsoft is also a member: they develop Edge on WIndows, as well as one one of the major GPU APIs. All major browsers will be shipping WebGPU this year.

        It’s well known that Apple stopped updating OpenGL and WebGL many years ago. This is due to an undisclosed IP dispute with Khronos, the stewards of the OpenGL and Vulkan standards. This is also why Apple created Metal, AFAIK. Apple’s reasons for not updating WebGL on Safari do not apply to WebGPU, since it contains no Khronos IP.

        WebGPU is implemented as a layer on top of Vulkan, Metal and D3D12 (Windows). The WebGPU core must be efficiently implementable on all three of these APIs, and the comprehensive unit tests must pass on all the supported hardware, which includes many mobile and desktop GPUs.

        So Vulkan got a major new extension. This feature will eventually appear in WebGPU as an extension, if there is demand, and as long as the WebGPU contributors can figure out how to implement it efficiently on at least two of the 3 GPU platforms and get the tests to pass on all the relevant hardware. Here’s a relevant feature request: https://github.com/gpuweb/gpuweb/issues/4014

        1. 1

          Is Vulkan exposed on web browsers in any useful way?

          What’s the point of saying that a cross-platform, higher-level modern graphics API is “too late” compared to one of its platforms?

          1. 1

            That’s not the point. The point is that Vulkan, D3D12,… had some ideas about how a “modern” graphics API should work, WebGPU follows those ideas. However, now people in Vulkan are reconsidering if those ideas were good after all (in lots of cases, programmers aren’t more clever than the driver, who knew). WebGPU is an improvement over WebGL, yes, but it took 8 years to be shipped (WebGL took 4). And we probably should wait 3 more until Apple devices get support for it.

            Right now there’s a gap in functionality and usage, but in the future, when we will be able to use WebGPU in production, the gap will be even bigger. It won’t be a modern graphics API.