The size of this open-source Radeon Gallium3D driver was also limited due to hardware / driver issues. The first signs of open-source AMD problems was when testing out the Radeon HD 3850 when connecting the dual-link DVI Samsung 30-inch display to one of the outputs had resulted in no signal and the other output had resulted in a blank screen. The RV670 class GPUs have had hit or miss support on Linux with recent kernels in my experience. While the GPUs have been around for a long time, they've regressed a few times now with the open-source Radeon DRM driver; Linux 3.12 doesn't appear too good for this hardware. The Radeon HD 3650 didn't run into any mode-setting issues on this hardware (though there was "invalid ELD data byte" being spewed by the driver), but it was unstable when running the Source Engine tests and resulted in "GPU lockup CP stall for more than 10000msec" and "*ERROR* radeon: fence wait failed" errors. With frequent GPU lock-ups, the HD 3650 tests were abandoned.
When turning to the Radeon HD 2900XT was the point at which the open-source driver support wouldn't go any further. The R600 Gallium3D driver on the HD 2900XT had the OpenGL glColorMaskIndexedEXT support missing, so the games failed to start.
I also had booted up a Radeon HD 2600PRO just for reference, but while it does support dual-link monitors and a 2560x1600 resolution, it had mode-setting issues so I couldn't make it to any OpenGL testing.
I also booted the system with a Radeon X1950PRO to see if the open-source R300 Gallium3D driver would work with this R500-class GPU, but there was also the glColorMaskIndexedEXT issue.
The Radeon HD 7850, HD 7950, and R9 270X graphics cards on the RadeonSI driver failed to work four both TF2 and CS:S; it appeared due to GLSL issues.