On 5/5/2019 at 7:57 AM, congard said:
I am creating a 3D engine using OpenGL, but recently I came across OpenGL and Vulkan benchmarks. They showed that Vulkan is ~10-20% faster than OpenGL. And I thought about the compatibility of the engine with the Vulkan API. And if I support these two APIs at the same time, “in the OpenGL style”, would Vulkan not have a performance loss? And does it even make sense to add support for Vulkan in 2019?
I personally am. And except for a far future, there's no plan to make a Vulkan support now. Benchmarks are benchmarks, they show many numerical values and sometimes beautiful scenes. But if you don't know what has been done in the background they mean nothing. I will say a dumb thing, but if the benchmark compared OpenGL immediate mode against a simple implementation on Vulkan, then forget the results. I currently highly doubt many programmers are able to do very faster implementation on Vulkan compared to AZDO OpenGL. Some people are certainly able to do it here on this forum, but they are hard-core, talented and very experienced graphics programmers, which know perfectly what they are doing. The kind of person who are writting blogs and other papers we have difficulty to follow whenever we could reach such pages.
If you have a deep look of some programs made with OpenGL, you'll realize that different hardware behave differently, and thus have different performance when doing the same implementation. I am facing this currently, but this won't lead me to move to Vulkan, because I am far far away of knowing what to exactly do to accomodate to different technologies.
Also note that Doom 2016 is done using OpenGL, not Vulkan, not DirectX 12.
On 5/5/2019 at 12:44 PM, congard said:
Well, in that case I’ll ask: how hard will it be to add support for Vulkan, if the engine is currently running completely on OpenGL? How different is the logic of these APIs? And is it possible to add lossless support for the performance of these two APIs? Perhaps there are already any projects that combine both OpenGL and Vulkan, and which can be easily implemented into the engine?
This shows that you are still beginning. And as such, avoid Vulkan, to my opinion.