Claims
- 1. A method for programmable processing of fragment data in a computer hardware graphics pipeline, comprising:
(a) receiving fragment data in a hardware graphics pipeline; (b) determining whether the hardware graphics pipeline is operating in a programmable mode; (c) performing programmable operations on the fragment data in order to generate output if it is determined that the hardware graphics pipeline is operating in the programmable mode; and (d) performing standard graphics application program interface operations on the fragment data in order to generate output if it is determined that the hardware graphics pipeline is not operating in the programmable mode; (e) wherein the programmable operations are performed in a sequence specified in a graphics application program interface.
- 2. The method as recited in claim 1, wherein the fragment data is received from a rasterizer.
- 3. The method as recited in claim 1, wherein the fragment data includes constant registers associated with a fragment.
- 4. The method as recited in claim 1, wherein the fragment data includes attributes associated with a fragment.
- 5. The method as recited in claim 4, wherein the attributes include color values.
- 6. The method as recited in claim 4, wherein the attributes include at least one texture coordinate set.
- 7. The method as recited in claim 1, wherein the programmable operations include retrieving texture data.
- 8. The method as recited in claim 7, wherein the texture data is retrieved utilizing arbitrarily computed texture coordinates.
- 9. The method as recited in claim 1, wherein the programmable operations include mathematical computations.
- 10. The method as recited in claim 1, wherein the output of the programmable operations includes color values associated with a fragment.
- 11. The method as recited in claim 1, wherein the output of the programmable operations includes depth values associated with a fragment.
- 12. The method as recited in claim 1, wherein the standard graphics application program interface operations include OpenGL® operations.
- 13. The method as recited in claim 1, wherein the standard graphics application program interface operations are selected from the group consisting of texturing operations, color sum operations, and fog operations.
- 14. The method as recited in claim 1, wherein the standard graphics application program interface operations include texturing operations, color sum operations, and fog operations.
- 15. The method as recited in claim 1, wherein the programmable operations are performed on the fragment data associated with each fragment processed by a rasterizer.
- 16. The method as recited in claim 1, wherein the programmable operations include a kill operation.
- 17. The method as recited in claim 1, wherein the programmable operations include a partial derivative operation.
- 18. The method as recited in claim 1, wherein the programmable operations include an operation selected from the group consisting of a packing and an unpacking operation.
- 19. The method as recited in claim 1, wherein the programmable operations are performed on the fragment data which includes four-component vectors.
- 20. The method as recited in claim 1, wherein the operations are simultaneously performed on fragment data representing a plurality of different fragments.
- 21. The method as recited in claim 1, wherein the programmable operations include programmable blending operations.
- 22. The method as recited in claim 1, wherein the programmable operations include subroutines.
- 23. The method as recited in claim 1, wherein the programmable operations are capable of branching.
- 24. A computer program product for programmable processing of fragment data in a computer hardware graphics pipeline, comprising:
(a) computer code for receiving fragment data in a hardware graphics pipeline; (b) computer code for determining whether the hardware graphics pipeline is operating in a programmable mode; (c) computer code for performing programmable operations on the fragment data in order to generate output if it is determined that the hardware graphics pipeline is operating in the programmable mode; and (d) computer code for performing standard graphics application program interface operations on the fragment data in order to generate output if it is determined that the hardware graphics pipeline is not operating in the programmable mode; (e) wherein the programmable operations are performed in a sequence specified in a graphics application program interface.
- 25. A system for programmable processing of fragment data in a computer hardware graphics pipeline, comprising:
(a) logic for receiving fragment data in a hardware graphics pipeline; (b) logic for determining whether the hardware graphics pipeline is operating in a programmable mode; (c) logic for performing programmable operations on the fragment data in order to generate output if it is determined that the hardware graphics pipeline is operating in the programmable mode; and (d) logic for performing standard graphics application program interface operations on the fragment data in order to generate output if it is determined that the hardware graphics pipeline is not operating in the programmable mode; (e) wherein the programmable operations are performed in a sequence specified in a graphics application program interface.
- 26. A system for programmable processing of fragment data in a computer hardware graphics pipeline, comprising:
(a) means for receiving fragment data in a hardware graphics pipeline; (b) means for determining whether the hardware graphics pipeline is operating in a programmable mode; (c) means for performing programmable operations on the fragment data in order to generate output if it is determined that the hardware graphics pipeline is operating in the programmable mode; and (d) means for performing standard graphics application program interface operations on the fragment data in order to generate output if it is determined that the hardware graphics pipeline is not operating in the programmable mode; (e) wherein the programmable operations are performed in a sequence specified in a graphics application program interface.
- 27. A method for programmable processing of fragment data in a computer hardware graphics pipeline, comprising:
(a) receiving fragment data selected from the group consisting of constant registers, color values and texture coordinates associated with a fragment; and (b) performing programmable operations on the fragment data in order to generate output; (c) wherein the operations are programmable by a user utilizing instructions from a predetermined instruction set via an application program interface.
- 28. A system for programmable processing of fragment data in a computer hardware graphics pipeline, comprising:
(a) logic for receiving fragment data selected from the group consisting of constant registers, color values and texture coordinates associated with a fragment; and (b) logic for performing programmable operations on the fragment data in order to generate output; (c) wherein the operations are programmable by a user utilizing instructions from a predetermined instruction set via an application program interface.
- 29. A data structure stored in memory for programmable processing of fragment data in a computer hardware graphics pipeline, comprising:
(a) an instruction set for performing programmable operations on fragment data in order to generate output; (b) wherein the operations are programmable by a user utilizing instructions from the instruction set via an application program interface.
- 30. A method for processing of fragment data in a computer hardware graphics pipeline, comprising:
(a) receiving fragment data selected from the group consisting of constant registers, color values and texture coordinates associated with a fragment; (b) retrieving texture data utilizing the texture coordinates in accordance with a fragment program; (c) performing programmable mathematical computations involving the fragment data in accordance with the fragment program; and (d) outputting at least one of color values and depth values based on the texture data and the mathematical computations; (e) wherein the programmable mathematical computations are performed in a computer hardware graphics pipeline in a manner specified in a graphics application program interface.
- 31. The method as recited in claim 30, and further comprising executing individual fragment program instructions of the fragment program.
- 32. A method for processing of fragment data in a computer hardware graphics pipeline, comprising:
(a) receiving fragment data; (b) performing programmable partial derivative operations involving the fragment data in accordance with a fragment program; and (c) outputting at least one of color values and depth values resulting at least in part from the partial derivative operations; (d) wherein the programmable partial derivative operations are performed in a computer hardware graphics pipeline in a manner specified in a graphics application program interface.
- 33. A method for processing of fragment data in a computer hardware graphics pipeline, comprising:
(a) receiving fragment data including texture coordinates associated with a fragment; (b) retrieving texture data utilizing the texture coordinates in accordance with a fragment program based on programmable texture operations; and (c) outputting at least one of color values and depth values based at least in part on the texture data; (d) wherein the programmable texture operations are performed in a computer hardware graphics pipeline in a manner specified in a graphics application program interface.
- 34. A method for processing of fragment data in a computer hardware graphics pipeline, comprising:
(a) receiving fragment data; (b) programmably processing the fragment data in accordance with a fragment program; (c) performing a kill operation in accordance with the fragment program; and (d) terminating the programmable processing in response to the kill operation; (e) wherein the programmable processing is performed in a computer hardware graphics pipeline in a manner specified in a graphics application program interface.
- 35. A method for processing of fragment data in a computer hardware graphics pipeline, comprising:
(a) receiving fragment data; (b) programmably processing the fragment data; and (c) outputting at least one of color values and depth values resulting at least in part from the programmable processing; (d) wherein the fragment data includes at least one of multiple component vectors and floating point vectors, and the programmable processing is performed in a computer hardware graphics pipeline in a manner specified in a graphics application program interface.
- 36. A method for processing of fragment data in a computer hardware graphics pipeline, comprising:
(a) receiving fragment data including a plurality of low-precision values; and (b) packing a plurality of the low-precision values of the fragment data in a full-precision format; (c) wherein programmable processing of the fragment data is performed in a computer hardware graphics pipeline in a manner specified in a graphics application program interface.
- 37. A method for processing of fragment data in a computer hardware graphics pipeline, comprising:
(a) receiving packed low-precision values in a full-precision format, from at least one of associated fragment data, texture lookups, and fragment program computations; and (b) unpacking portions of the values into a full-precision format; (c) wherein programmable processing of the fragment data is performed in a computer hardware graphics pipeline in a manner specified in a graphics application program interface.
- 38. A system for programmable processing of fragment data in a computer hardware graphics pipeline, comprising:
(a) computer code for receiving a fragment program; and (b) computer code for translating the fragment program; (c) wherein the fragment program is translated for being handled by a computer hardware graphics pipeline that is partially programmable, and programmable processing of fragment data is performed in the computer hardware graphics pipeline in a manner specified in a graphics application program interface.
- 39. A method for programmable processing of fragment data in a computer hardware graphics pipeline, comprising:
(a) receiving fragment data in a hardware graphics pipeline; (b) determining whether the hardware graphics pipeline is operating in a programmable mode; (c) performing per-fragment programmable operations on the fragment data in order to generate output if it is determined that the hardware graphics pipeline is operating in the programmable mode; and (d) performing standard graphics application program interface operations on the fragment data in order to generate output if it is determined that the hardware graphics pipeline is not operating in the programmable mode; (e) wherein the per-fragment programmable operations are performed in a manner specified in a graphics application program interface in textual form.
- 40. A method for programmable processing of fragment data in a computer hardware graphics pipeline, comprising:
(a) receiving fragment data in a hardware graphics pipeline; (b) determining whether the hardware graphics pipeline is operating in a programmable mode; (c) performing programmable operations on the fragment data in order to generate output if it is determined that the hardware graphics pipeline is operating in the programmable mode, the fragment data including vectors; and (d) performing standard graphics application program interface operations on the fragment data in order to generate output if it is determined that the hardware graphics pipeline is not operating in the programmable mode; (e) wherein the programmable operations are performed in a manner specified in a graphics application program interface.
- 41. The method as recited in claim 40, wherein the vectors include multiple component vectors.
- 42. The method as recited in claim 40, wherein the vectors include floating-point vectors.
- 43. A method for programmable processing of fragment data in a computer hardware graphics pipeline, comprising:
(a) receiving fragment data in a hardware graphics pipeline; (b) determining whether the hardware graphics pipeline is operating in a programmable mode; (c) before storing the fragment data in a frame buffer, performing programmable operations on the fragment data in order to generate output if it is determined that the hardware graphics pipeline is operating in the programmable mode; and (d) before storing the fragment data in the frame buffer, performing standard graphics application program interface operations on the fragment data in order to generate output if it is determined that the hardware graphics pipeline is not operating in the programmable mode; (e) wherein the programmable operations are performed in a manner specified in a graphics application program interface.
RELATED APPLICATION(S)
[0001] The present application is a continuation-in-part of a co-pending application filed Jun. 08, 2001 under Ser. No. 09/877,348.
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09877348 |
Jun 2001 |
US |
Child |
10000996 |
Nov 2001 |
US |