3 ms·
> How is having a standard API to draw 3D graphics not a solved problem at this point? It seems like it mostly is? The problems described in the article appear
by Reelin 6y ago
> How is having a standard API to draw 3D graphics not a solved problem at this point?
It seems like it mostly is? The problems described in the article appear to be due to a mismatch between how QT and Krita do things under the hood.
OpenGL has broad support (except Apple). The OpenGL ES subset adds web browsers and lots of embedded devices. ANGLE provides translation of ES to D3D, Vulkan, and soon even Metal.
Vulkan seems to work pretty much everywhere (except Apple of course). MoltenVK provides translation of v1.0 to Metal.
If departing native hardware APIs is acceptable, gfx-rs appears to work today. WebGPU is well on it's way to being fully implemented. Plus (as the article mentions) apparently QT6 is intending to introduce their own custom abstraction layer?
- coldtea 6y ago>Vulkan seems to work pretty much everywhere (except Apple of course). There's Molten.
- zapzupnz 6y agoIndeed, which is now managed by Khronos itself.
- boudewijnrempt 6y agoOpenGL works badly on MacOS and even worse on Windows unless translated through Angle. On Windows, using OpenGL directly will give performance problems and crashes _all the time_. And weird bugs, like red and blue swap on some combinations of AMD GPU's and driver versions.
- Reelin 6y ago> On Windows, using OpenGL directly will give performance problems and crashes _all the time_. Didn't the original (Java) version of Minecraft use OpenGL? It seems to have done well enough...
- pjmlp 6y agoExcept PlayStation, Android until version 10, Win32 and UWP sandboxing.
- Reelin 6y ago> PlayStation True, but Sony has some sort of completely custom thing going on there so it seems that there's zero chance of standardization in that case. > Android until version 10 I thought Android got VK support way back in version 7 (Nougat)? And hasn't it always supported GL ES? Not being a closed platform, support for any API is of course dependent on the underlying GPU and associated driver. > Win32 and UWP sandboxing TIL. I hadn't realized Microsoft restricted access to Vulkan and GL from within the sandbox. It looks like ANGLE has supported GL ES for Windows Store apps since 2014? Regardless, I was under the impression that UWP wasn't very popular with developers anyway.
- pjmlp 6y agoAndroid got optional Vulkan support on version 7, yes. And by being optional, meant most OEMs cared as much as the optional updates. Hence why on Android 10, Google took a set of actions, made Vulkan mandatory, started the path to have OpenGL ES on top of Vulkan and introduced GPGPU driver updates via the Play Store, as means to force OEMs to actually care about Vulkan. Just like many devices still don't ship with OpenGL ES 3.x, because it is optional as well. There a reason why I mentioned Win32 and UWP sandboxing and not just UWP. Yes the pure UWP model although quite nice to program for (for me it is what .NET 1.0 should have been all along) failed to gather the mass adoption that Microsoft hoped for, and that is why since two years they have changed course to merge both worlds, now officially known as Project Reunion. As a matter of fact, here is the application model for the upcoming Windows 10X, where pico processes are used to sandbox Win32, WSL style, https://youtu.be/ztrmrIlgbIc https://youtu.be/ztrmrIlgbIc Angle for UWP was contributed by Microsoft themselves and now they are working together with Collabora to support OpenGL and OpenCL. https://github.com/microsoft/angle https://github.com/microsoft/angle https://devblogs.microsoft.com/directx/in-the-works-opencl-and-opengl-mapping-layers-to-directx/ https://devblogs.microsoft.com/directx/in-the-works-opencl-a...