Open-Source NVIDIA Support For Recent GPUs Is Poor But Now You Can Fake It For Testing
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.