Open-Source NVIDIA Support For Recent GPUs Is Poor But Now You Can Fake It For Testing
Written by Michael Larabel in Nouveau on 12 January 2021 at 09:07 AM EST. 19 Comments
NOUVEAU --
The open-source NVIDIA "Nouveau" Gallium3D code within Mesa has wired up DRM shim support for basically faking the support in the absence of real hardware. This is mainly useful for testing the Nouveau OpenGL shader compiler code path without any actual code execution.

Longtime Nouveau developer Ilia Mirkin wired up support for the Nouveau_Noop DRM shim. This basically allows the Nouveau Gallium3D code to function without submitting commands to any GPU or waiting on fences.

This no-op execution is enough to allow Shader-DB to now run on the driver without any real hardware attached. Shader-DB is used for testing against shaders from the likes of Supertuxkart, Warsow, Dolphin emulator, and applications like Chromium and SKIA. This is used by developers when analyzing their shader compiler for optimizations or bugs and checking on the generated instruction counts and other metrics for striving to improve the efficiency. Thus with this new code in Mesa 21.0, the Nouveau Gallium3D code can be running Shader-DB without needing any NVIDIA GPU attached. When using this DRM shim, no actual instructions are submitted to the kernel.

By default when using the DRM shim, a Kepler GeForce GTX 780 is exposed by default but via NOUVEAU_CHIPSET= environment variable different generations can be exposed from the GeForce FX 5500 through the GeForce RTX 2080 if wanting to test the shader compiler behavior for different GPU targets.

Loading this noop target and thus no actual rendering can be done by using the MESA_LOADER_DRIVER_OVERRIDE=nouveau and LD_PRELOAD=$prefix/lib/libnouveau_noop_drm_shim.so environment variables together.

That's the latest on the open-source NVIDIA (Nouveau) front for the moment... Still no open-source Vulkan driver and the best Nouveau hardware support remains with the GeForce GTX 600/700 series until re-clocking support is sorted out for newer generations to allow for operating at the optimal performance states / frequencies. The open-source 3D support for Turing also still has to be sorted out with there just being mode-setting support for the moment. But at least until this newer NVIDIA hardware support on Nouveau is in better position, at least this DRM shim can be used for quickly performing Shader-DB analysis and tuning on their Gallium3D code.

More details on the Nouveau DRM shim support via this merge.
Related News
About The Author
Author picture

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter or contacted via MichaelLarabel.com.

Popular News This Week