From: Paul M. <pa...@sa...> - 2004-06-29 10:40:31
|
Adam Jackson writes: > Paul Mackerras did some profiling on G5 with an r300 and found that we waste a > whole lot of time moving pixel data around. Yes. I am running bzflag in a 1024x768 window with the quality set to low and all the texturing turned off. The rendering (in the client, using Mesa) was taking about 15ms (this is with some altivec acceleration but also compiled with -pg), but copying the image to the frame buffer took 30ms. Using altivec stores instead of ordinary word stores gets the bandwidth to the framebuffer from 50MB/s up to 150MB/s and brings the time to transfer the image down to 10ms, which gets the frame rate from 22 up to 40fps. Even the 150MB/s isn't exactly stellar though. In my profiling of Mesa (running bzflag), the two biggest consumers of time were the code that clears the image buffer and the code that generates pixel spans (interpolate_colors). (I have altivec versions of those two now.) One thing I want to do is to have two image buffers in shared memory so that we can be rendering into one while the X server copies out of the other (on the second CPU). Paul. |