Thanks for the input all. You're right, xorg-edgers don't package llvmpipe, so I had to build it myself. I finally got around to doing that:
Runs at a respectable ~30 fps:
Code:
rune@runescomp:~/Programming/mesa$ glxinfo | grep OpenGL
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe
OpenGL version string: 2.1 Mesa 7.11-devel
OpenGL shading language version string: 1.20
OpenGL extensions:
rune@runescomp:~/Programming/mesa$ openarena +exec anholt 2>&1 | egrep -e '[0-9]+ frames'
840 frames 30.5 seconds 27.6 fps 15.0/36.3/1021.0/16.0 ms
That's barely slower than my HD 3870! (at ~36 fps)
Code:
rune@runescomp:~/Programming/mesa$ glxinfo | grep OpenGL
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD RV670
OpenGL version string: 1.4 (2.1 Mesa 7.11-devel)
OpenGL extensions:
rune@runescomp:~/Programming/mesa$ openarena +exec anholt 2>&1 | egrep -e '[0-9]+ frames'
840 frames 36.2 seconds 23.2 fps 2.0/43.1/109.0/19.6 ms
But I guess it's the low resolution right? 640x480 seems to create a bottleneck somewhere in the system. Still though... 36 fps isn't much on a GPU.
Here's 1600x1200 for a comparison:
Code:
rune@runescomp:~/Programming/mesa$ glxinfo | grep Gallium
OpenGL renderer string: Gallium 0.4 on llvmpipe
rune@runescomp:~/Programming/mesa$ openarena +exec anholt 2>&1 | egrep -e '[0-9]+ frames'
840 frames 76.1 seconds 11.0 fps 53.0/90.6/787.0/22.6 ms
Still, 11 fps at 1600x1200 isn't bad for software!
Code:
rune@runescomp:~/Programming/mesa$ glxinfo | grep Gallium
OpenGL renderer string: Gallium 0.4 on AMD RV670
rune@runescomp:~/Programming/mesa$ openarena +exec anholt 2>&1 | egrep -e '[0-9]+ frames'
840 frames 43.2 seconds 19.5 fps 3.0/51.4/113.0/21.1 ms
It's better, but only less that twice as fast. LLVMpipe does quite a job! (or maybe the RV670 gallium driver just sucks) 
Hmm, by closer look I notice the r600g driver only supports OpenGL 1.4, could that be the problem? Falling back to software to reach version 2.1, or whatever is required by OpenArena?