This whole "Vulkan" thing... I don't get it

I read through some of the information on how development in this ‘vulkan’ thing would lead to huge leaps in N64 emulation… which is awesome.

However, I’m getting the impression that you can run other emulators via vulkan? People were mentioning how it uses .slang shaders instead of .cg.

My question is, what are the practical advantages of running a non n64 game through vulkan instead of the opengl standard?

Or am I totally misunderstanding what vulkan is?

There’s a lot of cruft and layers of abstraction involved in OGL that keep programs from having as direct control over the graphics system as the developer might like. This isn’t an issue with Vulkan. In the case of the software-rendered cores, they’re just sending their frame to a Vulkan context instead of an OGL one.

I think the most convincing case for it is Android. Even on very strong devices, we ship threaded video enabled and a bonkers-huge audio latency buffer because that sort of thing just isn’t predictable in Android and can vary, not only device to device, but moment to moment on a single device! However, on my Shield ATV, I was able to switch over to Vulkan and turn off threaded video and drop the audio latency down to just 16 ms. This kind of performance was previously totally out of the question in Android and was really only attainable with full desktop OSes.

In software rendered cores, there’s not a huge difference. If you care about input/display lag, you don’t need the CPU intensive hard sync setting to get low lag in Vulkan like you do in GL. It’ supposed to be better performance wise, but I am noticing some background scrolling stuttering in SOTN in Mednafen-PSX that I don’t get with the GL driver. Probably just because the driver is so new some Vsync stuff still needs to be ironed out.

Interesting. I can only get 32ms on my windows box. I will have to look at Vulkan for audio as well.