Difference between revisions of "Make.conf/VIDEO CARDS/DRI vs. Gallium vs. NVIDIA"

From Funtoo
Jump to navigation Jump to search
(Created page with "== DRI vs. Gallium vs. NVIDIA == Graphics on Linux can be confusing due to the various technologies involved, not just the different graphics cards available but also the dif...")
 
Line 1: Line 1:
== DRI vs. Gallium vs. NVIDIA ==
== DRI vs. Gallium vs. NVIDIA ==


Graphics on Linux can be confusing due to the various technologies involved, not just the different graphics cards available but also the different software architectures for implementing graphics drivers. Traditionally, accelerated graphics in [[X]] has been implemented using a combination of technologies:
Graphics on Linux can be confusing due to the various technologies involved, not just the different graphics cards available but also the different software architectures for implementing graphics drivers. This page is here to help provide some context as to what makes up a 'Linux graphics stack.'
 
=== 'Classic' Accelerated Graphics ===
 
Traditionally, accelerated graphics in [[X]] has been implemented using a combination of technologies:


* [[DRI]], which stands for Direct Rendering Infrastructure and are ''user-space libraries'' that provide accelerated 2D and 3D graphics for X.  
* [[DRI]], which stands for Direct Rendering Infrastructure and are ''user-space libraries'' that provide accelerated 2D and 3D graphics for X.  
Line 7: Line 11:
* Mesa provides an accelerated OpenGL GLX library which leverages [[DRI]] and [[DRM]] to provide hardware-accelerated graphics.
* Mesa provides an accelerated OpenGL GLX library which leverages [[DRI]] and [[DRM]] to provide hardware-accelerated graphics.


The most well-supported version of DRI is version 2. There is a {{c|dri3}} {{c|VIDEO_CARDS}} setting that can be enabled to enable support for version 3 of DRI, which should offer improved performance. DRI version 3 support could be less mature than the same driver with just version 2 support, so the availability of a {{c|VIDEO_CARDS}} option allows it to be turned off if you experience video issues.
=== Gallium Accelerated Graphics ===


More recently, Open Source graphics drivers have started being written using a new architecture called [[Gallium]] (not to be confused with [[Glamour]].) Gallium still makes use of the kernel's DRM but provides a more modern way to design graphics drivers. A Gallium-based graphics stack will typically be composed of the following:
More recently, Open Source graphics drivers have started being written using a new architecture called [[Gallium]] (not to be confused with [[Glamour]].) Gallium still makes use of the kernel's DRM but provides a more modern way to design graphics drivers. A Gallium-based graphics stack will typically be composed of the following:

Revision as of 00:22, July 28, 2019

DRI vs. Gallium vs. NVIDIA

Graphics on Linux can be confusing due to the various technologies involved, not just the different graphics cards available but also the different software architectures for implementing graphics drivers. This page is here to help provide some context as to what makes up a 'Linux graphics stack.'

'Classic' Accelerated Graphics

Traditionally, accelerated graphics in X has been implemented using a combination of technologies:

  • DRI, which stands for Direct Rendering Infrastructure and are user-space libraries that provide accelerated 2D and 3D graphics for X.
  • DRM, the Direct Rendering Manager (Wikipedia) is considered to be a kernel-space component of DRI.
  • Mesa provides an accelerated OpenGL GLX library which leverages DRI and DRM to provide hardware-accelerated graphics.

Gallium Accelerated Graphics

More recently, Open Source graphics drivers have started being written using a new architecture called Gallium (not to be confused with Glamour.) Gallium still makes use of the kernel's DRM but provides a more modern way to design graphics drivers. A Gallium-based graphics stack will typically be composed of the following:

  • DRI, which is still used to some extent.
  • DRM, the kernel-space component of the graphics stack.
  • Gallium, a user-space API that exposes the capabilities of the underlying hardware in a more hardware-agnostic way.
  • Mesa's OpenGL GLX library, which leverages Gallium to provide accelerated graphics.

The benefits of Gallium over the 'classic' approach to graphics support is that Gallium allows for user-space graphics libraries like OpenGL to target Gallium itself rather than be written specifically to the architecture of the underlying hardware. This allows for the OpenGL (and other graphics library) implementation to be de-coupled from the underlying hardware while still providing high performance. It's important to note that the benefits of Gallium are useful primarily to graphics driver developers; in theory, these benefits will result in improved and better-maintained graphics stacks which in turn will benefit Linux users. Said another way, just because a driver is Gallium-based doesn't necessarily mean that it will provide you, the user, with superior performance or functionality over a traditional alternative.

Your graphics driver may use DRI, Gallium or possibly -- in the case of the proprietary NVIDIA driver -- neither!