Last October we talk here on the blog about the NVK driver, an open source driver for Mesa that implements the Vulkan graphics API for NVIDIA graphics cards that Collabora has been working on from scratch using official header files and open kernel modules published by NVIDIA.
During its development NVK had the “experimental” label and now, in more recent news Collabora has announced that NVK has become stable and recommended for general use since its full compatibility with the Vulkan 1.3 specification has been tested. This controller has successfully passed all CTS (Khronos Conformance Test Suite) tests and is included in the list of certified controllers.
The certification covers NVIDIA GPUs based on Turing, Ampere and Ada microarchitectures, including from GeForce GTX 16xx to RTX 4xxx and RTX 4000 series, RTX A2000 to 6000. These tests were performed in environments with Linux kernel 6.5 and 6.8rc1.
It is mentioned that Obtaining the certificate officially declares compatibility with graphics standards and permits the use of the associated Khronos trademarks. The changes have already been incorporated into the Mesa codebase and will be available in Mesa 24.1.
In addition to advances in NVK, Significant improvements have also been made to OpenGL support for NVIDIA video cards. Mesa has adopted a change that allows the use of the Zink driver to provide support for OpenGL 4.6 on systems with new series of NVIDIA video cards, which may experience issues with the standard Nouveau OpenGL driver (NVC0).
We've been working hard over the past few months to finish the last bits needed for DXVK to now run out of the box on Upstream Mesa. Not all D3D11 games are guaranteed to work (there will be bugs), but all the basic requirements are there. We are actively working on the remaining parts to support D3D12 emulation via VKD3D-Proton. There's a lot already done or in progress, but there are still some pieces missing, so don't expect D3D12 games to work just yet.
These changes in Mesa They also open the possibility of using Zink to support OpenGL in other drivers as an alternative for GPUs that are not supported by Mesa's native OpenGL drivers. For example, a similar approach is being used to provide OpenGL support in the freedreno driver for the Qualcomm Adreno 700 GPU and the powervr driver for the Imagination PowerVR GPU based on the Rogue microarchitecture.
In the next version of Mesa, the Zink driver will be enabled by default during compilation. Zink's performance is comparable to native OpenGL implementations, making it possible to focus on high-quality support for the Vulkan API rather than maintaining individual OpenGL drivers.
While there are no plans to remove the old Nouveau driver OpenGL, Zink + NVK combination demonstrates higher performance in many tests. At the current stage of development, this combination allows for performance of 60 FPS and above on new GPU models, although there are still unoptimized areas that will be resolved over time.
On the other hand, it is mentioned that work is being done to stabilize the operation of the DXVK layer on the NVK driver, which provides an implementation of Direct3D 9, 10 and 11 by translating calls to the Vulkan API. Although not all D3D11 games are yet guaranteed to work with Mesa's unmodified NVK+DXVK combination, identified defects are being gradually eliminated. Likewise, the NVK connection with VKD3D-Proton is being developed to provide support for D3D12, although its status is still in development and requires implementing some missing capabilities.
Finally, it is worth mentioning that the driver is already included in Mesa, and the necessary changes to the Nouveau DRM driver API are included since the Linux kernel version 6.6. Naps interested in knowing more about it, you can check the details In the following link.