Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I understand why WebGPU defined a new API since it's primarily intended for web browsers, however, in this case why create a new API? Why not implement the OpenGL API? Essentially this could have been an OpenGL wrapper over the lower-level API's, e.g. over Vulkan, Metal, and Direct3D 12.

OpenGL has the advantage of being an open standard. Did Meta need custom behavior? If so, OpenGL already has a well-defined extension mechanism.



OpenGL is not the most straightforward, not the most compact, not the most ergonomic, not the most modern API. It's one of the most widespread though.

Meta produced this library not for the benefit of general public. They produced it to make their own development easier and faster, and internally they are unlikely to benefit from OpenGL's ubiquity or backwards compatibility. Then they released the library for the benefit of general public. This is very nice, thanks! But we are not the main target audience.


I know next to zero about rendering capabilities. But when I saw Meta | Release | Graphics Library. Given Facebook's history with data collection and the proprietary nature of their VR headset. I doubt they have any interest in open standards.


Facebook have released a bunch of good-quality open-source libraries and tools. Not just zstd, rocksdb, folly, flow, hhvm and other niche things, but also PyTorch and React, staples of two industries.

Since they are honestly open source, they have been inspected a lot, and, if they included any data siphoning, that would be long known, and long since deleted.

I don't share your skepticism.


Their technical achievements are not my domain. But I know behavior patterns, since Facebook's platform was built to harm peoples ability to choose for themselves, I consider it a blight on humanity. I doubt they have any interest in serving the common good. But I hear that you don't share my skepticism, time will tell.


I think for the same reason WebGPU did-there are tons of cruft in the opengl API and it doesn't really represent how the hardware works anymore.


Abstractions over the low level apis (opengl, directx, vulkan, metal) have gotten a bit popular in recent years. I think some driving forces behind it are inconsistent support of some apis on some platforms (i.e. opengl on macos) and maybe also a desire to support some of the newer apis (Vulkan or dx12) without going all in due to their complexity/verbosity.

I've been playing with wgpu-rs, bgfx, and a couple others in the past and they work pretty well for the most part. At this point I think I'd still rather choose just Vulkan for a new project though.


Having worked with OpenGL since around 1998 let me say: it's definitely the worst of all popular 3D APIs, and already has been since around the time D3D7 was released. It's time to let it go the way of the Dodo (just a shame that Vulkan didn't fix the worst OpenGL problem which is the vendor extension zoo).


Edit: I misread your question, so responded with a link to this article answering "why WebGPU": https://cohost.org/mcc/post/1406157-i-want-to-talk-about-web...

It does seem like kind of a mess. Unlike WebGPU, though, it doesn't sound like Meta's thing is much of an improvement.


Nobody wants to use OpenGL these days, it's a miserable API with 30 years of baggage and complex vendor-specific behavior




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: