NVK Driver Nearing Vulkan 1.1 For NVIDIA GeForce RTX 20 & Newer
It was just last week NVK developers were celebrating Vulkan 1.0 conformance while now this open-source NVIDIA Vulkan driver within Mesa is preparing to expose Vulkan 1.1 support.
A merge request has been opened that exposes Vulkan 1.1 support with the NVK driver. The caveat is that this Vulkan 1.1 support is just for Turing GPUs and newer, a.k.a. the GeForce RTX 20 series and newer when it comes to the consumer GPUs. Additionally, the Rust-written NAK shader compiler must also be part of the Mesa build.
Faith Ekstrand wrote in the pending merge request:
This code will presumably be merged shortly, well in time for making it into the Mesa 24.0 release.
With being limited to NVIDIA Turing GPUs and newer, you need to be using the NVIDIA GSP support found in Linux 6.7 to (slightly) improve the experience with the Nouveau kernel driver. I'm currently running tests of Linux 6.7 Nouveau with NVIDIA GSP versus without both for NVC0 Gallium3D and NVK Vulkan, but so far the performance still is disappointing in comparison to the proprietary NVIDIA Linux graphics driver.
Update [18:25]: The code was merged this evening already for now exposing Vulkan 1.1 with NVK on Turing and newer hardware.
A merge request has been opened that exposes Vulkan 1.1 support with the NVK driver. The caveat is that this Vulkan 1.1 support is just for Turing GPUs and newer, a.k.a. the GeForce RTX 20 series and newer when it comes to the consumer GPUs. Additionally, the Rust-written NAK shader compiler must also be part of the Mesa build.
Faith Ekstrand wrote in the pending merge request:
nvk: Advertise Vulkan 1.1 on Turing+
We actually trigger on whether or not NAK is used for everything. If so, we claim 1.1, otherwise claim 1.0. We need NAK for subgroup ops and other advanced shader features in later Vulkan versions.
At this point, our Vulkan 1.1 pass rate is about equivalent to 1.0. There's a few memory model tests we're failing which are all due to an issue with memory barrier instructions and then pretty much the same tests we're faling on 1.0. I think it's good enough to flip the switch. This will make app testing a lot easier. Among other things, once the ICD json file claims 1.1 or above, the Vulkan loader will start looking for vkEnumerateInstanceVersion() and stop assuming 1.0 so MESA_VK_VERSION_OVERRIDE=1.3 will work.
This code will presumably be merged shortly, well in time for making it into the Mesa 24.0 release.
With being limited to NVIDIA Turing GPUs and newer, you need to be using the NVIDIA GSP support found in Linux 6.7 to (slightly) improve the experience with the Nouveau kernel driver. I'm currently running tests of Linux 6.7 Nouveau with NVIDIA GSP versus without both for NVC0 Gallium3D and NVK Vulkan, but so far the performance still is disappointing in comparison to the proprietary NVIDIA Linux graphics driver.
Update [18:25]: The code was merged this evening already for now exposing Vulkan 1.1 with NVK on Turing and newer hardware.
27 Comments