Patent ID: 6844880

Claim:
A method for branching during programmable processing in a computer graphics pipeline, comprising: (a) receiving data; (b) performing programmable operations on the data in order to generate output, wherein the operations are programmable by a user utilizing instructions from a predetermined instruction set; (c) branching between the programmable operations in a programmable manner; and (d) storing the output in memory; wherein a swizzle operation is performed for component re-mapping by indicating a manner in which a plurality of source vector components are re-mapped as a plurality of input vector components; wherein the swizzle operation is carried out utilizing commands selected from the group consisting of: .xyzw which means source(x,y,z,w)→input(x,y,z,w); .zzxy which means source(x,y,z,w)→input(z,z,x,y); and .xxxx which means source(x,y,z,w)→input(x,x,x,x); wherein the operations include a call operation, a fraction operation a no operation, a move operation, a multiply operation, an addition operation, a multiply and addition operation, a reciprocal operation, a reciprocal square root operation, a three component dot product operation, a four component dot product operation, a distance vector operation, a minimum operation, a maximum operation, a set on less than operation, a set on greater or equal than operation, an exponential base two (2) operation, a logarithm base two (2) operation, a light coefficients operation, and at least one of a sine and a cosine operation.