IP Library Granted Patent US 7,286,133
Granted Patent B2
US 7,286,133 · App. 11/126,719 · Granted Oct 23, 2007

System, method and computer program product for programmable fragment processing

Assignee: NVIDIA Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,286,133
App. No.
11/126,719
Granted
Oct 23, 2007
Kind
B2
Abstract

A system, method and computer program product are provided for programmable processing of fragment data in a computer hardware graphics pipeline. Initially, fragment data is received in a hardware graphics pipeline. It is then determined whether the hardware graphics pipeline is operating in a programmable mode. If it is determined that the hardware graphics pipeline is operating in the programmable mode, programmable operations are performed on the fragment data in order to generate output. The programmable operations are performed in a manner/sequence specified in a graphics application program interface. If it is determined that the hardware graphics pipeline is not operating in the programmable mode, standard graphics application program interface (API) operations are performed on the fragment data in order to generate output.

Claims (42)

1. 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;

(b) performing programmable operations on the fragment data in order to generate output; and

(c) storing fragment data associated with the generated output in a frame buffer;

wherein the operations are programmable by a user utilizing instructions from a predetermined instruction set in a sequence specified in an application program interface in which a fragment program is a sequence of 4-component vector operations that determine how a set of program registers and input set of per-fragment parameters are transformed to a set of per-fragment result parameters.

2. A computer readable medium encoded with a computer program to implement the steps of:

(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; and

(c) storing fragment data associated with the generated output in a frame buffer;

wherein the operations are programmable by a user utilizing instructions from a predetermined instruction set in a sequence specified in an application program interface in which a fragment program is a sequence of 4-component vector operations that determine how a set of program registers and input set of per-fragment parameters are transformed to a set of per-fragment result parameters.

3. A computer readable medium encoded with a computer program to implement the steps of:

(a) 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 in a sequence specified in an application program interface in which a fragment program is a sequence of 4-component vector operations that determine how a set of program registers and input set of per-fragment parameters are transformed to a set of per-fragment result parameters.

4. 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; and

(e) storing fragment data associated with the generated output in a frame buffer;

wherein the programmable mathematical computations are performed in a computer hardware graphics pipeline in a sequence specified in a graphics application program interface in which the fragment program is a sequence of 4-component vector operations that determine how a set of program registers and input set of per-fragment parameters are transformed to a set of per-fragment result parameters.

5. The method as recited in claim 4 , and further comprising executing individual fragment program instructions of the fragment program.

6. 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; and

(d) storing fragment data associated with the generated output in a frame buffer;

wherein the programmable partial derivative operations are performed in a computer hardware graphics pipeline in a sequence specified in a graphics application program interface in which the fragment program is a sequence of 4-component vector operations that determine how a set of program registers and input set of per-fragment parameters are transformed to a set of per-fragment result parameters.

7. 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; and

(d) storing fragment data associated with the generated output in a frame buffer; wherein the programmable texture operations are performed in a computer hardware graphics pipeline in a sequence specified in a graphics application program interface in which the fragment program is a sequence of 4-component vector operations that determine how a set of program registers and input set of per-fragment parameters are transformed to a set of per-fragment result parameters.

8. 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; and

(d) storing fragment data associated with the generated output in a frame buffer;

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 sequence specified in a graphics application program interface in which a fragment program is a sequence of 4-component vector operations that determine how a set of program registers and input set of per-fragment parameters are transformed to a set of per-fragment result parameters.

9. A computer readable medium encoded with a computer program to implement the steps of:

(a) for receiving a fragment program; and

(b) translating the fragment program;

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 sequence specified in a graphics application program interface in which the fragment program is a sequence of 4-component vector operations that determine how a set of program registers and input set of per-fragment parameters are transformed to a set of per-fragment result parameters.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2006
From: KILGARD, MARK J.; BROWN, PATRICK R.; WERNESS, ERIC S.
To: NVIDIA CORPORATION
Reel/Frame 018306/0068 →
Continuity (3)
Division 1000099600 · Nov 30, 2001
Continuation In Part 0987734800 · Jun 8, 2001
Related Publication 20050259103A1 · Nov 24, 2005