Patent ID: 8044951

Claim:
A method for processing integer data operations on a graphics processing unit, the method comprising: receiving a first shader program configured to be executed by a first shader unit in the graphics processing unit and a second shader program configured to be executed by a second shader unit in the graphics processing unit, wherein both the first shader program and the second shader program include instructions that are written in a high-level shading language and include integer data operations, and wherein the first shader unit and the second shader unit are configured to perform both integer data operations and floating point data operations; converting the high-level shading language instructions of the first shader program and the second shader program into assembly code, wherein variables requiring native integer processing are declared in the first shader program and the second shader program as integers in the high-level shading language for execution using only native integer data operations and not using floating point data operations; linking the assembly code instructions of the first shader program with the assembly code instructions of the second shader program, wherein a varying out variable written by the second shader program is linked to a fragment color reference number associated with a particular buffer and bindings of varying out variables can be queried using a command that returns a fragment color reference number to which a varying out variable specified as an input to the command was bound when the second shader program was last linked; converting the linked assembly code instructions of the first shader program and the second shader program into microcode instructions that can be executed on the graphics processing unit; and transmitting the microcode instructions of the first shader program to the first shader unit and the microcode instructions of the second shader program to the second shader unit, wherein the variables declared as integers are executed by the first shader unit and the second shader unit using only integer data operations and not using floating point data operations.