What does `Vulkan` do exactly?

This forum is the ideal place for all discussion relating to X4. You will also find additional information from developers here.

Moderator: Moderators for English X Forum

radcapricorn
Moderator (English)
Moderator (English)
Posts: 3230
Joined: Mon, 14. Jul 08, 13:07
x4

Re: What does `Vulkan` do exactly?

Post by radcapricorn »

SpaceCadet11864 wrote: Also, please please tell me what claims specifically were outragoues? I'm at a loss here.
Ok...
SpaceCadet11864 wrote: Tue, 11. Dec 18, 21:34 Better performance??? Where did you even come up with that? It's better than openGL but isnt squat compared to DirectX.
Nope, but at least that one you've already self-corrected.
Besides, Vulkan is more comparable to OpenGL, as both are cross-platform and Open Source. DirectX is proprietary to Windows, and API is not open source either.
Nope, Vulkan is more comparable to DirectX. Just look at the code. Open-source or otherwise doesn't enter into it. Besides, Vulkan isn't "open-source", it's implementations are still supplied by vendors. It's just an open API that isn't tied to a particular platform.
Every AAA title you find uses DirectX 11 or 12.
Exclusively, yes, there are still games that do that. Then there's DOOM. As time goes forward, it's likely more will start adopting Vulkan or even switching to it. It's still a relatively young API.
The games look a lot better with it too.
Looks have nothing to do with the API you're using. You can literally render the same picture in modern OpenGL, DirectX or Vulkan.
If youre using NVIDIA, you have a lot more optimization and graphics options with DirectX, more limitations with openGL (ambient occlusion is not even supported with openGL) - while Vulkan is nonexistant save for a few blog posts saying "we support vulkan!"
Incorrect. For one, ambient occlusion has little to do with the API. You can implement your own with shaders, you don't need dedicated API functionality for it. As for the "blog posts", it's nVIDIA that has been pushing it's ray-tracing extensions into Vulkan, is it not?
Here's the thing: if you want to make a game that looks amazing on windows but not be cross platform, then you want to use DirectX.
Nope, if you want to make a game that looks amazing, you make a game that looks amazing. Neither Windows nor DirectX enter into it.
If you want to make a game that supports mac and linux and windows, better off using openGL, and now Vulkan. Or if you have a political agenda, use openGL or vulkan.
If you have a "political" agenda (i.e. vendor backing) you're more likely to use DirectX, not OpenGL or Vulkan.
Vulkan is superior to openGL they say. But there is plenty of evidence that suggests it doesn't hold a candle to DirectX.
Where?
DirectX12 has real time ray tracing for chrissake.
So? It's DirectX 12. Vulkan is what, 1.1 now? It was only first released into the wild two years ago, that's just not enough time to mature or be adopted by big guys with decades-old codebases heavily invested into different APIs.
Honestly, whoever said "its better than directx" are you fkn trolling?
No one said that.
SpaceCadet11864
Posts: 476
Joined: Tue, 4. Dec 18, 02:14
x4

Re: What does `Vulkan` do exactly?

Post by SpaceCadet11864 »

Thanks, I'm sitting in my chair mostly corrected - and again sorry for being rude. I read "vulkan is higher performance" as "vulkan is better than directx" which I think a few people were saying, which irked me the most because as you of all posters in this thread probably know, that is still in debate.
If youre using NVIDIA, you have a lot more optimization and graphics options with DirectX, more limitations with openGL (ambient occlusion is not even supported with openGL) - while Vulkan is nonexistant save for a few blog posts saying "we support vulkan!"
Incorrect. For one, ambient occlusion has little to do with the API. You can implement your own with shaders, you don't need dedicated API functionality for it. As for the "blog posts", it's nVIDIA that has been pushing it's ray-tracing extensions into Vulkan, is it not?
I don't know about this one. I have NVIDIA, and basically have a lot more 3D optimization options in the control panel for DIRECTX games (ambient occlusion is one, but there is more) - I have by far the fewest options for opengl, and have zero options, none at all, for vulkan. Maybe that's because its new? probably.
So? It's DirectX 12. Vulkan is what, 1.1 now? It was only first released into the wild two years ago, that's just not enough time to mature or be adopted by big guys with decades-old codebases heavily invested into different APIs.
I haven't heard of nvidia wanting to push it to vulkan, most I heard of ray tracing is microsoft bringing it to DirectX and then a few months later NVIDIA coming out with RTX which supported it. That being said, I don't think having a decades-old codebase puts you in a better position to invent Real time raytracing, i mean if anything having an old codebase can set you behind in some cases. However, I think your point is Vulkan is new, give them some time - and if it is, I agree there.

