Summary:
I never blamed any Blender dev, you just put words in my mouth. I mainly said that OpenGL is all over the code and thus removing it will be hard work. Abstractions are slow, OpenGL main purpose was all about speed on multiple platforms, some abstraction was necessary to make it able to run on multiple platforms, GPU companies showed little interest on keeping up OpenGL low level enough to be fast, it abstracted away to oblivion, Apple abandoned a sinking ship, like Flash everyone blamed Apple and call it greedy and to" prove it" moved on to Metal/Vulkan the same way people moved to HTML/JS " to prove" how wrong Apple was to move away from Flash. Like Flash in a decade almost none will remember or care about OpenGL. In the mean time let’s all blame Apple.THE END
Long version:
Ok let’s take things from the start
When Elite , one of the first games to use 3d graphics , appeared there was no OpenGL , there was no GPU. Everything had to be rendered via software. Essentially software predates hardware by several decades.
So when you say that OpenGL can do things that hardware cannot do, you basically say that software does things that hardware cannot which is the whole point of software.
The abstraction you see in OpenGL was placed there because it necessary to make it possible to use on any GPU. Without it OpenGL would not have been able to run only on any OS but also any GPU and none would have used it. So it’s not as if OpenGL ever had a choice on that department.
However to actually claim that OpenGL abstraction was the main reasoning behind the API is basically equal to claiming that ease of usage was the main reason instead of speed. Nothing could be further from the truth. When OpenGL came out game developers were still relying on Assembly for game development as C++ was deemed too slow for their demands , I know because I was learning 3d graphics coding back in 1996 with the current craze that was 3d mazes. 1996 was a time that 3d games was already popularized by DOOM that was released 3 years earlier and took the world by storm. Guess how much of it was hardware accelerated.
Creating features on the software side, aka “software acceleration” or “hardware emulation” or “virtual hardware” , is a popular technique that has been always in use way before OpenGL was even a grain of an idea, the problem however with software acceleration is that is slow.
It’s slllllooooooowwwwwwww … last time I checked over a decade ago was at least 10 times slower than hardware accelerated features. It’s true that game developers do use software features to achieve results not possible with hardware, or to support multiple platforms, but that has been always a mainly no go zone because game development is all about speed. So it’s not practical possible for OpenGL to either target abstracting away hardware or ease of use without bringing the system to a crawl. Elite devs had to count bytes to make sure the hardware did not explode under all the software emulation which was super basic.
Since the vast majority of graphics coders are game coders having something that is not 10 times slower but even 10% slower is a no go. Simple as that.
Also the future features you describes were introduced because the group behind OpenGL was made from members like NVIDIA which introduced hardware features before hardware was even released. That’s normal because OpenGL did not release that often and could not keep up with the crazy evolution with hardware which was also the main reason for its demise.
The main reason why Metal and Vulkan gained traction is also the same reason why OpenGL gained traction.
Apple
It’s not coincidence that the moment Apple decided to abandon OpenGL , everyone abandoned OpenGL. Apple was not the company to invent OpenGL but it was the company to popularize it and establish it, without Apple OpenGL could not survive , the same way without Apple , Flash could not survive.
The reason why Apple abandoned OpenGL ?
Speed
To paraphrase a famous quote
“Speed, speed, speed, speed, speed, speeeeed”
I did not blame any dev, I did not say that blender dev were stupid not to abstract OpenGL away . Afterall my whole point is that abstractions hurt performance. I mainly said that this would make it hard to port Blender to Vulkan/ Metal. Of course they could have predicted the demise of OpenGL which was no surprise with the ridicule it was suffering from people comparing it with the speed of DirectX which was always a big thorn for game devs using it, not to exclude how poorly it was supported by GPU manufacturers which had little interest for the MacOS platform which at the time had 3.5% of the market, compared to almost 15% it has nowadays, and zero interest on Linux that its market share was basically… welll… zero
Which what led Linus to show the middle finger to NVIDIA, a video that turned to one of the most popular memes.
But Blender with only a couple of full time devs could not do much on the issue anyway. OpenGL was the right choice and the obvious choice, in case of Blender, it was the only choice.