RADEON(4)

πŸ“¦
version 22.0.0 Β· 2 versions
  • 22.0.0 Β· alpine 3.24, debian trixie, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking (latest)
  • 19.1.0 Β· debian bookworm, ubuntu jammy
, in alpine 3.24, debian trixie, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

🌸 NAME 🌸

radeon β€” the ATI/AMD RADEON video driver πŸ’– straight outta the Kernel Interfaces Manual, aka RADEON(4), bestie. This is part 1, so buckle up πŸŽ€


✨ SYNOPSIS ✨

okay so the vibe is you drop this into your config like:

Section "Device"
  Identifier "devname"
  Driver "radeon"
  ...
EndSection

that's it, that's the whole setup πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

radeon is an Xorg driver for ATI/AMD RADEON-based video cards, and ngl it comes stacked with features:

  • Full support for 8-, 15-, 16- and 24-bit pixel depths, and for 30-bit depth on Linux 3.16 and later πŸ‘‘
  • RandR 1.2 and RandR 1.3 support
  • Full EXA 2D acceleration
  • Textured XVideo acceleration, anti-tearing support included ✨ (but Bicubic filtering is only a thing on R/RV3xx, R/RV/RS4xx, R/RV5xx, and RS6xx/RS740)
  • 3D acceleration, obviously πŸ’…

πŸ’œ SUPPORTED HARDWARE πŸ’œ

The radeon driver supports PCI, AGP, and PCIe video cards based on these ATI/AMD chips (heads up: the list is non-exhaustive, so don't come for me if yours isn't here πŸ™ˆ):

  • R100 β€” Radeon 7200
  • RV100 β€” Radeon 7000(VE), M6, RN50/ES1000
  • RS100 β€” Radeon IGP320(M)
  • RV200 β€” Radeon 7500, M7, FireGL 7800
  • RS200 β€” Radeon IGP330(M)/IGP340(M)
  • RS250 β€” Radeon Mobility 7000 IGP
  • R200 β€” Radeon 8500, 9100, FireGL 8800/8700
  • RV250 β€” Radeon 9000PRO/9000, M9
  • RV280 β€” Radeon 9200PRO/9200/9200SE/9250, M9+
  • RS300 β€” Radeon 9100 IGP
  • RS350 β€” Radeon 9200 IGP
  • RS400/RS480 β€” Radeon XPRESS 200(M)/1100 IGP
  • R300 β€” Radeon 9700PRO/9700/9500PRO/9500/9600TX, FireGL X1/Z1
  • R350 β€” Radeon 9800PRO/9800SE/9800, FireGL X2
  • R360 β€” Radeon 9800XT
  • RV350 β€” Radeon 9600PRO/9600SE/9600/9550, M10/M11, FireGL T2
  • RV360 β€” Radeon 9600XT
  • RV370 β€” Radeon X300, M22
  • RV380 β€” Radeon X600, M24
  • RV410 β€” Radeon X700, M26 PCIe
  • R420 β€” Radeon X800 AGP
  • R423/R430 β€” Radeon X800, M28 PCIe
  • R480/R481 β€” Radeon X850 PCIe/AGP
  • RV505/RV515/RV516/RV550 β€” Radeon X1300/X1400/X1500/X1550/X2300
  • R520 β€” Radeon X1800
  • RV530/RV560 β€” Radeon X1600/X1650/X1700
  • RV570/R580 β€” Radeon X1900/X1950
  • RS600/RS690/RS740 β€” Radeon X1200/X1250/X2100
  • R600 β€” Radeon HD 2900
  • RV610/RV630 β€” Radeon HD 2400/2600/2700/4200/4225/4250
  • RV620/RV635 β€” Radeon HD 3410/3430/3450/3470/3650/3670
  • RV670 β€” Radeon HD 3690/3850/3870
  • RS780/RS880 β€” Radeon HD 3100/3200/3300/4100/4200/4250/4290
  • RV710/RV730 β€” Radeon HD 4330/4350/4550/4650/4670/5145/5165/530v/545v/560v/565v
  • RV740/RV770/RV790 β€” Radeon HD 4770/4730/4830/4850/4860/4870/4890
  • CEDAR β€” Radeon HD 5430/5450/6330/6350/6370
  • REDWOOD β€” Radeon HD 5550/5570/5650/5670/5730/5750/5770/6530/6550/6570
  • JUNIPER β€” Radeon HD 5750/5770/5830/5850/5870/6750/6770/6830/6850/6870
  • CYPRESS β€” Radeon HD 5830/5850/5870
  • HEMLOCK β€” Radeon HD 5970
  • PALM β€” Radeon HD 6310/6250
  • SUMO/SUMO2 β€” Radeon HD 6370/6380/6410/6480/6520/6530/6550/6620
  • BARTS β€” Radeon HD 6790/6850/6870/6950/6970/6990
  • TURKS β€” Radeon HD 6570/6630/6650/6670/6730/6750/6770
  • CAICOS β€” Radeon HD 6430/6450/6470/6490
  • CAYMAN β€” Radeon HD 6950/6970/6990
  • ARUBA β€” Radeon HD 7000 series
  • TAHITI β€” Radeon HD 7900 series
  • PITCAIRN β€” Radeon HD 7800 series
  • VERDE β€” Radeon HD 7700 series
  • OLAND β€” Radeon HD 8000 series
  • HAINAN β€” Radeon HD 8000 series
  • BONAIRE β€” Radeon HD 7790 series
  • KAVERI β€” KAVERI APUs
  • KABINI β€” KABINI APUs
  • HAWAII β€” Radeon R9 series
  • MULLINS β€” MULLINS APUs

