Software Engineer, Linux Enthusiast, OpenRGB Developer, and Gamer

Lemmy.today Profile: https://lemmy.today/u/CalcProgrammer1

  • 3 Posts
  • 135 Comments
Joined 3 years ago
cake
Cake day: June 9th, 2021

help-circle











  • The only instance I can see this is if a game requires a new Vulkan extension, which wouldn’t need a new kernel but would need a new Mesa version to provide that extension. For the most part, games use established and standardized APIs (OpenGL, Vulkan, Direct3D) to utilize the GPU and as long as the driver implements the APIs used by the game, the driver doesn’t need to continuously update in order to support game updates. On Linux, the driver doesn’t handle Direct3D anyways and an intermediate layer (DXVK or VKD3D) is used to translate Direct3D API calls into the Vulkan API. Vulkan does support extensions which are added every so often to provide new interfaces and the userspace portion of the driver (which is responsible for compiling/translating Vulkan API calls into raw GPU instructions) needs to be updated to support these, but also sometimes these extensions are optional and games can use less optimized code paths to work around missing extensions.


  • The kernel driver is a rather small piece of the overall puzzle though, itps just the pipe that GPU commands are passed through. The bulk of the GPU driver code (and the majority of its impact on performance) is in the userspace components like the shader compiler and the OpenGL/Vulkan libraries. These are closed source.

    The exception to this rule is that the kernel driver is responsible for power management and controls the GPU clocks, but as part of opening up the kernel driver NVIDIA made reclocking available for the fully open driver (nouveau/nvk) to use as well which means the performance differences between the two driver stacks are now down to optimizations.



  • I got a Radeon 7800XT in March and have had no significant issues with it on Arch Linux. The issues I have had were from running the bleeding-edge mesa-tkg-git drivers which are the pre-release development builds, and sometimes things break there (I had a weird issue where red and green got swapped in X11 apps). You have to go out of your way to run those drivers though, stick with the released version in your distro’s repository and you’ll be fine. I can play most games above 100Hz at decent resolution and quality. I have a 4K 144Hz monitor with Freesync but for more demanding games usually need to turn down settings a bit or use resolution upscaling like FSR. I upgraded from an Intel Arc A770 and it was a big performance increase.





  • The key thing to note about NVIDIA “open sourcing their driver” is that they only open sourced the kernel portion. I see no intention of opening the userspace portion. GPU drivers have multiple parts. The kernel driver is the low level interface that passes data to and from the hardware while the userspace is what actually handles converting OpenGL, Vulkan, OpenCL, CUDA, etc. calls into GPU commands and that part is where most of the performance impact happens. NVIDIA is not open sourcing the userspace.

    That’s why NVK/Nouveau are so important, because it is a fully open stack. It is also part of the Mesa project which encompasses all the open GPU drivers on Linux which makes it more integrated with the Linux graphics stack.


  • On AMD there is a pro driver that I think is proprietary but nobody uses it for desktop usage or gaming. You might use it if you were doing GPU compute servers on professional cards, but the open source radv driver has the best gaming performance for AMD.

    On NVIDIA there is the proprietary driver that consists of out-of-tree module (both open and closed source variants depending on what GPU generation) and the proprietary userspace OpenGL/Vulkan/CUDA driver. Completely separately you have the open source Nouveau kernel and OpenGL driver and NVK Vulkan driver. The proprietary one has better performance in most cases but is broken for Overwatch 2 while NVK runs OW2 smoothly at low settings for me, and that’s my most played game.

    And yeah, I am the creator of OpenRGB. Thanks!


  • AMD. Not even a question, really. AMD has by far the best drivers. Intel is in a reasonable second place in that they at least have open source drivers and those drivers work well, but due to their newness in the discrete GPU space I still occasionally see issues on my A770. It is solidly usable for the most part though. NVIDIA? Dead freakin last. Their proprietary driver is a mess to install and only recently is able to render anything without screen tearing and unplayable flicker. The situation is improving though thanks to NVK, an awesome third-party, reverse engineered, open source driver that is seeing rapid improvement. I can play Overwatch at 165fps on my RTX3070 laptop finally, but only at lowest settings and 50% resolution scaling (it can do the same at ultra on Windows at 100%). I am very confident we’ll see NVK improve performance though.