Vulkan 1.3.246 Released With VK_EXT_shader_object

Vulkan 1.3.246 has been published with one prominent new extension introduced that was started by Nintendo and worked on by several other hardware/software vendors.

Besides the weekly churn of documentation fixes/clarifications, Vulkan 1.3.246 brings two new extensions: VK_EXT_shader_object and VK_EXT_shader_tile_image.

VK_EXT_shader_object is an exciting one worked on by Nintendo, NVIDIA, AMD, LunarG, Google, Valve, Roblox, Activision, and various other organizations. VK_EXT_shader_object adds a new shader object type to represent a single compiled shader stage. The Vulkan shader objects are intended to be more flexible but comparably performant alternative to pipeline objects.


Mike Blumenkrantz of Valve's Linux graphics team and known for his work on the Zink OpenGL-on-Vulkan driver commented :
"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.

Widespread adoption in the ecosystem will take time, but Lavapipe has day one support as everyone expects for all the cool new extensions that I work on."

VK_EXT_shader_tile_image as the other new extension in Vulkan 1.3.246 was worked on by Valve, Arm, Imagination, AMD, NVIDIA, and others. The VK_EXT_shader_tile_image extension allows fragment shader invocations to read color / depth / stencil values at their pixel location in rasterization order. This VK_EXT_shader_tile_image functionality is only available when using Vulkan dynamic rendering.

More details on today's Vulkan 1.3.246 spec update with these notable extensions can be found via this commit .