Even with Vulkan/DX12 you still encounter these issues, but at least with these latest APIs you can reason about things, and be generally correct. Yes, synchronization is hard, but it is way harder to figure out when the driver arbitrarily inserts a gigabarrier and when it doesn't. You had to blindly figure your way out, or if you were 'big enough' you could contact the driver team, at which point you would enter the world of GPU politics. A relatively minor change could evict you from the fast path into the oblivion.
The difference is that drivers were black boxes back then, and everything worked with heuristics. What you get with Vulkan isn't +X% more performance, but consistent performance.īoth OpenGL and DirectX already did all of the things that you need to do with Vulkan/DX12. The complexity of Vulkan can (and in naive cases, always) slow things down in comparison to OpenGL.
that the complexity of the Vulkan is like 5x more than OpenGL for… 5% better performance?