OpenMW on Vulkan API?

Everything about development and the OpenMW source code.
Post Reply
DJs3000
Posts: 18
Joined: 15 May 2019, 16:48
Location: Moscow

OpenMW on Vulkan API?

Post by DJs3000 »

Hello!
Have you thought about adding support for the Vulkan API as an option? There is an OpenSceneGraph running on Vulkan(VulkanSceneGraph https://github.com/vsg-dev/VulkanSceneGraph)
User avatar
akortunov
Posts: 899
Joined: 13 Mar 2017, 13:49
Location: Samara, Russian Federation

Re: OpenMW on Vulkan API?

Post by akortunov »

1. VSG is just a work-in-progress software so far.
2. We do not have a manpower to maintain two different graphic API's, or even to drop OpenGL and use Vulkan without options.
Chris
Posts: 1625
Joined: 04 Sep 2011, 08:33

Re: OpenMW on Vulkan API?

Post by Chris »

That said, OpenMW is an open-source volunteer-driven effort. If someone puts in the effort, and is willing to stick with it, it could be considered for (future) inclusion. Just be aware that it would be quite a bit of work, not only getting Vulkan to work, but to be compatible with the shaders and whatever else used in the opengl path... especially if it's to be any more efficient (nvidia's drivers are rather good at getting performance out of opengl).
1Zero
Posts: 38
Joined: 09 Feb 2020, 18:44

Re: OpenMW on Vulkan API?

Post by 1Zero »

I recently started to learn 3D programming from scratch, pretty interesting. Fortunately, I already know quite a bit of linear algebra and differential geometry, so I could see behind the intentions and motivations for the algorithms deployed in VSG although the general render pipeline process is still very exotic for me and will likely take a while to get used to. Not sure if it's worth getting too invested into a technology (OpenGL) which will be legacy in a few years. I could compile VSG with no problem in VS 2019 and get some small projects running.
User avatar
AnyOldName3
Posts: 2666
Joined: 26 Nov 2015, 03:25

Re: OpenMW on Vulkan API?

Post by AnyOldName3 »

OpenGL will still be used for decades yet. Not everyone and everything will switch over. There's a lot in common between the APIs, too, so skills are fairly transferrable. You just need to do a lot more manually with Vulkan.
1Zero
Posts: 38
Joined: 09 Feb 2020, 18:44

Re: OpenMW on Vulkan API?

Post by 1Zero »

AnyOldName3 wrote: 09 May 2020, 15:04 OpenGL will still be used for decades yet. Not everyone and everything will switch over. There's a lot in common between the APIs, too, so skills are fairly transferrable. You just need to do a lot more manually with Vulkan.
I didn't expect OpenGL to be so future proof. I heart that OpenGL runtime behaviour is fairly inconsistent depending on your runtime environment, even driver changes can occasionally (supposedly) break OpenGL code? People claim. VSG should abstract the low level operations away to some degree - if it provides the same (-ish) higher level API as OSG, it shouldn't really matter.
User avatar
AnyOldName3
Posts: 2666
Joined: 26 Nov 2015, 03:25

Re: OpenMW on Vulkan API?

Post by AnyOldName3 »

If you're using OpenGL correctly, behaviour should be the same wherever you use it. Sometimes there are driver bugs (Vulkan was supposed to help with this by making it easier to write drivers, but most vendors just used smaller driver teams to make similar-quality drivers instead of the same sized team making better drivers) but most of the time, inconsistencies are because developers tested buggy code on their machines, and it happened to do what they wanted, so they assumed their code wasn't buggy. It's a bit like ordering a made-up drink name at a bar - your one bartender might guess what you might have meant, tricking you into thinking you'd ordered something real, when another would just have told you they thought you'd made it up.
1Zero
Posts: 38
Joined: 09 Feb 2020, 18:44

Re: OpenMW on Vulkan API?

Post by 1Zero »

AnyOldName3 wrote: 10 May 2020, 03:07 If you're using OpenGL correctly, behaviour should be the same wherever you use it. Sometimes there are driver bugs (Vulkan was supposed to help with this by making it easier to write drivers, but most vendors just used smaller driver teams to make similar-quality drivers instead of the same sized team making better drivers) but most of the time, inconsistencies are because developers tested buggy code on their machines, and it happened to do what they wanted, so they assumed their code wasn't buggy. It's a bit like ordering a made-up drink name at a bar - your one bartender might guess what you might have meant, tricking you into thinking you'd ordered something real, when another would just have told you they thought you'd made it up.
So in short, aside from driver vendor caused trouble, some OGL developers are not following OpenGL API guidelines and thus OpenGL can't guarentee that the software runs as expected on every platform, even though it run on the developers machine just fine.
I personally tend to always follow "official" API guidelines even when I realize that using some hack would be faster or yield another advantage.
Did OSG follow OGL best practise?
Post Reply