Claims
- 1. A system for utilizing at least one processor and at least one bypass processor of a computer graphics system, the at least one processor including a particular number of processors, the at least one processor and the at least one bypass processor for rendering a plurality of primitives, each of the plurality of primitives having a left corner and a right corner, the plurality of primitives being ordered based on the left corner of each of the plurality of primitives, the system comprising:
a merge circuit for determining a left edge for each of the plurality of primitives and determining a right edge for each of the plurality of primitives; a distributor, coupled with the feedback circuit, for outputting a first portion of the plurality of primitives, the distributor providing a second portion of the plurality of primitives to the at least one processor and providing a third portion of the plurality of primitives to the at least one bypass processor if the first portion of the plurality of primitives includes more primitives than the particular number of processors, the second portion of the plurality of primitives including a number of primitives that is not greater than the particular number of processors, a feedback circuit, coupled to the merge circuit and the distributor, for re-inputting a fourth portion of the plurality of primitives to the at least one bypass processor until the first portion of the plurality of primitives has been rendered for a particular line; and a controller for controlling the feedback circuit, the distributor and the merge circuit.
- 2. The system of claim 1 wherein the distributor further discards an expired portion of the primitives, each of the expired portion of the primitives having a right edge to the left of a current position.
- 3. The system of claim 1 wherein the merge circuit receives the fourth portion of the plurality of primitives and provides the fourth portion of the plurality of primitives to the distributor and wherein the distributor provides a fifth portion of the plurality of primitives to the at least one bypass processor.
- 4. The system of claim 1 wherein the merge circuit further determines whether the left edge of the primitive is left of the right edge of the primitive and wherein each of the first portion and the second portion of the plurality of primitives has a left edge that is to the left of the right edge.
- 5. The system of claim 1 wherein the first portion of the plurality of primitives resides on a single line of a display.
- 6. The system of claim 1 wherein the merge circuit further calculates a span for each of the plurality of primitives.
- 7. The system of claim 6 wherein the plurality of primitives are antialiased; and
wherein the merge circuit further calculates the span using the left side of the primitive, the right side of the primitive and whether a current pixel is completely covered or partially covered by the primitive.
- 8. The system of claim 1 wherein the feedback circuit further includes a first in first out (“FIFO”) buffer.
- 9. The system of claim 1 further comprising:
a sorter, coupled with the merge circuit, for sorting the plurality of primitives horizontally.
- 10. The system of claim 9 wherein sorter sorts the plurality of primitives horizontally from left to right, based upon the left edge of the primitive.
- 11. The system of claim 9 wherein the sorter is a hardware sorter.
- 12. The system of claim 9 further include y-loop circuitry for providing the first of the plurality of primitives for a current line to the sorter.
- 13. The system of claim 12 wherein each of the plurality of primitives has a top and a bottom, wherein the plurality of primitives are sorter based on the top of each of the plurality of primitives and wherein the y-loop circuitry further includes:
at least one input for receiving data relating to each of the plurality of primitives; a second merge circuit, coupled with the input, for adding the data for a primitive having a top that is not lower than a current line; a second distributor, coupled with the second merge circuit, for eliminating an expired primitive and outputting the data for a remaining portion of the primitives after the expired primitive has been removed, the expired primitive having a bottom that is above a current line; a second feedback circuit, coupled with the second distributor and the second merge circuit, for re-inputting to the second merge circuit the data for the remaining portion of the plurality of primitives; and a second controller for controlling the second feedback circuit, the second distributor and the second merge circuit.
- 14. A method for utilizing at least one processor and at least one bypass processor of a computer graphics system, the at least one processor including a particular number of processors, the at least one processor and the at least one bypass processor for rendering a plurality of primitives, each of the plurality of primitives having a left corner and a right corner, the plurality of primitives being ordered based on the left corner of each of the plurality of primitives, the method comprising the steps of:
(a) providing a first portion of the plurality of primitives to the at least one processor if the at least one processor is not full; (b) providing a second portion of the plurality of primitives to the at least one bypass processor if the at least one processor is full; and (c) re-inputting a fourth portion of the plurality of primitives to the at least one bypass processor until the first portion of the plurality of primitives has been rendered for a particular line.
- 15. The method of claim 14 further comprising the step of:
discarding an expired portion of the primitives prior to providing the first and second portions of the primitives to the at least one processor and the at least one bypass processor, each of the expired portion of the primitives having a right edge to the left of a current position.
- 16. The method of claim 14 further comprising the step of:
(d) determining whether the left edge of the primitive is left of the right edge of the primitive, wherein each of the first portion and the second portion of the plurality of primitives has a left edge that is to the left of the right edge.
- 17. The method system of claim 14 wherein the first portion of the plurality of primitives resides on a single line of a display.
- 18. The method of claim 14 further comprising the step of:
(d) calculating a span for each of the plurality of primitives.
- 19. The method of claim 18 wherein the plurality of primitives are antialiased and wherein the span calculating step (d) further includes the step of:
(d1) calculating the span using the left side of the primitive, the right side of the primitive and whether a current pixel is completely covered or partially covered by the primitive.
- 20. The method of claim 14 further comprising the step of:
(d) sorting the plurality of primitives horizontally prior to determining the left edge of each of the plurality of primitives.
- 21. The method of claim 20 wherein the sorting step (d) further includes the step of:
(d1) sorting the plurality of primitives horizontally from left to right, based upon the left edge of the primitive.
- 22. The method of claim 20 further comprising the step of:
(e) providing the first portion of the plurality of primitives for a current line to a sorter for performing the sorting step (d).
- 23. The method of claim 22 wherein each of the plurality of primitives has a top and a bottom, wherein the plurality of primitives are sorter based on the top of each of the plurality of primitives and wherein the first portion providing step (e) further includes the steps of:
(e1) determining whether the top of at least one new primitive of the plurality of primitives is not lower than a current line; (e2) merging data for the at least one new primitive if the top is not lower than the current line; (e3) eliminating an expired primitive and outputting at least a portion of data for a remaining portion of the primitives after the expired primitive has been removed, the expired primitive having a bottom that is above the current line, the data output by the distributor controlling loading of the plurality of primitives by the at least one processor; (e4) re-inputting to the merge circuit data for the remaining portion of the plurality of primitives.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present application is related to co-pending U.S. patent application Ser. No. 09/978,476 entitled “Method and System for Efficiently Loading Primitives into Processors of a Graphics System,” filed on Oct. 16, 2001 and assigned to the assignee of the present application. The present application is also related to co-pending U.S. patent application Ser. No. 09/583,063 entitled “Method and System for Providing Hardware Sort in a Graphics System,” filed on May 30, 2000 and assigned to the assignee of the present application.