πŸŽ€ CONFIGURATION DETAILS πŸŽ€

for the general stuff, go read xorg.conf(5) β€” this section is only about the config bits that are specific to this driver, iykyk.

so, the driver supports these Options:

  • Option "SWcursor" "boolean" β€” picks the software cursor. Default is off.
  • Option "Accel" "boolean" β€” turns all hardware acceleration on or off. Default is on.
  • Option "ZaphodHeads" "string" β€” tells it which RandR output(s) to use with zaphod mode for a particular driver instance. ⚠️ if you use this option, you must use it for all instances of the driver, no halfsies. For example: Option "ZaphodHeads" "LVDS,VGA-0" will assign xrandr outputs LVDS and VGA-0 to this instance of the driver.
  • Option "ColorTiling" "boolean" β€” the framebuffer can be addressed either in linear or tiled mode. Tiled mode can give you significant performance benefits with 3D applications ✨. Tiling gets disabled if the drm module is too old or if your current display configuration doesn't support it. On R600+ this enables 1D tiling mode. Default value is on for R/RV3XX, R/RV4XX, R/RV5XX, RS6XX, RS740, R/RV6XX, R/RV7XX, RS780, RS880, EVERGREEN, CAYMAN, ARUBA, Southern Islands, and Sea Islands β€” and off for R/RV/RS1XX, R/RV/RS2XX, RS3XX, and RS690/RS780/RS880 when the fast fb feature is enabled.
  • Option "ColorTiling2D" "boolean" β€” now the framebuffer can be addressed in linear, 1D, or 2D tiled modes, and 2D tiled mode can give significant performance benefits over 1D tiling with 3D applications. Tiling gets disabled if the drm module is too old or if your current display configuration doesn't support it. KMS ColorTiling2D is only supported on R600 and newer chips, and it needs Mesa 9.0 or newer for R6xx-ARUBA, Mesa 9.2 or newer for Southern Islands, and Mesa 10.1 or newer for Sea Islands. Default value is on for R/RV6XX, R/RV7XX, RS780, RS880, EVERGREEN, CAYMAN, ARUBA, Southern Islands, and Sea Islands.
  • Option "DRI" "integer" β€” sets the maximum level of DRI to enable. Valid values are 2 for DRI2 or 3 for DRI3. Default is 3 for DRI3 if the Xorg version is >= 1.18.3 and glamor is enabled, otherwise 2 for DRI2. > heads up bestie: DRI3 may not work correctly in all cases with EXA β€” enable at your own risk πŸ’€
  • Option "EnablePageFlip" "boolean" β€” enables DRI2 page flipping. Default is on. Pageflipping is supported on all radeon hardware πŸ‘‘
  • Option "TearFree" "boolean" β€” sets the default value of the per-output 'TearFree' property, which controls tearing prevention using the hardware page flipping mechanism. TearFree is on for any CRTC associated with one or more outputs with TearFree on. Two separate scanout buffers need to be allocated for each CRTC with TearFree on. If this option is set, the default value of the property is 'on' or 'off' accordingly. If this option isn't set, the default value of the property is auto, which means TearFree is on for rotated outputs, outputs with RandR transforms applied and for RandR 1.4 secondary outputs β€” otherwise off.
  • Option "AccelMethod" "string" β€” chooses between the available acceleration architectures. Valid values are EXA (for pre-TAHITI GPUs) and glamor (for R300 or higher). Default is glamor with R600 or newer (with Xorg >= 1.18.3, otherwise with TAHITI or newer), otherwise EXA.

🌈 the glamor-only options 🌈

