Graphics rendering system with reconfigurable pipeline sequence
First Claim
Patent Images
1. A method for processing graphics data through a data path comprising the steps of:
- (a) receiving a routing command from a data bus input;
(b) stalling further input from said data bus input until previous data has exited said data path;
(c) resuming said input from said data bus input;
(d) if said routing command has a first value, thenperforming a first set of graphics processes on said data, and thenperforming a second set of graphics processes on said data;
(e) if said routing command has a second value, thenperforming said second set of graphics processes on said data, and thenperforming said first set of graphics processes on said data, wherein some portion of said data is selectively eliminated by said first or second sets of graphics process according to the results of said processes;
wherein steps (d) and (e) are repeated until a new routing command is received;
wherein said first set of graphics processes requires a longer processing time than said second set of graphics processes.
4 Assignments
0 Petitions
Accused Products
Abstract
The preferred embodiment discloses a pipelined graphics processor in which the sequence can be dynamically reconfigured (e.g. between primitives) in a rendering sequence. The pipeline sequence can be configured for compliance with specifications such as OpenGL, but may also be optimized by reconfiguring the pipeline sequence to eliminate unnecessary processing. In a preferred embodiment, pixel elimination sequences such as depth and stencil tests are performed before texturing calculations are performed, so that unneeded pixel data is discarded before said texturing calculations are performed.
167 Citations
26 Claims
-
1. A method for processing graphics data through a data path comprising the steps of:
-
(a) receiving a routing command from a data bus input; (b) stalling further input from said data bus input until previous data has exited said data path; (c) resuming said input from said data bus input; (d) if said routing command has a first value, then performing a first set of graphics processes on said data, and then performing a second set of graphics processes on said data; (e) if said routing command has a second value, then performing said second set of graphics processes on said data, and then performing said first set of graphics processes on said data, wherein some portion of said data is selectively eliminated by said first or second sets of graphics process according to the results of said processes; wherein steps (d) and (e) are repeated until a new routing command is received; wherein said first set of graphics processes requires a longer processing time than said second set of graphics processes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for processing graphics data through a data path comprising the steps of:
-
(a) receiving a routing command from a data bus input; (b) stalling further input from said data bus input until previous data has exited said data path; (c) resuming said input from said data bus input; (d) if said routing command has a first value, then performing a set of texturing processes on said data, and then performing a set of pixel elimination processes on said data; (e) if said routing command has a second value, then performing said set of pixel elimination processes on said data, and then performing said set of texturing processes on said data, wherein some portion of said data is selectively eliminated by said set of pixel elimination processes according to the results of said processes; wherein steps (d) and (e) are repeated until a new routing command is received; wherein said first set of graphics processes requires a longer processing time than said second set of graphics processes.
-
-
10. A method for rendering graphics data comprising the steps of:
-
(a) receiving a routing command from a data bus input; (b) stalling further input from said data bus input until previous data has exited said data path; (c) resuming said input from said data bus input; (d) if said routing command has a first value, then performing a set of texturing processes on said data, and then performing a set of pixel elimination processes on said data; (e) if said routing command has a second value, then performing said set of pixel elimination processes on said data, and then performing said set of texturing processes on said data, wherein some portion of said data is selectively eliminated by said set of pixel elimination processes according to the results of said processes; (f) rendering said data and writing the results to a memory; (g) displaying the contents of said memory; wherein steps (d) and (e) are repeated until a new routing command is received; wherein said set of texturing processes requires a longer processing time than said set of pixel elimination processes.
-
-
11. A method for processing graphics data through a data path comprising the steps of:
-
(a) receiving a routing command from a data bus input; (b) stalling further input from said data bus input until previous data has exited said data path; (c) resuming said input from said data bus input; (d) if said routing command has a first value, then reading said graphics data from said data bus input; performing a color DDA process on said data; performing a texturing process on said data; performing an alpha test on said data; if the data has passed the previous test, then performing a graphics ID test on said data; if the data has passed the previous tests, then performing a stencil test on said data; if the data has passed the previous tests, then performing a depth test on said data; and if the data has passed the previous tests, then writing said data to a local bus; (e) if said routing command has a second value, then reading said graphics data from said data bus input; performing a graphics ID test on said data; if the data has passed the previous test, then performing a stencil test on said data; if the data has passed the previous tests, then performing a depth test on said data; if the data has passed the previous tests, then performing a color DDA process on said data; if the data has passed the previous tests, then performing a texturing process on said data; if the data has passed the previous tests, then performing an alpha test on said data; if the data has passed the previous tests, then writing said data to a local bus; wherein steps (d) and (e) are repeated until a new routing command is received. - View Dependent Claims (12, 13, 14)
-
-
15. A pipelined graphics processing device, comprising:
-
a switching device connected to a data bus input and configured to route graphics data received on said data bus according to instruction data received on said data bus; a multiplexing device connected to said switching device and to a data bus output; a first processing block connected and configured to receive said graphics data from said switching device and pass processed graphics data to said multiplexing device; and a second processing block connected and configured to receive said graphics data from said switching device and pass processed graphics data to said multiplexing device; wherein said switching device routes said graphics data according to a first data path, wherein said graphics data is processed by said first processing block and then by said second processing block, or a second data path, wherein said graphics data is processed by said second processing block before said first processing block, according to said instruction data. - View Dependent Claims (16, 17, 18)
-
-
19. A pipelined graphics processing device, comprising:
-
a routing device connected to a data bus input and data bus output and configured to route graphics data received on said data bus according to instruction data received on said data bus; a first processing block connected and configured to receive said graphics data from said routing device and pass processed graphics data back to said routing device; and a second processing block connected and configured to receive said graphics data from said routing device and pass processed graphics data back to said routing device; wherein said routing device routes data according to a first data path, wherein said graphics data is processed by said first processing block and then by said second processing block, or a second data path, wherein said graphics data is processed by said second processing block before said first processing block, according to said instruction data.
-
-
20. A graphics processing subsystem, comprising:
-
at least four functionally distinct processing units, each including hardware elements which are customized to perform a rendering operation which is not performed by at least some others of said processing units;
at least some ones of said processing units being connected to operate asynchronously to one another;a frame buffer, connected to be accessed by at least one of said processing units; said processing units being mutually interconnected in a pipeline relationship, with at least some successive ones of said processing units being interconnected through a FIFO buffer; and wherein at least one said processing unit is connected to look downstream, in said pipeline relationship, past the immediately succeeding one of said processors; and wherein at least two of said processing units are selectively dynamically reordered in said pipeline relationship; whereby the duty cycle of said processors is increased while permitting use of a reduced depth for said FIFO. - View Dependent Claims (21, 22, 23, 24, 25, 26)
-
Specification