What use for xf86-video-amdgpu?

amdgpu(4) is a usermode shim driver for Xorg. Most devices now go through the modesetting(4) driver which is a shim to use the drm/kms system underneath. Wayland compositors pretty much have the same design, although they call the modesetting driver a "backend".

amdgpu offers some additions (like TearFree) specific to the hardware. I don't think that is in the modesetting driver yet. Perhaps it is handled further down the layers.
 
amdgpu(4) is a usermode shim driver for Xorg.
Interesting, description says "On FreeBSD requires amdgpu KMS driver from graphics/drm-kmod" so it *could* have advantages over the generic modesetting driver? I'm genuinely wondering here, as well as about the intel counterpart vs modesetting.
 
Interesting, description says "On FreeBSD requires amdgpu KMS driver from graphics/drm-kmod" so it *could* have advantages over the generic modesetting driver? I'm genuinely wondering here, as well as about the intel counterpart vs modesetting.
amdgpu and modesetting drivers *both* go through the KMS drivers (drm-kmod).

Its a bit confusing but ignore Xorg for now. If you want to load the driver (i.e for high res console) you load the drm-kmod driver. Now, if you want Xorg, you basically tell it to use that same driver that you have already loaded. This is where the shim drivers come in. Historically amdgpu was much larger but now much of the work has been delegated to the underlying drm layer.

AFAIK the 'amd' version is a kernel mode setting driver; contrary to 'its intel counterpart' look-alike: x11-drivers/xf86-video-intel that is a legacy driver. The X11 amd driver is not.
Yep, the intel xorg driver is deprecated. We are now meant to use modesetting. For xf86-video-amdgpu its not deprecated. I could imagine in the future it might be. Maybe amdgpu-pro (AMD's proprietary release) is keeping this the current state.

xf86-video-intel - Xorg driver (deprecated)
xf86-video-amdgpu - Xorg driver (for amdgpu)
xf86-video-modesetting - Xorg driver (for amdgpu, intel and more)
amdgpu - KMS Graphics driver
i915kms - KMS Graphics driver

The Xorg drivers still require the underlying kms graphics drivers.

(Note: NVIDIA provides a little bit of a different stack, so I have conveniently left it out).
 
Would the installation of x11-drivers/xf86-video-amdgpu bring any benefits?
For (non-ancient, that is: non ATI based) AMD graphics and Xorg (don't know any Wayland specifics) you have basically two options to choose from if you want to use KMS (kernel mode setting) with graphics acceleration:
  1. in /etc/rc.conf use kld_list="amdgpu"
    combined with
    in an appropriate Xorg .conf file (for example /usr/local/etc/X11/xorg.conf.d/20-amdgpu.conf) in a Section "Device":
    Code:
    Section "Device"
            Identifier      "Device0"
            Driver          "amdgpu"
    EndSection
  2. in /etc/rc.conf use kld_list="amdgpu"
    combined with
    in an appropriate Xorg .conf file in a Section "Device":
    Code:
    Section "Device"
            Identifier      "Device0"
            Driver          "modesetting"
    EndSection
Where the Xorg modesetting(4) driver is the Xorg default, so the second option need not be explicitly declared in a Xorg .conf file.

AFAIK (and hinted at by kpedersen) the general trend is moving Xorg driver implementations from vendor specific to non-vendor specific (modesetting(4) ), so the user will not have to rely upon explicitly declaring Driver "amdgpu".

For some AMD graphics (mostly: very new) one might be confronted with the Xorg modesetting not working, then try using the Xorg vendor specific amdgpu driver instead, I'd say: try both.

If all these fail, you might fall back to the Xorg vesa or scsb driver ... without any hardware graphics acceleration of course. Then you just have to wait for driver development to pick up and incorporate support for your AMD discrete graphics card or AMD iGPU.

Edit: you'll likely need to add an appropriate BusID in Section "Device" when you have multiple graphics from a different vendor in your system, like when you have an iGPU (incorporated in the CPU) in addition to a discrete GPU as for exampe in a laptop.
 
Last edited:
Back
Top