Archive for July, 2009

r6xx/r7xx gears!

Wednesday, July 15th, 2009

Over the last few days Richard, Cooper, and I have sorted out the last major issues with getting the r6xx/r7xx code ported from our original code base to the radeon-rewrite model.  Today we finally solved the issues with buffer aging and now gears is working again!  Most of the code is in place so from now on it should mostly be a matter of bug fixing.  Note the the current code does not perform very well for double buffered applications as we are using memcpy to do buffer swaps which really hurts when doing vram to vram copies.  I’m getting about 15 fps on gears with memcpy.  Playing around with gpu accelerated copies easily got me a 100x improvement.  Same goes for texture uploads.  The clear code calls back into mesa to clear similar to the kms paths in the other radeon and intel 3d drivers.  The clear color does not get set right yet on r6xx chips, so the clear color will likely be wrong for most r6xx users.  You’ll need the radeon driver from git master or the 6.12-branch or radeonhd driver from git and the r6xx-rewrite branch of mesa (http://cgit.freedesktop.org/mesa/mesa/?h=r6xx-rewrite) along with the r6xx-r7xx-3d branch of my drm tree (http://cgit.freedesktop.org/~agd5f/drm/?h=r6xx-r7xx-3d).  The drm kernel modules only build against 2.6.27 or 2.6.28 at the moment.  I’ll create a patch against the kernel when things are further along.

UPDATE: R6xx/RS780 is now working.  Apparently on R6xx, you always need to emit a fetch shader even if you are not using it.

UPDATE2:  The r6xx-rewrite branch of mesa has moved to master, so from now on use mesa master.