1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems

Facebook RSS Twitter Twitter Google Plus

Phoronix Test Suite


This Is What Started AMD's Open-Source Strategy

Michael Larabel

Published on 17 September 2011
Written by Michael Larabel
Page 2 of 6 - 57 Comments

(Pardon some formatting problems when exporting the letter...)

Proposal to Advanced Micro Devices for the Implementation of a Driver for its ATI Radeon (tm) HD 2000 Family of Graphics Hardware (R600).

  1. Current Status

Today two separate and independent drivers exist for ATI graphics hardware:

  • an open source implementation that is shipped as part of the 'ati' driver by X.Org

  • and a proprietary non-open 'fglrx' implementation which is provided by AMD GPG directly.

The open source driver presently supports all generations of ATI RADEON chipsets up to the R400 series chips. This includes basic mode setting for multiple outputs, 2D acceleration, and hardware cursor and video overlays.

Accelerated OpenGL support for the open source implementation is provided by the DRI Project (Direct Rendering Interface) which develops plug-in modules providing accelerated drivers to the OpenGL library libGL as shipped by the Mesa Project. It can be considered stable for all chipset generations up to R200. Support for later generations up to the R480/481 family is available -including basic support for programmable shaders. This however is still experimental due to the lack of programming documentation available to the open source community. Furthermore it does not cover all series of chips of these generations. This code is mainly the result of reverse engineering efforts by the open source community.

For any generation including and later than R500 the open driver offers no support at all.

Unfortunately the open source driver is not in a state that offers consistent quality across releases. Regressions are not an exception.

The proprietary driver features all 2D functionalities that are also supported by the open driver. Additionally it provides an AMD proprietary interface for altering modes and output parameters through 'atieventsd' and a GUI both of which are installed along with the driver.

The proprietary driver offers an enterpriese grade OpenGL implementation with shader support. It used to be based on the framework provided by the Mesa project so that this driver plugged into Mesa's libGL seamlessly like other DRI drivers. Today however AMD ships its own version of libG, requiring distributors to exchange the existing library depending on which driver is installed.

Today the ATI driver supports chipset generations ranging from R300 to R500. AMD undergoes huge efforts to work with Linux vendors to track issues about this driver reported to them. Older generations of ATI chips are supported by a separate proprietary driver. AMD does not provide maintenance for this driver any more.

The ATI proprietary drivers are somewhat hampered by ongoing changes in the kernel-internal ABI and changes in the behavior of kernel subsystems.

Linux vendors are unable to include proprietary drivers as shipped by AMD in any of their products, to avoid violating the General Public License v2 (GPLv2) of the Linux kernel. This license disallows creation of derived work from code under it if the source code of binary modules to be linked with cannot be made public under conditions compatible with it.

To accommodate customers who need to rely on the proprietary driver, NOVELL designed a third party

installation/update mechanism which allows to load this driver from a web server on the Internet which is not hosted by NOVELL.

In the past ATI has supported the development efforts of the open source community and provided some documentation under NDA to develop the open source driver. Explicit permission was given to publish the derived code. This practice has been discontinued since the release of the R300 chipset generation.

The decision to no longer provide any specifications for open source driver development has led to some criticism by the open source community. The lack of availability of an open driver for AMD's latest chipset generation is partially to blame for the decreasing market share of ATI products in the Linux market.

  1. GAP Analysis

  1. No driver support is available on Linux for the R600 series of ATI chipsets that marks the latest generation in state-of-the-art graphics hardware available from AMD.

  2. Open driver support is available only up to the R400 generation of ATI hardware.

  3. The open driver for ATI RADEON suffers from frequent regressions.

  4. The open driver for ATI hardware is lacking important functionalities or have suboptimal implementations (like video playback and 3D support).

  5. Documentation for ATI hardware for open source drivers is only available up to the R200 series of hardware.

  6. Supported proprietary drivers from AMD are only available for the R300 to R500 series. Drivers for earlier generations are available without support. Proprietary binary-only drivers still suffer from changes in the kernel-internal APIs and wrongly expect specific behavior of kernel subsystems which is not always maintained.

  7. Proprietary driver modules for the Linux kernel cannot be shipped by Linux vendors due to GPL violation issues.

Desired goals:

  1. Provide an open source driver with full support for the latest generations of ATI hardware

    including new chipset versions of the same generation.

  2. Improve the quality of the open source driver for older hardware generations.

  3. Add missing support for already released series of ATI hardware to the open source driver including support for video playback and 3D (with programmable shader support).

  4. Provide specification and programming documentation for graphics chipsets for the development of an open source driver to the open source community including specification updates for new chips of the same series including erratas.

  5. Continue to implement open source drivers and publication of specifications for future generation chipsets.

Minimal goals:

  1. Provide a basic 2D driver for the latest generation of ATI hardware with at least minimal 3D client side (libGL) support at least sufficient to accelerate a state-of-the-art desktop.

  2. Release specifications and programming documentation for 2D functionalities like hardware initialization, mode setting, support for different outputs (VGA and DVI), hardware overlays and sprites as well as 2D acceleration for old and current generations of hardware to the open source community under a non-disclosure agreement which is available to any open source developer allowing him to distribute code under an open source license.

  3. Provide a kernel driver which is compatible with the GNU Public License V2.

Latest Articles & Reviews
  1. Khronos Group Announces Vulkan, OpenCL 2.1, SPIR-V
  2. Samsung 850 EVO SSD Linux Benchmarks
  3. Kubuntu 15.04 Is Turning Out Quite Nice, Good Way To Try Out The Latest KDE
  4. 5-Way Linux Distribution Comparison On The Core i3 NUC
  5. OCZ ARC 100 Linux SSD Benchmarks
  6. Lenovo ThinkPad X1 Carbon Works Great As A Linux Ultrabook
Latest Linux News
  1. The New Open-Source Linux Test Farm Is Almost Operational
  2. Samba 4.2 Brings Transparent File Compression & Clustering Support
  3. Mutter 3.15.91 Fixes Wayland Nested Compositor Mode, Pointer Constraining
  4. NVIDIA Opens Up CPU-Based PhysX Code
  5. SPIR-V In GCC Is Already Being Talked About
  6. Valve Launches SteamOS Sale, Confirms A Lot Of New Linux Games
  7. Ubuntu Cloud Switches Over To Using Systemd By Default
  8. Xfce 4.12 Might Make It For Fedora 22
  9. Pictures Of The Near Production Ready Ubuntu Tablet
  10. OpenVG Support Stripped From Gallium3D
Most Viewed News This Week
  1. The Tremendous Features Of Fedora 22
  2. Confirmed: Vulkan Is The Next-Gen Graphics API
  3. Xfce 4.12 Released After Nearly Three Years Of Work
  4. 8cc: A Small C11 Compiler
  5. LLVM 3.6 & Clang 3.6 Deliver More Features, Complete C++14 Support
  6. Unreal Engine Made Free By Epic Games
  7. ALSA 1.0.29 Released
  8. Canonical's Latest Demo Of Ubuntu Unity 8 Convergence In Action