README
1.77 KB
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.