Systems and methods for downloading algorithmic elements to a
coprocessor and corresponding
processing and communication techniques are provided. For an improved
graphics pipeline, the invention provides a class of co-
processing device, such as a
graphics processor unit (GPU), providing improved capabilities for an abstract or
virtual machine for performing
graphics calculations and rendering. The invention allows for runtime-predicated flow control of programs downloaded to coprocessors, enables coprocessors to include indexable arrays of on-
chip storage elements that are readable and writable during execution of programs, provides native support for textures and texture maps and corresponding operations in a vertex
shader, provides frequency division of vertex streams input to a vertex
shader with optional support for a
stream modulo value, provides a register storage element on a pixel
shader and associated interfaces for storage associated with representing the “face” of a pixel, provides vertex shaders and
pixel shaders with more on-
chip register storage and the ability to receive larger programs than any existing vertex or
pixel shaders and provides 32 bit float number support in both vertex and
pixel shaders.