Page 1 of 4 123 ... LastLast
Results 1 to 10 of 34

Thread: AMD, Intel & NVidia X graphics driver primer

  1. #1
    Join Date
    Dec 2008
    Location
    FL, USA
    Posts
    2,442

    Default AMD, Intel & NVidia X graphics driver primer

    "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
    Last edited by malcolmlewis; 14-Jul-2020 at 04:13. Reason: Title edit
    Reg. Linux User #211409 *** multibooting since 1992
    Primary: 15.1, TW, 15.2 & 13.1 on Haswell w/ RAID
    Secondary: eComStation (OS/2)&15.1 on i965P/Radeon
    Tertiary: TW,15.2,15.1,Fedora,Debian,more on Kaby Lake,iQ45,iQ43,iG41,iG3X,i965G,AMD,NVidia&&&

  2. #2
    Join Date
    Jun 2008
    Location
    Auckland, NZ
    Posts
    22,269
    Blog Entries
    1

    Default Re: AMD, Intel & NVidia X graphics driver primer

    Nicely summarised.

    Further references that may be of interest (with respect to the ageing Xorg-server):
    https://dri.freedesktop.org/wiki/DDX/
    https://en.wikipedia.org/wiki/X.Org_...raphics_driver
    https://keyj.emphy.de/files/linuxgraphics_en.pdf
    Last edited by malcolmlewis; 14-Jul-2020 at 04:14. Reason: Title edit
    openSUSE Leap 15.2; KDE Plasma 5

  3. #3
    Join Date
    Jun 2008
    Location
    Netherlands
    Posts
    27,359

    Default Re: AMD, Intel & NVidia X graphics driver primer

    Very illuminating. I will keep this somewhere for reference. Thanks a lot for taking the trouble to create this.

    (I tried the * button, but wasn't allowed for some silly reason ).
    Last edited by malcolmlewis; 14-Jul-2020 at 04:14. Reason: Title edit
    Henk van Velden

  4. #4
    Join Date
    Jan 2014
    Location
    Erlangen
    Posts
    2,075
    Blog Entries
    1

    Default Re: AMD, Intel & NVidia X graphics driver primer

    Quote Originally Posted by mrmazda View Post
    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
    openSUSE made big progress during past years. i915 was a tough experience in August 2016, while amdgpu was smooth as could be this month.
    Last edited by malcolmlewis; 14-Jul-2020 at 04:14. Reason: Title edit
    AMD Athlon 4850e (2009), openSUSE 13.1, KDE 4, Intel i3-4130 (2014), i7-6700K (2016), i5-8250U (2018), AMD Ryzen 5 3400G (2020), openSUSE Tumbleweed, KDE Plasma 5

  5. #5
    Join Date
    Dec 2008
    Location
    FL, USA
    Posts
    2,442

    Default Re: AMD, Intel & NVidia X graphics driver primer

    [second edition]

    "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 F.O.S.S. 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 APUs/GPUs/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.

    The 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, a newer technology generic driver exists, 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, it does not support older GPUs (roughly prior to Gen4 for Intel, or 2007 or 2008 for others).

    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 graphics "drivers" don't even know the modesetting DDX 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 simply 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's DDX 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 is additionally a pair of limited functionality drivers that do not depend on KMS, which support AMD, Intel, NVidia and more. These are FBDEV and VESA. They 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 from the bootloader is all competent FOSS DDX support is precluded, making the user unhappy with graphics performance, or confronting him with a black screen when the 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 modesetting (DDX) or radeon (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 modesetting (DDX) or nouveau (DDX) for NVidia GPUs
    Reg. Linux User #211409 *** multibooting since 1992
    Primary: 15.1, TW, 15.2 & 13.1 on Haswell w/ RAID
    Secondary: eComStation (OS/2)&15.1 on i965P/Radeon
    Tertiary: TW,15.2,15.1,Fedora,Debian,more on Kaby Lake,iQ45,iQ43,iG41,iG3X,i965G,AMD,NVidia&&&

  6. #6
    Join Date
    Sep 2014
    Location
    Germany
    Posts
    554

    Default Re: AMD, Intel & NVidia X graphics driver primer

    Quote Originally Posted by mrmazda View Post
    [second edition]... Those who wish to employ the modesetting DDX can most simply 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's DDX 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.
    Do i understand this correctly:

    I should still be able to use my NVIDIA graphics card even when i uninstall xorg-x11-driver-video and xf86-video-nouveau or my INTEL-processor-graphics after uninstalling xorg-x11-driver-video ?

    Regards

    susejunky

  7. #7
    Join Date
    Dec 2008
    Location
    FL, USA
    Posts
    2,442

    Default Re: AMD, Intel & NVidia X graphics driver primer

    There are no drivers in the (e.g. TW: 10kb) compatibility metapackage:
    Code:
    # rpm -q --filesbypkg xorg-x11-driver-video-7.6_1-19.1.x86_64.rpm
    xorg-x11-driver-video     /usr/share/X11/xorg.conf.d/50-device.conf
    xorg-x11-driver-video     /usr/share/X11/xorg.conf.d/50-monitor.conf
    xorg-x11-driver-video     /usr/share/X11/xorg.conf.d/50-screen.conf
    xorg-x11-driver-video     /usr/share/doc/packages/xorg-x11-driver-video
    xorg-x11-driver-video     /usr/share/doc/packages/xorg-x11-driver-video/README.meta
    Reg. Linux User #211409 *** multibooting since 1992
    Primary: 15.1, TW, 15.2 & 13.1 on Haswell w/ RAID
    Secondary: eComStation (OS/2)&15.1 on i965P/Radeon
    Tertiary: TW,15.2,15.1,Fedora,Debian,more on Kaby Lake,iQ45,iQ43,iG41,iG3X,i965G,AMD,NVidia&&&

  8. #8
    Join Date
    Feb 2010
    Location
    Germany
    Posts
    3,466

    Question Re: AMD, Intel & NVidia X graphics driver primer

    Quote Originally Posted by mrmazda View Post
    [second edition]
    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 modesetting (DDX) or radeon (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 modesetting (DDX) or nouveau (DDX) for NVidia GPUs
    Does the order, left to right, indicate a preferred selection?
    • If amdgpu (kernel) then, amdgpu(DDX) is preferred over modesetting (DDX);
    • If radeon (kernel) then, modesetting (DDX) is preferred over radeon (DDX);
    • If gma500 (kernel) or i915 (kernel) then, intel (DDX) is preferred over modesetting (DDX);
    • If nouveau (kernel) then modesetting (DDX) is preferred over nouveau (DDX).

  9. #9
    Join Date
    Jun 2008
    Location
    Auckland, NZ
    Posts
    22,269
    Blog Entries
    1

    Default Re: AMD, Intel & NVidia X graphics driver primer

    Quote Originally Posted by dcurtisfra View Post
    Does the order, left to right, indicate a preferred selection?
    • If amdgpu (kernel) then, amdgpu(DDX) is preferred over modesetting (DDX);
    • If radeon (kernel) then, modesetting (DDX) is preferred over radeon (DDX);
    • If gma500 (kernel) or i915 (kernel) then, intel (DDX) is preferred over modesetting (DDX);
    • If nouveau (kernel) then modesetting (DDX) is preferred over nouveau (DDX).
    The modesetting DDX driver is used when the other are not explicitly available and specified in Xorg config file to load. So usually best to make sure the relevant DDX driver package is removed to start with. Xorg will then use the modesetting driver.

    For example
    https://wiki.archlinux.org/index.php..._configuration
    https://wiki.archlinux.org/index.php..._configuration
    openSUSE Leap 15.2; KDE Plasma 5

  10. #10
    Join Date
    Dec 2008
    Location
    FL, USA
    Posts
    2,442

    Default Re: AMD, Intel & NVidia X graphics driver primer

    Quote Originally Posted by dcurtisfra View Post
    Does the order, left to right, indicate a preferred selection?
    No. My order changes were intended to remove any such inference by alphabetizing.
    Reg. Linux User #211409 *** multibooting since 1992
    Primary: 15.1, TW, 15.2 & 13.1 on Haswell w/ RAID
    Secondary: eComStation (OS/2)&15.1 on i965P/Radeon
    Tertiary: TW,15.2,15.1,Fedora,Debian,more on Kaby Lake,iQ45,iQ43,iG41,iG3X,i965G,AMD,NVidia&&&

Page 1 of 4 123 ... LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •