Floating point buffer system and method for use during programmable fragment processing in a graphics pipeline
AssigneeNVIDIA Corporation
InventorsMark J. Kilgard, Patrick R. Brown
Life of this patent
Estimating the term…
Abstract
A system, method and computer program product are provided for buffering data in a computer graphics pipeline. Initially, graphics floating point data is read from a buffer in a graphics pipeline. Next, the graphics floating point data is operated upon in the graphics pipeline. Further, the graphics floating point data is stored to the buffer in the graphics pipeline.
Claims27
A method for buffering data produced by a computer graphics pipeline, comprising:
- producing graphics floating point data in a graphics pipeline;
- operating on the graphics floating point data in the graphics pipeline;
- and
- storing the graphics floating point data to a buffer;
- wherein the graphics floating point data includes fragment data received from a rasterizer that is read and stored in an unclamped format dictated by a graphics application program interface for increasing a parameter selected from the group consisting of a precision and a range of the graphics floating point data;
- wherein the graphics floating point data is packed in the graphics pipeline, the packing facilitating storage of at least two quantities in a single buffer in a single pass.
A computer program product for buffering data produced by a computer graphics pipeline, comprising:
- (a) computer code for producing graphics floating point data in a graphics pipeline;
- (b) computer code for operating on the graphics floating point data in the graphics pipeline;
- and
- (c) computer code for storing the graphics floating point data to a buffer,
- (d) wherein the graphics floating point data includes fragment data received from a rasterizer that is read and stored in an unclamped format dictated by a graphics application program interface for increasing a parameter selected from the group consisting of a precision and a range of the graphics floating point data;
- (e) wherein the graphics floating point data is packed in the graphics pipeline, the packing facilitating storage of at least two quantities in a single buffer in a single pass.
A system for buffering data produced by a computer graphics pipeline, comprising:
- (a) logic for producing graphics floating point data in a graphics pipeline;
- (b) logic for operating on the graphics floating point data in the graphics pipeline;
- and
- (c) logic for storing the graphics floating point data to a buffer;
- (d) wherein the graphics floating point data includes fragment data received from a rasterizer that is read and stored in an unclamped format dictated by a graphics application program interface for increasing a parameter selected from the group consisting of a precision and a range of the graphics floating point data;
- (e) wherein the graphics floating point data is packed in the graphics pipeline, the packing facilitating storage of at least two quantities in a single buffer in a single pass.
A buffering apparatus, comprising:
- (a) a buffer capable of storing graphics floating point data produced by a graphics pipeline;
- (b) wherein the graphics floating point data includes fragment data received from a rasterizer that is stored in an unclamped format dictated by a graphics application program interface for increasing a parameter selected from the group consisting of a precision and a range of the graphics floating point data;
- (c) wherein the graphics floating point data is packed in the graphics pipeline, the packing facilitating storage of at least two quantities in a single buffer in a single pass.
A system for buffering data produced by a computer graphics pipeline, comprising:
- (a) means for producing graphics floating point data in a graphics pipeline;
- (b) means for operating on the graphics floating point data in the graphics pipeline;
- and
- (c) means for storing the graphics floating point data to a buffer;
- (d) wherein the graphics floating point data includes fragment data received from a rasterizer that is read and stored in an unclamped format dictated by a graphics application program interface for increasing a parameter selected from the group consisting of a precision and a range of the graphics floating point data;
- (e) wherein the graphics floating point data is packed in the graphics pipeline, the packing facilitating storage of at least two quantities in a single buffer in a single pass.
A method for buffering data produced by a computer graphics pipeline, comprising:
- operating on graphics floating point data in a graphics pipeline;
- producing the graphics floating point data in the graphics pipeline;
- determining whether the graphics pipeline is operating in a programmable mode utilizing a command associated with a graphics application program interface;
- if it is determined that the graphics pipeline is not operating in the programmable mode, performing standard graphics application program interface operations on the graphics floating point data;
- and
- if it is determined that the graphics pipeline is operating in the programmable mode:
- storing the graphics floating point data to a frame buffer,
- wherein the graphics floating point data includes fragment data received from a rasterizer that is read and stored in an unclamped format dictated by a graphics application program interface extension for increasing a parameter selected from the group consisting of a precision and a range of the graphics floating point data.
A method for buffering data produced by a computer graphics pipeline, comprising:
- (a) producing graphics floating point data in a graphics pipeline;
- (b) operating on the graphics floating point data in the graphics pipeline;
- and
- (c) storing the graphics floating point data to a buffer;
- (d) wherein the buffer serves as a texture map;
- (e) wherein the graphics floating point data is packed in the graphics pipeline, the packing facilitating storage of at least two quantities in a single buffer in a single pass.
A buffering apparatus, comprising:
- (a) a buffer capable of storing graphics floating point data produced by a graphics pipeline;
- (b) wherein the buffer serves as a texture map;
- (c) wherein the graphics floating point data is packed in the graphics pipeline, the packing facilitating storage of at least two quantities in a single buffer in a single pass.
A method for buffering data during multi-pass rendering, comprising:
- (a) operating on graphics floating point data during a rendering pass in a graphics
- pipeline;
- (b) reading the graphics floating point data from a buffer during the rendering pass;
- (c) storing the graphics floating point data to the buffer during the rendering pass;
- and
- (d) repeating (a)–(c) during additional rendering passes utilizing results of a previous rendering pass;
- (e) wherein the graphics floating point data is packed in the graphics pipeline, the packing facilitating storage of at least two quantities in a single buffer in a single pass.
A method for buffering data produced by a computer graphics pipeline, comprising:
- producing graphics floating point data in a graphics pipeline;
- packing the graphics floating point data in the graphics pipeline;
- and
- storing the graphics floating point data to a buffer;
- wherein the packing facilitates storage of at least two quantities in a single buffer in a single pass.
A method for buffering data produced by a computer graphics pipeline, comprising:
- producing graphics floating point data in a graphics pipeline;
- unpacking the graphics floating point data in the graphics pipeline;
- and
- operating on the unpacked graphics floating point data in the graphics pipeline;
- wherein the unpacking facilitates storage of at least two quantities in a single buffer in a single pass.
Dependencies are inferred from the claim text.