IP Library Granted Patent US 44,958
Granted Patent E1
US 44,958 · App. 11/490,505 · Granted Jun 24, 2014

Primitive culling apparatus and method

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 44,958
App. No.
11/490,505
Granted
Jun 24, 2014
Kind
E1
Abstract

A method and apparatus for processing a primitive for potential display on a display device (having a plurality of pixels) determines if the primitive intersects at least a predetermined number of pixel fragments on the display device. The predetermined number is no less than one. The method and apparatus then cull the primitive as a function of whether the primitive intersects at least the predetermined number of pixel fragments. If it is culled, the primitive is not raster processed (i.e., not subjected to raster processing, whether or not complete).

Claims (55)

1. A method of processing a primitive, using a graphics processor implemented in either hardware or a combination of hardware and software, for potential display on a display device having a plurality of pixels, the method comprising:

forming, using the graphics processor, a bounding box based defined by a minimum and maximum x values and a minimum and maximum y values of the primitive;

determining, using the graphics processor, if the bounding box bounds at least one pixel fragment;

if the bounding box does not bound the at least one pixel fragment discarding the primitive without further culling processing;

if the bounding box does bound the at least one pixel fragment, determining if the bounding box bounds a predetermined number of pixel fragments;

if the bounding box bound does bound the predetermined number of pixel fragments forwarding the primitive to be further raster processed;

if the bounding box does not bound the predetermined number of pixel fragments determining, using the graphics processor, if the primitive intersects at least a second predetermined number of pixel fragments on the display device, the second predetermined number being no less than one; and

culling the primitive as a function of whether the primitive intersects at least the predetermined number of pixel fragments on the display device, the primitive not being raster processed if culled

if the primitive intersects the second predetermined number of pixel fragments forwarding the primitive to be further raster processed; and

if the primitive does not intersect the second predetermined number of pixel fragments, discarding the primitive without further culling processing.

2. The method as defined by claim 1 wherein a the graphics processor has a raster stage capable of raster processing the primitive, the graphics processor also having a geometry stage capable of forwarding primitive attribute data to the raster stage for raster processing, the steps of determining comprising determining if the primitive intersects at least the second predetermined number of pixel fragments on the display device before forwarding primitive attribute data from the geometry stage to the raster stage.

3. The method as defined by claim 1 wherein a the graphics processor has a raster stage capable of raster processing the primitive, the graphics processor also having a geometry stage capable of forwarding primitive attribute data to the raster stage for raster processing, the step of determining comprising the raster stage determining if the primitive intersects at least the second predetermined number of pixel fragments on the display device.

4. The method as defined by claim 1 wherein the primitive is not culled if the primitive is determined to intersect at least the predetermined number of pixel fragments on the display device.

5. The method as defined by claim 1 wherein the primitive is culled if the primitive is determined to not intersect at least the predetermined number of pixel fragments on the display device.

6. The method as defined by claim 1 wherein determining comprises:

forming a bounding box based upon positional data of the primitive.

7. The method as defined by claim 6 1 further wherein the primitive has an associated equation defining its position on the display device, the method further comprising:

determining if the bounding box bounds more than a prespecified number of pixel fragments; and

if the bounding box does not bound more than the prespecified number of pixel fragments, then using the equation to determine if the primitive intersects at least the predetermined number of pixel fragments.

8. The method as defined by claim 6 wherein the primitive is culled if the bounding box bounds no pixel fragments.

9. An apparatus for processing a primitive for potential display on a display device having a plurality of pixels, the apparatus comprising:

a graphics processor implemented in either hardware or a combination of hardware and software, the graphic processor comprising:

a geometry stage capable of performing geometry operations on the primitive, the geometry stage also being capable of forming, using the graphics processor, a bounding box defined by a minimum and maximum x values and a minimum and maximum y values of the primitive, determining, using the graphics processor, if the bounding box bounds at least one pixel fragment, if the bounding box does not bound the at least one pixel fragment, discarding the primitive without further culling processing, if the bounding box does bound the at least one pixel fragment, determining if the primitive intersects bounding box bounds at least a predetermined number of pixel fragments on the display device, the geometry stage being configured to cull the primitive as a function of whether the primitive intersects at least the predetermined number of pixel fragments on the display device, the predetermined number being no less than one; if the bounding box bound does bound the predetermined number of pixel fragments forwarding the primitive to be further raster processed, if the bounding box does not bound the predetermined number of pixel fragments determining, using the graphics processor, if the primitive intersects at least a second predetermined number of pixel fragments, the second predetermined number being no less than one, if the primitive intersects the second predetermined number of pixel fragments forwarding the primitive to be further raster processed, if the primitive does not intersect the second predetermined number of pixel fragments, discarding the primitive without further culling processing; and

a raster stage operatively coupled with the geometry stage, the raster stage being capable of raster processing the primitive if the geometry stage does not cull discard the primitive.

10. The apparatus as defined by claim 9 wherein the primitive has associated attribute data, the geometry stage having an output for forwarding the attribute data to the raster stage if the primitive intersects at least the predetermined number of pixel fragments on the display device.

11. The apparatus as defined by claim 9 wherein the primitive has associated attribute data, further wherein the geometry stage is configured to not forward the attribute data to the raster stage if the primitive is determined to not intersect at least the predetermined number of pixel fragments on the display device.

