“Drivers” for the subject brands of GPUs for X, whether Wayland or Xorg, consist of multiple components or layers. This primer discusses only the first two layers, and only for the FOSS types included in the openSUSE installation media and standard repositories.
First layer is the kernel. Each kernel comes with one or more of its own modules for each brand of GPU. For AMD, there is amdgpu for current and recent GPUs/APUs/IGPs, and radeon for older. For Intel there is gma500 for a many SOC configurations, and i915 for the vast majority. For NVidia there is only nouveau. These kernel modules provide Kernel ModeSetting (KMS) functionality that the foundational X driver layer unconditionally depends upon.
These foundational X drivers are traditionally hardware device dependent, and thus are called DDX, for device dependent X (driver). Again, for AMD there is amdgpu for current and radeon for older; for intel there is only intel; and for NVidia there is only nouveau. Each of these is provided by an upstream optional xf86-video-* rpm package. However, there is a newer technology generic driver, now more than six years old, that functions as if it was device dependent, but which is in fact created for supporting AMD, Intel, NVidia (and others), not surprisingly, called modesetting. This modesetting DDX is provided by the X server rpm package rather than a separate rpm, so is not optional, unlike the xf86-video-* rpms. Because it is relatively new, older GPUs (roughly prior to Gen4 for Intel, or 2007 or 2008 for others) are not supported by it.
Even though upstream modesetting is the default DDX, and the xf86-video-* rpms are technically optional, most openSUSE installations include the rpm xorg-x11-driver-video, which is a metapackage that installs every one of the xf86-video-* packages. This metapackage causes older GPUs unsupported by the modesetting DDX to be supported by a default installation, which in effect preempts the upstream default modesetting DDX that supports most non-ancient GPUs that are not too new for standard support.
Because of this preemptive override, most people speaking of video “drivers” don’t even know it exists. And because of the similar naming for kernel modules and DDXes, discussion of graphics “drivers” is often lacking clarity. This is particularly true for those for NVidia GPUs. Discussion of kernel driver is often intended when technically speaking of a DDX, and vice versa.
Those who wish to employ the modesetting DDX can most easily do so by uninstalling the xorg-x11-driver-video package and whichever xf86-video-* package is applicable to the installed GPU(s). Whether the modesetting DDX will perform “better” than a GPU-specific xf86-video-* package can only be determined by trying both and comparing behavior. It is not unusual that tearing or other buggy behavior can be eliminated or reduced by a DDX switch.
For X there are additionally a pair of limited functionality drivers that do not depend on KMS that support AMD, Intel, NVidia and more. These are FBDEV and VESA. These are unaccelerated, and support few, if any, modern widescreen resolutions, typically limited to 4:3 modes 1280x1024, 1600x1200, or less, often only 1024x768. Most find these acceptable only for rescue operations, or for servers where X is in use little to none. Not infrequently it is one of these two that are required for installation to proceed. When this happens, usually the bootloader on the installed system is configured to include nomodeset on each of the linux lines. The result of nomodeset in the bootloader is the competent DDX’s support is precluded, making the user unhappy with graphics performance, or confronted with a black screen where a login greeter is expected, until it is discovered why and how to remove nomodeset from the boot process.
In summary, “drivers” required for competent X operation are:
- amdgpu (kernel) plus amdgpu (DDX) or modesetting (DDX) for current and recent AMD GPU/APUs/IGPs
- radeon (kernel) plus radeon (DDX) or modesetting (DDX) for old AMD/ATI GPUs/IGPs
- gma500 (kernel) or i915 (kernel) plus intel (DDX) or modesetting (DDX) for Intel GPUs/IGPs
- nouveau (kernel) plus nouveau (DDX) or modesetting (DDX) for NVidia GPUs