Yes, it says hi and then when you want to upgrade the disk/RAM you can't. And when it breaks you can't fix it and Apple sells you another one for bazillion dollars. And you have to use Metal instead of OpenGL. That's when I say goodbye until they reverse engineer the GPU and port OpenGL to it! :D
Now I didn't even mention the App store tie in and how you need to sign the binaries on Apple hardware and how they poach 30%, but you get the picture.
> And when it breaks you can't fix it and Apple sells you another one for bazillion dollars.
I’f you’re lucky enough to live in a country with consumer protection laws (NZ is one), Apple will fix if for you for 3-4 years.
So you pay the fortune you mention and then a bit more to cover this feature.
Really those APIs bring nothing useful to the table.
OpenGL (ES) 3 with VAO was the last feature that really moved any interesting goalpost (to reuse that phrasing since we have a tree structured comment field to move those around) for games.
Most new protocols are just job security.
Edit: Also calling something that just released in hardware (OpenGL ES 3) legacy is kinda weird.
Now I can reply to your comment (what is going on hn, why is there a timer on the reply button the deeper you get?)
Performance with the low level APIs are not something that competes with OpenGLs higher level API, they are complementary; eventually there will be OpenGL drivers written in Vulkan!
That said, I have yet to meet anyone that can give me a practial example that affects gameplay where Vulkan (or Metal/DX12) makes a difference!
Also last but not least fragmentation is bad, I rather support OpenGL (ES) 3 on all platforms than port to those 3 new APIs.
Sure, OpenGL can be implemented on top of the native efficient APIs.
The biggest problem with OpenGL is the state. It severely affects CPU usage and limits parallelism options. The second problem is poor handling of buffers.
It hardly matters, anyway. Vulkan, D3D 12 and Metal are very similar and almost always used indirectly through a game engine that can take advantage of them.
Unity and Unreal are so bad. I mean compile for 30 minutes? To use them is to have technical debt way beyond what is healthy.
So why can't you make OpenGL stateless? It seems to me multithreading is really bad on the new APIs too, you'll have to trash memory with a bunch of buffers that then gets submitted by one thread causing motion to photon latency!
RdR2 had like 10 frames of lag! Completely unplayable.
I prefer direct/forward rendering one one thread and make the graphics simpler instead. Graphical fidelity is not important to make a fun game, just look at Nintendo.
Now I didn't even mention the App store tie in and how you need to sign the binaries on Apple hardware and how they poach 30%, but you get the picture.