The "spbench" application demonstrates rendering performance of a number of different sprite sizes in various modes. All textures are of type 5/5/5/1 RGBA and are rendered to a 16 bit frame buffer. The actual texture sizes are 16x16, 32x16, 16x32, 32x32, 64x32, and 32x64 and are packed so that they can be loaded into a single 4K load of texture memory (TMEM). For example, 8 16x16 textures or 1 64x32 texture will completely consume TMEM. The sprites are drawn as textured rectangles in either copy mode or one cycle mode. Where appropriate, a texture is scaled and filtered to a larger rectangle in one cycle mode. For truly optimal performance, the individual textures are not addressed via different texture tile descriptors; instead, different textures are addressed by varying T coordinates. In effect, the program is really interpreting n SxT textures from a single Sx(T*n) texture. The controller works as follows: up/down Increase/decrease the number of sprites drawn. left/right Increase/decrease the number of sprites drawn between loads of TMEM. trigger (G) Switch between various sprite parameter scenarios. The meter at the top of the display measures duration of certain operations: yellow Starting/waiting for controller request. red Generating (next) frame's display list. green RCP rendering of (current) frame's display list. white Remaining time prior to 60 Hz retrace interval. black Time following retrace interval. The yellow/red bars are significant only if they exceed the actual rendering time of the current frame (white). A more interesting indication is if the white bar encroaches into the black region - this indicates that RCP rendering time has exceeded on 60 Hz frame. To make this occur, tape the up button to increase the number of sprites drawn.
Name |
Last commit
|
History
|
Last Update |
---|---|---|
.. | ||
CVS | ||
Makefile | ||
README | ||
ball16x16x8.rgba | ||
ball32x16x4.rgba | ||
ball32x32x2.rgba | ||
ball64x32.rgba | ||
controller.c | ||
framebuf.c | ||
meter.c | ||
param.c | ||
spbench.c | ||
spbench.h | ||
spec |