Feature Matrix for Free Radeon Drivers
This page is only for free Radeon drivers using KMS. radeon (xf86-video-ati) for 2D; radeon, r200, r300, r600 Mesa and r300, r600 Gallium drivers only. THIS PAGE IS NOT FOR FGLRX/CATALYST DRIVERS PROVIDED BY AMD/ATI.
See RadeonFeatureUMS for radeon in UMS.
See radeonhd:feature for radeonhd.
Also check out the RadeonProgram, GalliumStatus, and ATIRadeon at DRI wiki.
"DONE" means that it is implemented and relatively bug-free.
"MOSTLY" means that it is implemented but has some known bugs.
"WIP" means that someone has started on the initial implementation.
"BIOS" means only if supported by your BIOS. No software support. Yet.
"N/A" means that the feature is not supported by the hardware.
"N/N" means that the feature will not be implemented, because a better alternative is or will be available.
"TODO" means that someone needs to write the code. The required knowledge to write the code may or may not be known. Please ask on #radeon if you want to get your feet wet on this.
"UNKNOWN" means that the current status of this item isn't known. You are free to update it if you know.
2D features |
R100 |
R200 |
R300 |
R400 |
RS690 |
R500 |
R600 |
R700 |
Evergreen |
|
Kernel Modesetting |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
|
DRI2 |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
WIP |
|
ShadowFB |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
|
2D Acceleration (EXA) |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
WIP |
|
Textured Xv |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
WIP |
|
Video Decode (XvMC/VDPAU/VA-API) using the 3D engine |
TODO |
TODO |
WIP |
WIP |
WIP |
WIP |
TODO |
TODO |
TODO |
|
Video Decode (XvMC/VDPAU/VA-API) using UVD |
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
TODO |
TODO |
TODO |
|
Mesa 3D features |
R100 |
R200 |
R300 |
R400 |
RS690 |
R500 |
R600 |
R700 |
Evergreen |
|
Primitives |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
MOSTLY |
MOSTLY |
WIP |
|
Textures |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
MOSTLY |
MOSTLY |
WIP |
|
Hardware TCL |
DONE |
DONE |
DONE |
DONE |
N/A |
DONE |
MOSTLY |
MOSTLY |
WIP |
|
Vertex Shaders |
N/A |
DONE |
DONE |
DONE |
N/A |
DONE |
MOSTLY |
MOSTLY |
WIP |
|
Fragment (Pixel) Shaders |
N/A |
DONE |
DONE |
DONE |
DONE |
DONE |
MOSTLY |
MOSTLY |
WIP |
|
GLSL |
N/A |
N/A |
MOSTLY |
MOSTLY |
MOSTLY |
MOSTLY |
MOSTLY |
MOSTLY |
WIP |
|
Anti-Aliasing (MSAA) |
N/A |
N/A |
WIP |
WIP |
WIP |
WIP |
TODO |
TODO |
TODO |
|
Texture Tiling |
MOSTLY |
MOSTLY |
DONE |
DONE |
DONE |
DONE |
WIP |
WIP |
TODO |
|
Hyper-Z |
WIP |
TODO |
MOSTLY |
MOSTLY |
MOSTLY |
MOSTLY |
TODO |
TODO |
TODO |
|
OpenGL Compliance (Driver/Hardware) |
1.3/1.3 |
1.3/1.4 |
2.1/2.11 |
2.1/2.11 |
2.1/2.11 |
2.1/2.11 |
2.1/3.3 |
2.1/3.3 |
WIP/4.1 |
|
Output |
R100 |
R200 |
R300 |
R400 |
RS690 |
R500 |
R600 |
R700 |
Evergreen |
|
Dual-link DVI |
N/A |
BIOS |
BIOS |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
|
XRandR 1.2 |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
|
TV Out |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
|
N/A |
N/A |
N/A |
N/A |
N/A |
N/A |
DONE |
DONE |
DONE |
||
HDMI Audio |
N/A |
N/A |
N/A |
N/A |
not tested |
N/A |
DONE |
DONE |
TODO |
|
Power Saving |
R100 |
R200 |
R300 |
R400 |
RS690 |
R500 |
R600 |
R700 |
Evergreen |
|
Engine reclocking |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
|
Memory reclocking |
TODO |
TODO |
TODO |
DONE |
N/A |
DONE |
DONE |
DONE |
DONE |
|
Voltage adjusting |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
|
Thermal sensors |
N/A |
N/A |
DONE (i2c chip) |
DONE (i2c chip) |
DONE (i2c chip) |
DONE (i2c chip) |
DONE (i2c chip or internal sensor) |
DONE (i2c chip or internal sensor) |
DONE (i2c chip or internal sensor) |
|
Other |
R100 |
R200 |
R300 |
R400 |
RS690 |
R500 |
R600 |
R700 |
Evergreen |
|
Suspend Support |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
DONE |
|
1 Hardware doesn't support ARB NPOT textures fully.
Feature dependency tree
memory manager -+-> KMS -+-> advanced power management (dynamic control of clocks etc..)
| |
| +-> run X without root privileges
| |
| +-> Wayland
|
+-> advanced 3D (OpenGL 1.5+) via vendor-specific Mesa code
|
+-> DRI2 / RDR -+-> Flicker-free 3D with compositing
|
+-> Gallium3D -+-> advanced 3D (OpenGL 1.5+, GLSL) via generic Mesa code
|
+-> video decode acceleration
|
+-> OpenCL
Notes:
- in current implementation the GEM/TTM memory manager is only enabled when running KMS
What about XRandR 1.3 & 1.4?
KMS Power Management Options
Kernel 2.6.35 or newer is required. The pm code supports two basic methods:
- "dynpm"
- "profile"
You can select the methods via sysfs. Echo "dynpm" or "profile" to /sys/class/drm/card-0/device/power_method.
The "dynpm" method dynamically changes the clocks based on the number of pending fences, so performance is ramped up when running GPU intensive apps, and ramped down when the GPU is idle. The reclocking is attemped during vertical blanking periods, but due to the timing of the reclocking functions, doesn't not always complete in the blanking period, which can lead to flicker in the display. Due to this, dynpm only works when a single head is active.
The "profile" method exposes five profiles that can be selected from:
- "default"
- "auto"
- "low"
- "mid"
- "high"
Select the profile by echoing the selected profile to /sys/class/drm/card-0/device/power_profile.
- "default" uses the default clocks and does not change the power state. This is the default behavior.
- "auto" selects between "mid" and "high" power states based on the whether the system is on battery power or not. The "low" power state are selected when the monitors are in the dpms off state.
- "low" forces the gpu to be in the low power state all the time. Note that "low" can cause display problems on some laptops; this is why auto does not use "low" when displays are active.
- "mid" forces the gpu to be in the "mid" power state all the time. The "low" power state is selected when the monitors are in the dpms off state.
- "high" forces the gpu to be in the "high" power state all the time. The "low" power state is selected when the monitors are in the dpms off state.
The "profile" method is not as agressive as "dynpm," but is currently much more stable and flicker free and works with multiple heads active.
Power management is supported on all asics (r1xx-evergreen) that include the appropriate power state tables in the vbios; not all boards do (especially older desktop cards).
Thermal sensors are implemented via external i2c chips or via the internal thermal sensor (rv6xx-evergreen only; supported in 2.6.36 or newer); not all OEMs implement a thermal sensor. To get the temperature on asics that use i2c chips, you need to load the appropriate hwmon driver for the sensor used on your board (lm63, lm64, etc.). The drm will attempt to load the appropriate hwmon driver. On boards that use the internal thermal sensor, the drm will set up the hwmon interface automatically. When the appropriate driver is loaded, the temperatures can be accessed via lm_sensors tools or via sysfs in /sys/class/hwmon .


