Coming just a day after AMD had opened up their production microcode from their proprietary drivers for the R100 to R600 GPUs, a significant milestone has been reached in the road to open-source 3D graphics capabilities for the Radeon X1000 (R500) series. We now have hardware-accelerated glxgears!
These 3D capabilities are coming after David Airlie had made a few modifications to the DRM and Mesa code for the R300 series and quite easily he got glxgears up and running on R500 hardware. David Airlie mentions on his blog though that the actual texturing and fragment shader programming work will take more time. David has published this work into his private DRM and Mesa git trees on FreeDesktop.org in an r500-fp branch for DRM and the R500 Mesa work is in r500test.
As this work is still quite early, don't expect it being merged to master immediately and right now the only PCI ID inside his Mesa code is for the RV530 (0x71C4) M56 FireGL GPU. However, that didn't stop us from experimenting with his latest work. We had ran this latest code on an ATI Radeon X1300PRO 256MB and Radeon X1800XT 256MB graphics card. When it came to running glxgears on this R520 graphics card, no gears were to be found (likely due to initialization problems).
This is a great step forward but don't expect to be running any games with an open-source R500 driver yet or Compiz/Compiz Fusion. As we experienced, this code is still rudimentary and isn't even working on all R500 graphics cards yet. All of that will take more time, but a working glxgears is the first step towards achieving open-source 3D nirvana. In addition, the Radeon HD 2000/3000 (R600) 3D work will take much longer to develop. AMD will likely release the R600 3D register reference guide next month. On a related note, if you missed the news announcement, TexturedVideo for X-Video playback on the R500 series is already working. The Radeon driver has had R500 2D EXA/XAA acceleration since January.
While this isn't an experience for those new to Linux or X.Org/Mesa, if you're interested in trying out this latest code with a Radeon X1000 graphics card, check out the r500-fp and r500test branches (permitting you're reading the article before it's been merged with master) and if you have all of the development utilities and libraries installed, go ahead and build this latest DRM and Mesa code. You may need to add in the card detection code for your specific graphics card, if not already done so. This can be done inside mesa/src/mesa/drivers/dri/radeon with files radeon_screen.c and radeon_chipset.h.
The first bits of this 3D work are coming just shy of 200 days (196 days to be exact) since AMD had announced their open-source strategy and began providing documentation and support to the Radeon and RadeonHD drivers. Most of the focus is on the R500/600 series, but last week's R300 register reference guide and yesterday's microcode should help eliminate a few problems for long-time xf86-video-ati users with older hardware. Cheers to AMD and all of the open-source developers involved!