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

OpenBenchmarking.org

AMD Releases 3D Programming Documentation

Michael Larabel

Published on 22 February 2008
Written by Michael Larabel
Page 1 of 1 - 13 Comments

For the past several weeks we have been referencing AMD's "tcore" in several of our articles, which is a user-space software suite that has been developed and used internally at ATI by engineers to work on various aspects of their binary drivers. Tcore is primarily used for testing prior to the availability of the actual silicon for their forthcoming graphics processors. John Bridgman and Alex Deucher have been working tediously to get this tcore source-code sanitized and cleared for public release, and finally they have reached this milestone. AMD has just published the first bits of open-source 3D programming documentation for ATI GPUs. This 3D programming documentation covers the R500 series and even goes back with information on the R300/400 series as well. The R600 3D programming guide will also be out soon. This information available today is what will foster the growth of open-source R500/600 3D support for the Radeon and RadeonHD drivers as well as R600 2D acceleration.

We've shared in earlier articles that AMD's plans for enabling open-source 3D support would come in the way of sample source-code that would allow developers to better understand the 3D engine, as opposed to just releasing 3D documentation. However, those plans have changed slightly. Due to the modularization of tcore and tgl (the OpenGL component), more weight is now being placed into the 3D documentation so that developers can better understand the design of the 3D engine. This guide not only covers the R500 series, but contains information going back into the R300 series. This R300 information will help in filling some of the unknowns and areas once reverse-engineered. Particularly there should be stability improvements as well as performance improvements, if enough time is spent tuning the driver. Information covering the 3D side of the R600 series is still being worked on but is expected in about one month.

Tcore is made up of about 60,000 lines of code and allows for testing of such areas as GPU initialization, command submission, and is able to run either as a simulator or on actual hardware. Also being released are some microcode files with Tcore and the latest microcode from the fglrx production driver that will go into the DRM tree. The bottom layer of AMD's new OpenGL driver from last Fall is also being evaluated as possibly being open-sourced in the near future.

While opening up tcore is really about inducing open-source 3D support for the R500/600 series, this information will assist in being able to offer 2D acceleration for the R600 series. The Radeon HD 2000 series no longer has a 2D engine but emulates the calls on the 3D side using the CP (Command Processor). The RadeonHD driver still uses MMIO (Mapped Memory IO), so first it must switch to using the command processor. Meanwhile, there is R500 XAA/EXA acceleration in the RadeonHD driver and the Radeon driver is already able to use this command processor.

The 3D programming documentation today is 300 pages and is made up of a programming guide and register specifications. Among the areas covered in this 3D guide are the command processor, vertex shaders, fragment shaders, Hyper-Z, and the various 3D registers. Editor's Note: In the hours leading up to this public documentation drop, we've been told that tcore will now not be available for immediate download with this 3D programming documentation. We would expect tcore to be available very soon.

This is now the third open-source dump from AMD since implementing their new open-source strategy. The first release occurred in September with the RV630 and M56 Register Reference Guides and then last month there was the M76 and RS690 drops. These previous documents have just covered R500/600 card support with mode-setting, LVTMA, TMDS, i2c, and other basic but critical elements. On a semi-related note, earlier this week AMD also opened up their AMD Performance Library (APL) under the Apache License as Framewave.

AMD has been criticized for being slow on releasing NDA-free documents to the open-source community, but they are sanitizing and clearing these documents for release in real-time and with only two people (John Bridgman and Alex Deucher) doing a majority of the work and then having this information cleared by their legal department. Their schedule from the start has been to release 3D documentation in Q1'08, and from today's release they are still on schedule with meeting this goal. This, however, is in starch contrast to Intel who at the end of last month had released all of their 965 and G35 Express IGP documents to the open-source community, which covered everything from the initialization to 3D and video playback, but they had worked on this internally for several months in the dark.

In just a few hours, John Bridgman will be speaking at FOSDEM 2008 on open-sourcing ATI/AMD and will cover AMD's intentions and plans along with difficulties they have experienced in this open-source mission. Following that talk, Egbert Eich will be talking about the RadeonHD driver when it comes to its status, roadmap, and future developments. We will be providing live coverage from FOSDEM 2008 on Phoronix and we will be publishing videos and pictures from the X.Org Dev Room. AMD's tcore is intended for developers and not end-users, though if you're interested the code can be downloaded from AMD's open GPU website or the X.Org mirror. Further information about the RadeonHD driver can be found from searching RadeonHD or RadeonHD.org.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Linux Hardware Reviews
  1. AMD Radeon R9 290: Gallium3D vs. Catalyst Drivers
  2. AMD Radeon R9 290 Open-Source Driver Works, But Has A Ways To Go
  3. Trying The Configurable 45 Watt TDP With AMD's A10-7800 / A6-7400K
  4. Sumo's Omni Gets Reloaded
Latest Linux Articles
  1. Testing For The Latest Linux Kernel Power Regression
  2. The Most Energy Efficient Radeon GPU For AMD Linux Gaming
  3. 20-Way Radeon Comparison With Open-Source Graphics For Steam On Linux Gaming
  4. Preview: OS X 10.10 Yosemite vs. Ubuntu Linux GPU Performance
Latest Linux News
  1. Chrome 38 Now In Beta With Exciting Advancements
  2. Ubuntu's Utopic Unicorn 14.10 Beta 1 Released
  3. Genode OS 14.08 Has New GUI Architecture, Pluggable VFS
  4. Another Intel Linux Power Regression Is Being Investigated
  5. DNF Makes It A Step Closer To Replacing Yum On Fedora
  6. OS Battle: Linux Takes 1.7% Desktop Marketshare
  7. PHP 5.6 Officially Released With New Debugger
  8. LibreOffice 4.3.1 Released
  9. Re-Clocking Your NVIDIA GPU With Nouveau On Linux 3.17
  10. Radeon DRM Queues More Changes, RV6xx UVD For Linux 3.18
Latest Forum Discussions
  1. AMD Releases UVD Video Decode Support For R600 GPUs
  2. Canonical Joined The Khronos Group To Help Mir/Wayland Drivers
  3. Users defect to Linux as OpenBSD removes Lynx from base system
  4. Best Radeon for a Power Mac G5?
  5. OC capability - Intel Core i5 4690K & Biostar Hi-Fi Z97WE
  6. Updated and Optimized Ubuntu Free Graphics Drivers
  7. Announcing radeontop, a tool for viewing the GPU usage
  8. It's Now Possible To Play Netflix Natively On Linux Without Wine Plug-Ins