AMD Releases Open-Source R600/700 3D Code

Written by Michael Larabel in Display Drivers on 29 December 2008 at 03:30 PM EST. Page 2 of 3. 198 Comments.

One of the times it looked like the R600 3D information was nearing release was in June. Novell had over 650 pages of internal R600 documentation under NDAs with AMD along with TCore, which is an internal AMD software project for limited GPU testing prior to the availability of silicon for new GPU designs. At that time it was publicly stated that a Radeon R600 Direct Rendering Manager was already in the works -- albeit through a private code repository. Later that month some of the code to this new DRM was pushed out that used the command processor for GPU communication but lacked support for any 3D acceleration -- meaning it was of no use to end-users. In June there was also the release of the R600 ISA documentation (Instruction Set Architecture).

While not dependent for the 3D support, in July was the release of a new AtomBIOS parser that was used in bringing up KMS support. Since this article isn't about kernel mode-setting, we will save that for another article.

Two months after the 3D-lacking R600 DRM was pushed out, we received word from AMD that they experienced open-source 3D success for the RV770. The RV770 is the GPU used in their newer Radeon HD 4800 series and since then has descended into the Radeon HD 4500 and Radeon HD 4600 series as well. The success they experienced was hardware-accelerated triangles, but using a DRM that wasn't publicly available. This was right before the 2008 X Developers' Summit where the developers raided the Edinburgh Zoo, which AMD employees had opted to skip in hopes of finishing off the R600/700 work to push quickly out into the community. September had also marked the one-year open-source ATI anniversary, which wasn't greeted by any new code drops or documentation.

A month ago we were then told that the R600 DRI 3D work was getting closer, but still nothing was to be publicly released. Novell's Matthias Hopf had explained there were very few hardware registers they didn't understand and that their programming model is near stable. With this internal code they also had textures and shaders supported on the R600 series.

Our last update came in late November when we were told the RV770 Mesa DRI driver was started by Novell and they have been successful in running a 2D/3D test program on the RV770. This test program is r600_demo, which is a fairly advanced test program and to some extent is based on the earlier r300_demo. We were also told again that documentation and/or code would be available "soon" and we reckoned it might be available by Christmas.

Finally, we have what we have been waiting for: documentation and code concerning both the R600 and R700 series that is freely and publicly available. It's taken several months and lots of hardware work by AMD, but it's here...

Today's Drop

What's encompassed by today's drop is a working DRM (for the newbie, Direct Rendering Manager, not to be confused with Digital Rights Management), working EXA acceleration, an initial X-Video implementation and the working r600_demo program. There was about 180 pages of 3D register specifications set to be released, but all of the AMD officials didn't come to a consensus before leaving for the holidays. This documentation should be publicly released within approximately one month.

The working DRM is being pushed into branches of the xf86-video-radeonhd and DRM Git repositories. This will not enter the mainline branches until it has been well tested and more stable, obviously. The provided EXA acceleration currently supports the copy and fill operations, but there is also some other initial bugs to be worked out. The X-Video support is also initial and does not yet contain working shader code for YUV/RGB conversion.

Related Articles