Today a new version of Vulkan was tagged and in addition to the usual documentation additions, there's two new extensions that are quite interesting. NVIDIA as usual have a new Beta driver for Linux ready.
Here's the two new extensions:
VK_EXT_graphics_pipeline_library
This extension allows the separate compilation of four distinct parts of graphics pipelines, with the intent of allowing faster pipeline loading for applications reusing the same shaders or state in multiple pipelines. Each part can be independently compiled into a graphics pipeline library, with a final link step required to create an executable pipeline that can be bound to a command buffer.
This was worked on by developers from Valve, Unity, AMD, Google, Arm, NVIDIA, Roblox, Gameloft, Mobica, Ubisoft and Qualcomm. Being able to split things up and re-use them sound quite useful! Dan Ginsburg from Valve wrote a big blog post on the official Khronos Group website about the work and integrating it into the Source 2 Engine.
VK_EXT_primitives_generated_query
This extension adds support for a new query type to match OpenGL's GL_PRIMITIVES_GENERATED to support layering.
Should be useful for the Zink driver that does OpenGL over Vulkan. Developed by Collabora, Arm, NVIDIA and Google.
As for the NVIDIA driver version 470.62.26 was released in their Vulkan Beta series, which is aimed primarly at developers so gamers should stick to their mainline drivers. As for Mesa with AMD / Intel, it looks like some merge requests have appeared towards getting them working too for open source drivers (#1, #2).
VK_EXT_primitives_generated_query
Should be useful for the Zink driver that does OpenGL over Vulkan. Developed by Collabora, Arm, NVIDIA and Google.
Don't get too excited about this. Zink has always used pipeline statistics query to implement this query, which is supported on desktop GPUs. While Zink _could_ switch to this extension, there is little gain to be had (other than some rasterizer-discard optimizations on AMD perhaps). Still, PGQ is a rarely used query to begin with.
The extension is a necessity for ANGLE however because mobile vendors don't support pipeline statistics queries.
Source: I'm the author of the extension.
In that case, can you bring some light on dx12 direct storage. We will have such a thing on VulkanVK_EXT_primitives_generated_query
Should be useful for the Zink driver that does OpenGL over Vulkan. Developed by Collabora, Arm, NVIDIA and Google.
Don't get too excited about this. Zink has always used pipeline statistics query to implement this query, which is supported on desktop GPUs. While Zink _could_ switch to this extension, there is little gain to be had (other than some rasterizer-discard optimizations on AMD perhaps). Still, PGQ is a rarely used query to begin with.
The extension is a necessity for ANGLE however because mobile vendors don't support pipeline statistics queries.
Source: I'm the author of the extension.
In that case, can you bring some light on dx12 direct storage. We will have such a thing on VulkanVK_EXT_primitives_generated_query
Should be useful for the Zink driver that does OpenGL over Vulkan. Developed by Collabora, Arm, NVIDIA and Google.
Don't get too excited about this. Zink has always used pipeline statistics query to implement this query, which is supported on desktop GPUs. While Zink _could_ switch to this extension, there is little gain to be had (other than some rasterizer-discard optimizations on AMD perhaps). Still, PGQ is a rarely used query to begin with.
The extension is a necessity for ANGLE however because mobile vendors don't support pipeline statistics queries.
Source: I'm the author of the extension.
Obviously I can't talk about anything that's not yet public.
For direct storage, there was an issue opened in the Vulkan-Docs github repo. I believe the working group responded. Besides, I don't work with or for windows and dx anyway, so I wouldn't know.
See more from me