Last week we had published The Truth About ATI/AMD & Linux, and to no real surprise, the feedback ranged from beliefs that it was propaganda to others being grateful that AMD finally shared some additional information with their Linux customers about the fglrx development cycle. While the article was far from being propaganda, what had outraged a number of open-source developers were AMD's comments on the R200 support or there the lack of. In this article, we have a few additional comments to share along with what some open-source developers had to say about AMD's information.
AMD had shared with us that they don't plan to deliver an updated legacy driver for the R200 series, or the Radeon 8500 to the Radeon 9250 GPUs. Their reason behind discontinuing this support from the mainstream driver and not releasing a legacy driver is that the open-source community was given the specifications a number of years ago, and AMD believes that the open-source R200 driver as a result is reasonably well supported. The main feature lacking of course in this area for the end-user is TV output support, which is partly due to Macrovision. However, these comments by AMD have caused an uproar among developers that have been working on the open-source Radeon drivers.
According to the open-source developers, very few people outside of ATI were actually provided with the R200 specifications. These R200 specifications were provided to them through a Non-Disclosure Agreement. According to Jerome Glisse, an open-source developer currently working on the R500 driver, the specifications that they were provided with were stripped down. The R200 specifications hadn't included some 3D functionality as well as not explaining the debugging facility. While the R200 driver is at where it is today partly due to these specifications, many features now found in the driver had to be reverse engineered. What complicates the situation even more is that a majority of the developers who have the R200 specifications have since abandoned their efforts working on the driver, and due to the NDA, they cannot share this information among other developers.
David Airlie, an open-source developer and one who has been working on the open-source R300 driver along with recently contributing to Nouveau, had provided some additional information on what exactly ATI Technologies had released to developers through a Non Disclosure Agreement. Among the areas that were missing from the specifications were Hyper Z programming information, Truform, DX8 multisampling/FSAA support, vertex shader, ATI_fragment_shader, TV-Out, MPEG decoder, BIOS table layouts for the external TMDS transmitter, errata and chip bugs, and finally performance counters and debug information. Fortunately, however, thanks to reverse engineering of the fglrx driver, Stephane Marchesin (now known for his Nouveau work) and Roland Scheidegger had reverse engineered the Hyper Z programming information. Still lacking, however, is information on the hierarchical Z feature. Scheidegger had also reverse engineered the R200 vertex shader while David Airlie had lent him a hand in getting the ATI_fragment_shader to work.
With a majority of the specification-holding developers having quit, other open-source developers have requested the NDA information from ATI for the past couple of years. However, their requests haven't been granted. Specifically, David Airlie had stated that no open-source developer has been given ATI devrel access (the means to gain access to the information) in about three years. Airlie had also mentioned that he is personally not opposed to NDA specifications, but ATI hasn't been answering the requests of any new developers. He hopes that something could possibly be setup through the Linux Foundation. As for the history portion, the specifications were released and used by Tungsten Graphics to write the driver for the Weather Channel.
For comparison, NVIDIA does not provide its GPU specifications to open-source developers, but they do provide an open-source 2D display driver. Intel provides open-source 3D display drivers, but they have not released specifications to their new GMA Chipsets. ATI also has yet to release any specifications on the R300/400/500 series, but they had donated changes for R420 family support. AMD's Hui Yu had provided baseline support for the R420 in the Radeon driver. AMD's official support for the Radeon driver is limited to the extent of the ES1000 for enterprise server graphics.
While on the topic of open-source drivers for ATI Radeon graphics cards, those reverse engineering the R500 generation (the ATI Radeon X1000 series) hope to release their first open-source driver release later this month. More community thoughts on the ATI/AMD's Linux driver and their development cycle can be found in the Phoronix Forums.