Oh and about SPIR-V
It looks like people use GLSL and compile them to SPIR-V - BTW: Have you seen the shaders unpacked from the .cat files? They're GLSL I think.

I wonder if we could modify the shaders and try to optimize them? I dont really know GLSL though and I'm thinking we're probably missing some files:

https://www.khronos.org/opengl/wiki/GLSL_Optimizations
radcapricorn
Moderator (English)
Moderator (English)
Posts: 3230
Joined: Mon, 14. Jul 08, 13:07
x4

Re: What does `Vulkan` do exactly?

Post by radcapricorn »

SpaceCadet11864 wrote: Wed, 12. Dec 18, 01:26 Thanks, I'm sitting in my chair mostly corrected - and again sorry for being rude. I read "vulkan is higher performance" as "vulkan is better than directx" which I think a few people were saying, which irked me the most because as you of all posters in this thread probably know, that is still in debate.
You're welcome ;) I must say, there has been a certain degree of overreaction on both sides.
I don't know about this one. I have NVIDIA, and basically have a lot more 3D optimization options in the control panel for DIRECTX games (ambient occlusion is one, but there is more) - I have by far the fewest options for opengl, and have zero options, none at all, for vulkan. Maybe that's because its new? probably.
That's just it - there shouldn't be (ideally) any, or at least very little. That is the vision behind Vulkan - to rip off all the driver gunk out of it, as much as possible. That includes those "tweaks". Which is all they are - driver overrides of certain functionality. They allow the driver to interact with the pipeline, at unspecified costs. What makes those tweaks possible is that behavior of certain API calls is left up to the implementation (the driver). With Vulkan, programmers are supposed to write exactly the pipeline they require. Conditions do apply of course, it's not like we live in an ideal world. Some tweaks will come with time, I'm sure.
I haven't heard of nvidia wanting to push it to vulkan, most I heard of ray tracing is microsoft bringing it to DirectX and then a few months later NVIDIA coming out with RTX which supported it.
https://devblogs.nvidia.com/vulkan-raytracing/

I've yet to look at that particular API though. Of course, there already have been posts on these very forums about how EGO now could "enable" ray-tracing in X4, as if that's just a switch to toggle. Annoys me to no end.
That being said, I don't think having a decades-old codebase puts you in a better position to invent Real time raytracing, i mean if anything having an old codebase can set you behind in some cases. However, I think your point is Vulkan is new, give them some time - and if it is, I agree there.
Indeed it can, that's why Ego re-envisioned the whole graphics approach, twice now. First in Rebirth, then in Rebirth VR and X4. There's only so much you can stuff into your old pipeline. But don't forget - large AAA-producing companies have tech that has been bringing them profits for years now. It's not likely they'd just drop all that and rush for new and shiny things. Adoption takes time. DOOM really stands out in that regard, but Id always was a pioneer of bleeding edge, so that isn't surprising.
Heck, getting rid of legacy setbacks was the purpose of OpenGL 3+, and now - Vulkan. Still, we shouldn't just expect that Vulkan would "replace" DirectX. Most likely people will continue using platform-specific APIs for a good while, for better driver support and compatibility.
Oh and about SPIR-V
It looks like people use GLSL and compile them to SPIR-V - BTW: Have you seen the shaders unpacked from the .cat files? They're GLSL I think.
Core Vulkan, at least for now, does not define any particular high-level shader language. There is, however, a GLSL compiler supplied with the SDK, and there's even an extension to the API that lets the drivers utilize their already existing compilers, so that application developers can just pass GLSL code directly without having to pre-compile it to SPIR-V (that's what I meant earlier about custom compilers). Whether EGO does that or has their own translator, I don't know, and I haven't looked at those game files. Maybe when I can actually play the damn game :D
I wonder if we could modify the shaders and try to optimize them? I dont really know GLSL though and I'm thinking we're probably missing some files:
https://www.khronos.org/opengl/wiki/GLSL_Optimizations
I highly doubt that. As that article states, those particular things vary between implementations, meaning, especially with Vulkan, that one has to know exactly what compiler is used to translate the GLSL code, and looking at the resulting bytecode. Without that, and most importantly, without having particular performance data, any "optimizations" of that sort are moot. Not to mention that, judging by what people are reporting, GPU performs just fine with the game.

Return to “X4: Foundations”