Software Engineer, Linux Enthusiast, OpenRGB Developer, and Gamer

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

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

help-circle



  • 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.




  • 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.