4 ms·
About OpenGL, here’s a long post outlining some of the problems: https://softwareengineering.stackexchange.com/a/88055/25371 https://softwareengineering.stackex
by Const-me 4y ago
About OpenGL, here’s a long post outlining some of the problems: https://softwareengineering.stackexchange.com/a/88055/25371 https://softwareengineering.stackexchange.com/a/88055/25371
While not directly applicable to the Pi where there’s no Direct3D, the GL issues are pretty much cross-platform.
Vulkan fixes that by stripping these problematic higher-level abstraction layers from the GL. Instead, Vulkan provides low-level access to the GPU hardware.
The triangles are still there usually, but the Vulkan has no GL-like high-level APIs to render them. Instead, in Vulkan we create and update GPU buffers and textures with the source data, create pipeline states (an object containing shaders, input layout, alpha blending, and quite a few other relevant parameters), and finally submit draw calls rendering triangles from buffers, using some pipeline state.
- aneutron 4y agoThank you so much for that link. I have been wondering for a long time why OpenGL was relegated to the graveyard, and that post has painted the picture for me.
- pjmlp 4y agoTo the point that even Carmack changed his opinion on DirectX.
- Const-me 4y agoTo be fair, in modern GL versions they fixed some of these things. In GLES 3.1 which I used a lot on Pi4 https://github.com/Const-me/Vrmac/ https://github.com/Const-me/Vrmac/ GPU vertex buffers and shaders worked fine, GLSL compiler in the drivers worked fine too. However, others issues are still present. There’s no shaders bytecode, they have an extension to grab compiled shaders from GPU driver to cache on disk, but it doesn’t work. The only way to create shaders is separate compile and link API calls. Texture loading and binding API is still less than ideal.