for some definition of "people" .. isn't the detail at the low level sort of overwhelming on modern cards?
for some definition of "people" .. isn't the detail at the low level sort of overwhelming on modern cards?
Lots of people argue that slow shitty software is good enough, because its not worth spending time, energy and money doing things right. I dont agree with this, but its consistent argument: Money and time is more important then software that runs well. At least then you have made a choice about your priorities.
I would love to learn a new low-level API for better performance, but I really don’t think the time I spent learning Vulkan to benefit of the same performance I could have using OpenGL worth it.
I will make an update to the article this week to make a clearer explanation, thank you for your comment.
The complexity of Vulkan can (and in naive cases, always) slow things down in comparison to OpenGL. What you get with Vulkan isn't +X% more performance, but consistent performance.
Both OpenGL and DirectX already did all of the things that you need to do with Vulkan/DX12. The difference is that drivers were black boxes back then, and everything worked with heuristics. A relatively minor change could evict you from the fast path into the oblivion. 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. GPU mafia was/is a real thing.
Vulkan cuts straight through that. Yes, synchronization is hard, but it is way harder to figure out when the driver arbitrarily inserts a gigabarrier and when it doesn't. 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.
It was never about more performance. It was always about consistent performance.