Confused on Steam Play and Proton? Be sure to check out our guide.
We do often include affiliate links to earn us some pennies. See more here.

Well this is a fair bit unexpected. As happens quite often there was a specification update to the Vulkan API, and with it came a brand new extension to help with shaders — which Nintendo contributed towards.

Mentioned in a blog post from driver developer Mike Blumenkrantz, and also a full announcement from The Khronos Group who oversee the Vulkan API. The official Vulkan announcement post was even written by a developer from Nintendo. Notes from the announcement:

Today, Khronos® is releasing a new multi-vendor Vulkan® extension that aims to radically simplify how applications specify shaders and shader state while maintaining Vulkan’s ethos of being a highly performant “API without secrets.”

This extension is VK_EXT_shader_object. It introduces a new VkShaderEXT object type which represents a single compiled shader stage, along with 4 new functions to manipulate and use VkShaderEXT objects.

Shader objects serve a role similar to pipelines but expose a simpler, more flexible interface designed to empower applications whose architectures and/or needs for “dynamism” might have previously made the use of pipelines difficult. In environments where VK_EXT_shader_object is supported, applications can choose to use only pipelines, only shader objects, or an arbitrary mix of the two.

The post goes into details on what it does, and how it's the "culmination of years of work to bring Vulkan developers ever more powerful and easier-to-use ways to manage shaders and state". They're urging developers who overlooked Vulkan in the past due to being intimidated by it to perhaps give it another look.

And according to the blog post from Blumenkrantz:

It’s a very cool extension for Zink. Effectively, it means (unoptimized) shader variants can be generated very fast. So fast that the extension should solve all the remaining issues with shader compilation and stuttering by enabling applications (zink) to create and bind shaders directly without the need for pipeline objects.

Seems like it's going to be a big win overall, and could result in performance gains in some cases and less stuttering.

To go along with it, NVIDIA already have a new Vulkan Beta Driver available with support added.

Article taken from GamingOnLinux.com.
Tags: Game Dev, Misc, Vulkan
28 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly checked on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly. You can also follow my personal adventures on Bluesky.
See more from me
The comments on this article are closed.
All posts need to follow our rules. For users logged in: please hit the Report Flag icon on any post that breaks the rules or contains illegal / harmful content. Guest readers can email us for any issues.
7 comments

TheRiddick Mar 31, 2023
From my understanding Nintendo use Vulkan API on the Switch to squeeze as much performance out of the platform as they can, for example I heard Skyrim runs on vulkan on the Switch.
ShabbyX Apr 1, 2023
From my understanding Nintendo use Vulkan API on the Switch to squeeze as much performance out of the platform as they can, for example I heard Skyrim runs on vulkan on the Switch.

Nintendo supports both Vulkan and their own API. However pretty much no one uses Vulkan on Switch because it's not as fast as their own API (understandably, because their API is tailored to their specific hardware (which is nvidia based) while Vulkan is abstract).

This extension came as an effort to solve a major problem with Vulkan and hopes to entice Switch developers to use Vulkan instead.

That said, the extension works extremely well on Nvidia, where every state is dynamic and shader stages are pretty much independent. On other hardware, draw calls using shader objects won't be as fast as pipelines (as Mike puts it, they are unoptimized). So, it's going to take a hardware iteration or two before this is really helpful on anything that is not Nvidia.
mr-victory Apr 1, 2023
I legit thought this is an April Fool's Day joke until I checked Nvidia's website and they actually released a fresh new driver with this extension.
elmapul Apr 1, 2023
im not surprised, nintendo is part of the khrnos group after all, the only strange thing is that news like this are rare.


" They're urging developers who overlooked Vulkan in the past due to being intimidated by it to perhaps give it another look."
maybe they tried to support vulkan but also compete with their own proprietary api exclusively for their console, just like sony did suporting openGL but also competing with...
https://en.wikipedia.org/wiki/PlayStation_4_system_software#System

but in this case, maybe they failed and prefer vulkan to thrive than to see directX12 being the standard...
Shmerl Apr 2, 2023
What's good is Nintendo's interest to advance Vulkan instead of pushing their NIH. I guess they decided there is no point in continuing reinventing the wheel and put their effort behind Vulkan fully now.

Too bad Sony didn't decide to do it yet.


Last edited by Shmerl on 2 April 2023 at 6:51 pm UTC
InhaleOblivion Apr 4, 2023
Very nice move, Nintendo. Progress is always a good thing.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.