so if you're running glamor, you also get:

  • Option "ShadowPrimary" "boolean" β€” enables a so-called "shadow primary" buffer for fast CPU access to pixel data, plus separate scanout buffers for each display controller (CRTC). This may improve performance for some 2D workloads β€” potentially at the expense of other (e.g. 3D, video) workloads 😭. Note in particular that enabling this option currently disables page flipping. Default is off.

🧚 the EXA-only options 🧚

and if you're on EXA, these are your girls:

  • Option "EXAVSync" "boolean" β€” tries to avoid tearing by stalling the engine until the display controller has passed the destination region. It reduces tearing at the cost of performance, and it's been known to cause instability on some chips πŸ’€. Default is off.
  • Option "EXAPixmaps" "boolean" β€” under KMS, to avoid thrashing pixmaps in/out of VRAM on low memory cards, it uses a heuristic based on VRAM amount to decide whether to let EXA use VRAM for non-essential pixmaps. This option lets you override that heuristic. Default is on with > 32MB VRAM, off with < 32MB or when the fast fb feature is enabled for RS690/RS780/RS880.
  • Option "SwapbuffersWait" "boolean" β€” controls the behavior of glXSwapBuffers and glXCopySubBufferMESA calls by GL applications. If enabled, the calls avoid tearing by making sure the display scanline is outside of the area to be copied before the copy happens. If disabled, no scanline synchronization is performed, meaning tearing will likely occur πŸ™ˆ. Note that when enabled, this option can adversely affect the framerate of applications that render frames at less than refresh rate.

Default value is on.


⭐ TEXTURED VIDEO ATTRIBUTES ⭐

the driver supports these X11 Xv attributes for Textured Video. You can use the "xvattr" tool to query/set them at runtime πŸ’…

  • XV_VSYNC β€” controls whether the textured adapter synchronizes the screen update to the monitor vertical refresh to eliminate tearing. Two values: 'off'(0) and 'on'(1). Default is 'on'(1).
  • XV_CRTC β€” controls which display controller (crtc) the textured adapter synchronizes the screen update with when XV_VSYNC is enabled. The default, 'auto'(-1), will sync to the display controller that more of the video is on; when that's ambiguous, the display controller associated with the RandR primary output is preferred. This attribute is useful for things like clone mode where the user can best decide which display should be synced. Default is 'auto'(-1).
  • XV_BICUBIC β€” controls whether the textured adapter should apply a bicubic filter to smooth the output. Three values: 'off'(0), 'on'(1) and 'auto'(2). 'off' means never apply the filter, 'on' means always apply the filter, and 'auto' means apply the filter only if the X and Y sizes are scaled to more than double, to avoid blurred output. Bicubic filtering is not currently compatible with other Xv attributes like hue, contrast, and brightness, and must be disabled to use those attributes. Default is 'off'(0).

🫢 okay bestie, that's part 1 β€” more parts are coming, so don't go anywhere πŸ’–

✨ SEE ALSO ✨

okay bestie, here's your little link hub, your directory of other pages that go with this one πŸ’–

and then the big girl list of places to go when you need More Information:

  1. Wiki page: https://www.x.org/wiki/radeon
  2. Overview about radeon development code: https://cgit.freedesktop.org/xorg/driver/xf86-video-ati/
  3. Mailing list: https://lists.freedesktop.org/mailman/listinfo/amd-gfx
  4. IRC channel: #radeon on irc.freenode.net
  5. Query the bugtracker for radeon bugs: https://bugs.freedesktop.org/query.cgi?product=xorg&component=Driver/Radeon
  6. Submit bugs & patches: https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/Radeon
ngl bestie, if something's acting up, number 5 and number 6 are your besties fr fr. go look, go report, go submit. the devs literally want to hear from you 🫢

πŸ‘‘ AUTHORS πŸ‘‘

the icons. the legends. the main characters who actually built this thing. authors include:

Rickard E. (Rik) Faith   faith@precisioninsight.com
Kevin E. Martin          kem@freedesktop.org
Alan Hourihane           alanh@fairlite.demon.co.uk
Marc Aurele La France    tsi@xfree86.org
Benjamin Herrenschmidt   benh@kernel.crashing.org
Michel DΓ€nzer            michel@daenzer.net
Alex Deucher             alexdeucher@gmail.com
Bogdan D.                bogdand@users.sourceforge.net
Eric Anholt              eric@anholt.net

periodt. that's the whole list, and every single one of them ate πŸ’…βœ¨


and that's a wrap on RADEON(4) bestie!! this beauty comes from X Version 11, xf86-video-ati 22.0.0, dated RADEON(4). go forth and slay your graphics config πŸŒˆπŸ’–πŸŽ€