API discussion (Vulkan, OpenGL, DirectX, GNM/GNMX, etc.)

For those not on PC, the experimental Vulkan rollout (which I assume is necessary for the VR release) is proving fairly unstable at the moment.

OK, it’s mostly crashes - but there’s a wide spread of peculiar graphics behaviour in there as well.

I know this is not directly applicable to PS4, which has its own API, but changes to the game affect everybody’s game.


Means that the rendering will be not as good as the one we curently have? Didn’t really get what exactly is that Vulkan migration. Is it gonna be applied to the VR experience aswell? Even if PS4 systems uses another API?


My understanding is that Vulkan will improve basically everything. Developer friendly, more optimized. Vulkan is being built from the ground up and it updates no matter what graphics card you use. You can go directly to Khronos to get latest updates without updating your graphics drivers. This is great news for me, an AMD user, since many things are optimized for Nvidia. With Vulkan, is really does not matter what card you use.


No, it should be on par, but faster. They have to rewrite a lot of glue code and probably restructure their shaders somewhat, so it’s a bit of a bumpy road right now (it’s experimental, after all), but the end result will be better performance on most systems. And, as I hear, a lot more maintainable code, so there will probably be further benefits down the line.


As a participant in the Vulkan experimental release, I can say that rendering and speeds are generally better. We are working through the problems (and we are reporting them, and HG are releasing patches).

The trouble at the moment is not speed, which is generally better, but stability. There can be frequent crashes, and occasionally strange graphics behaviour.

But that’s why its an experimental release. So we, the great horde of unacknowledged beta testers, can work out the bugs, so, eventually, everyone else can enjoy a game that just works.


Beta testers? lol
Eventually works?
If they stop wasting time on rewriting the code on every release things would work.


Except then you couldn’t build anything on top anymore, and nothing could be improved. Relentless refactoring is typical for ongoing projects. In fact, be very afraid if that isn’t the case.


In this case they need to rewrite. Opengl works and can be fast on Nvidia hardware.
It does not work well on AMD hardware.
PS4 and Xbox have an AMD graphical card.

If they want to have VR on Playstation they need to use the vulkan interface as this works better for AMD hardware.


Not sure if everyone knows this but the Ps4 does not use opengl. It has 2 sets of custom apis: GNM for low level (vulkan like) and GNMX for high level which wraps GNM.

The ps4 also uses a custom shader language PSSL.

In short vulkan does nothing for ps4 users unless HG used GNMX, in which case rewriting code to use GNM may improve performance.


I was honestly surprised when I read that claim in a post above. Didn’t go looking it up, but I never assumed that the PS4 would use such a comparatively inefficient interface when they only had to support one single GPU model…


I’m sorry, wrong about the PS4 part, but for pc vr it is the correct statement.

They didn’t do this rewrite for nothing.


But Xbox one and PS4 do both use AMD based graphics. Vulcan is great for AMD users


Yes they did … lol




Ps4 and Xbox don’t support Vulkan currently


As a Windows 10 user with NVidia graphics, I was never too happy about the fact that OpenGL was the default API, as DirectX 12 would have certainly seen improved performance. It did however make sense to have OpenGL as a base for PC to support multiple platforms as well as older Windows OS versions. Also keep in mind that NMS was first released in 2016, when Vulkan had its initial release only a couple of months prior.

We are now a few years later and Vulkan has rightfully grown in popularity, with broad support and being an open source low level API. I am sure HG has been following closely and eventually made a decision to make a change. When NEXT was planned, including a release for XBox, HG was more or less forced to port/compile to DirectX 11.X/12 as well. So by this time they had OpenGL (likely their coding base API) for PC, GNM(X) for PS4, and with NEXT, DirectX 11.X/12 for XBox.

I am sure all the AMD complaints together with plans to go VR and further development plans requiring performance improvement, has led HG to rightfully drop OpenGL completely. Going Vulkan makes for that matter most sense, as it supports pretty much the same hardware as OpenGL, but either on par (GNM(X)/DirectX 12), and in many cases with improved performance (AMD/pre-DirectX 12).

Now HG can continue to port for PS4 (GNM(X)), and XBox (DirectX 11.X/12), while likely changing their base API to code for being Vulkan. They would no longer have to port from OpenGL to other required APIs, where porting from Vulkan to others is relatively easier. This to me seems like the best choice going forward and likely ‘required’ for whatever HG has planned for us.

Looking forward to upcoming PC hardware, as well as new consoles, the only odd one out, appears to be Microsoft (as usual). I believe Sony is likely planning to support Vulkan, where I have great doubts that the XBox Two will provide this. Considering both will use AMD, it would make perfect sense to have Vulkan support, although keep in mind this is ‘custom’ hardware, where Vulkan will not really improve performance, if at all. So worst case, HG will have to continue porting to both platforms. I do however hope consoles will follow, considering their use of AMD, just to make it easier on all of us.

Then of course we see other development, like Google’s Stadia, running Linux with full Vulkan support. Not to mention some other platforms like Nintendo Switch, Android/Mobile who offer full Vulkan support as well. Clearly OpenGL has to go, it is outdated and has no future, unlike Vulkan.


The fact that Vulkan can be updated independent of the hardware one is running makes it, to me, one of the most logical decisions to be made. And one doesn’t have to wait on their GPU drivers to be updated for newer versions, they can just update directly from Khronos. Using OpenGL made sense in 2016, yes. Vulkan just needed time to grow, and it has.

I have nothing against DirectX, aside from the fact that it’s locked down by M$ to their platforms. Even if M$ doesn’t implement Vulkan capabilities into the Xbox Two, as long as Sony does, it’ll be just Vulkan and DirectX to deal with from then onwards, which will make life a lot easier for developers, for the reasons DevilinPixy mentioned above. Besides, Vulkan means I can play NMS in Linux easily, so I’m happy, lol.


I’ve said it before. Microsoft poison everything they touch.

They may have a decent product, but their business ethics leave a lot to be desired.