Name Last Update
..
CVS Loading commit data...
GNUmakefile Loading commit data...
Makefile Loading commit data...
README Loading commit data...
ball16x16x8.rgba Loading commit data...
ball32x16x4.rgba Loading commit data...
ball32x32x2.rgba Loading commit data...
ball64x32.rgba Loading commit data...
controller.c Loading commit data...
framebuf.c Loading commit data...
meter.c Loading commit data...
param.c Loading commit data...
spbench.c Loading commit data...
spbench.h Loading commit data...
spec Loading commit data...
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.