Tale of alignment with Vulkan

submited by
Style Pass
2021-06-23 00:30:09

The very first entry in this blog was about a prototype I made for the next generation of Web 3D API - WebMetal. It was my first experimental take on the problem of building a successor to WebGL, my first dive into the Web APIs in general, and it was all implemented at nights during my first few months at Mozilla. This prototype needed to be done before the Vancouver Khronos face-to-face (F2F, december 2016), where the new working groups would gather: one called “3D Portability” and another “WebGL Next”. They had a lot of shared members - people who’d later transition to W3C and start the WebGPU community group there. I think the Metal-based Web API was quite reasonable, and I even showed it to a few members, without making a big deal out of it. It turned out, Apple also had a very similar prototype ready, which later was made into a formal proposal.

In the meantime, I was getting to know the collegues at Mozilla, who tried to cautiously warn me about the dangers of either going with a weakly specified API (such as Metal), or designing one from scratch. The idea of taking an existing Khronos-made API and adopting it for the Web (just like with WebGL) was then voiced again and amplified during our gatherings with Mozilla members at GDC 2017. It felt like a healthy consensus, even though I wasn’t sure it was the right solution. I didn’t know Vulkan at the time, after all. Besides, I didn’t want to throw the prototype to trash, it cost me quite a few nights. But I was talking to people who were very convincing, who brought us WebGL, and who I wanted to play along with. So I decided to compromise, trying to convince myself and the world that WebVulkan was the way to go.

Leave a Comment