12. The apparatus as defined by claim 9 wherein the geometry stage comprises:

a bounding box module capable of forming a the bounding box based upon positional data of the primitive.

13. The apparatus as defined by claim 12 further wherein the primitive has an associated equation defining its position on the display device, the geometry stage using the equation to determine whether the primitive intersects at least one pixel fragment if the bounding box bounds fewer than the first predetermined number of pixel fragments.

14. The apparatus as defined by claim 12 wherein the primitive has associated attribute data, further wherein the geometry stage does not forward the attribute data to the raster stage if no pixel fragments are bounded by the bounding box.

15. A computer program product for use on a computer system for processing a primitive for potential display on a display device having a plurality of pixels, the computer program product comprising a non-transitory computer usable readable storage medium having computer readable program code stored thereon, the computer readable program code comprising:

program code for forming a bounding box defined by a minimum and maximum x values and a minimum and maximum y values of the primitive;

first program code for determining if the bounding box bounds at least one pixel fragment;

second program code for discarding the primitive without further culling processing, if the bounding box does not bound the at least one pixel fragment;

third program code for determining if the bounding box bounds a predetermined number of pixel fragments, if the bounding box bounds the at least one pixel fragment;

fourth program code for forwarding the primitive to be further raster processed if the primitive bounds the predetermined number of pixel fragments;

fifth program code for determining if the primitive intersects at least bounding box bounds a second predetermined number of pixel fragments on the display device, the second predetermined number being no less than one; and

program code for culling the primitive as a function of whether the primitive intersects at least the predetermined number of pixel fragments on the display device, the primitive not being raster processed if culled, if the bounding box does not bound the predetermined number of pixel fragments;

sixth program code for forwarding the primitive to the further raster processed if the primitive intersects the second predetermined number of pixel fragments; and

seventh program code for discarding the primitive without further culling processing if the primitive does not intersect the second predetermined number of pixel fragments.

16. The computer program product as defined by claim 15 wherein the primitive is not culled if the primitive is determined to intersect at least the predetermined number of pixel fragments on the display device.

17. The computer program product as defined by claim 15 wherein the primitive is culled if the primitive is determined to not intersect at least the predetermined number of pixel fragments on the display device.

18. The computer program product as defined by claim 15 wherein the program code for determining comprises:

program code for forming a bounding box based upon positional data of the primitive.

19. The computer program product as defined by claim 18 further wherein the primitive has an associated equation defining its position on the display device, the computer program product further comprising:

program code for determining if the bounding box bounds more than a prespecified number of pixel fragments; and

program code for using the equation to determine whether the primitive intersects at least the predetermined number of pixel fragments, the program code for using being executed if the bounding box does not bound more than the prespecified number of pixel fragments.

20. The computer program product as defined by claim 18 wherein the primitive is culled if no pixel fragments are bounded by the bounding box.

21. An apparatus for processing a primitive for potential display on a display device having a plurality of pixels, the apparatus comprising:

a graphics processor implemented in either hardware or a combination of hardware and software, the graphic processor comprising:

a geometry stage capable of performing geometry operations on the primitive, the geometry stage also being capable of forming, using the graphics processor, a bounding box defined by a minimum and maximum x values and a minimum and maximum y values of the primitive, determining, using the graphics processor, if the bounding box bounds at least one pixel fragment, if the bounding box does not bound the at least one pixel fragment, discarding the primitive without further culling processing, if the bounding box does bound the at least one pixel fragment, determining if the bounding box bounds at least a predetermined number of pixel fragments, if the bounding box does bound the predetermined number of pixel fragments, forwarding the primitive to be further raster processed, if the bounding box does not bound the predetermined number of pixel fragments determining, using the graphics processor, if the primitive intersects at least a second predetermined number of pixel fragments, the second predetermined number being no less than one, if the primitive intersects the second predetermined number of pixel fragments, forwarding the primitive to be further raster processed, if the primitive does not intersect the second predetermined number of pixel fragments, discarding the primitive without further culling processing; and

a raster stage operatively coupled with the geometry stage, the raster stage being capable of raster processing the primitive if the geometry stage does not discard the primitive.

22. The apparatus as defined by claim 21 wherein the geometry stage comprises:

a bounding box module capable of forming the bounding box based upon positional data of the primitive.

23. The apparatus as defined by claim 22 further wherein the primitive has an associated equation defining its position on the display device, the geometry stage using the equation to determine whether the primitive intersects at least one pixel fragment if the bounding box bounds fewer than the first number of pixel fragments.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2013
From: GRAPHICS PROPERTIES HOLDINGS, INC.
To: RPX CORPORATION
Reel/Frame 029564/0799 →
CHANGE OF NAME Recorded Sep 30, 2009
From: SILICON GRAPHICS, INC.
To: GRAPHICS PROPERTIES HOLDINGS, INC.
Reel/Frame 023304/0677 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2007
From: GENERAL ELECTRIC CAPITAL CORPORATION
To: MORGAN STANLEY & CO., INCORPORATED
Reel/Frame 019995/0895 →
SECURITY INTEREST Recorded Oct 24, 2006
From: SILICON GRAPHICS, INC.
To: GENERAL ELECTRIC CAPITAL CORPORATION
Reel/Frame 018545/0777 →