Forward late predictive rendering in a graphics system
US-9754344-B2 · Sep 5, 2017 · US
US10140761B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10140761-B2 |
| Application number | US-201715499038-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 27, 2017 |
| Priority date | Apr 29, 2016 |
| Publication date | Nov 27, 2018 |
| Grant date | Nov 27, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A method of processing primitives within a tiling unit of a graphics processing system comprises determining whether a primitive falls within a tile based on positions of samples within each pixel. If it is determined that the primitive does fall within a tile based on the positions of samples within pixels in a tile, an association between the tile and the primitive is stored to indicate that the primitive is present in the tile. For example, an identifier for the primitive may be added to a control stream for the tile to indicate that the primitive is present in the tile. Various different methods are described to make the determination and these may be used separately or in any combination.
Opening claim text (preview).
The invention claimed is: 1. A method of processing primitives within a tiling unit of a graphics processing system, the method comprising: determining whether a primitive falls within a tile based on positions of samples within pixels in the tile, said determining comprising: generating intersection points between edges of the primitive and boundaries of the tile; forming a sub-polygon inside the tile by replacing vertices of the primitive outside the tile with the intersection points; and determining whether the sub-polygon overlaps any of the sample positions within the tile, to thereby determine whether the primitive falls within the tile; and in response to determining that a primitive does fall within a tile based on the positions of samples within pixels in the tile, storing an association between the tile and the primitive to indicate that the primitive is present in the tile. 2. The method according to claim 1 , wherein said storing an association between the tile and the primitive comprises adding an identifier for the primitive to a control stream for the tile. 3. The method according to claim 1 , wherein said storing an association between the tile and the primitive comprises adding an identifier for the tile to a tile list for the primitive. 4. The method according to claim 1 , further comprising rendering primitives in a tile using the stored associations, wherein the rendering is performed at each sample position within the tile. 5. The method according to claim 1 , wherein the determination is performed at a reduced sample precision. 6. the method according to claim 1 , wherein said determining whether the sub-polygon overlaps any of the sample positions within the tile comprises: generating a bounding box of the sub-polygon; and determining whether the primitive falls within the tile based on the bounding box of the sub-polygon. 7. The method according to claim 6 , wherein determining whether a primitive falls within a tile based the bounding box of the sub-polygon comprises: determining if the bounding box of the sub-polygon overlaps any samples in the tile; and in response to determining that the bounding box of the sub-polygon overlaps any samples in the tile, determining that the primitive falls within the tile. 8. The method according to claim 7 , wherein generating intersection points between edges of the primitive and boundaries of the tile comprises: generating a bounding box of the tile at sample precision; and generating intersection points between edges of the primitive and edges of the bounding box of the tile at sample precision. 9. The method according to claim 7 , wherein forming a sub-polygon inside the tile by replacing vertices of the primitive outside the tile with the intersection points comprises: forming an initial sub-polygon inside the tile by replacing vertices of the primitive outside the tile with the intersection points; and if the initial sub-polygon has more than three vertices, dividing the initial sub-polygon into a plurality of smaller sub-polygons, each having only three vertices, and wherein a bounding box is generated at sample precision for each smaller sub-polygon and it is determined, for each generated bounding box, if it overlaps any samples in the tile. 10. The method according to claim 7 , wherein determining if the bounding box of the sub-polygon overlaps any samples in the tile comprises: identifying four sampling locations in the tile using the bounding box of the sub-polygon; and determining if the bounding box of the sub-polygon misses all four sampling locations in the tile. 11. The method according to claim 6 , wherein determining whether a primitive falls within a tile based on the bounding box of the sub-polygon comprises: testing each edge of the sub-polygon which is also part of an edge of the primitive against each sample point in the bounding box of the sub-polygon to determine if any sample point is inside the sub-polygon; and in response to determining that any sample point is inside the sub-polygon, determining that the primitive falls within the tile. 12. The method according to claim 11 , wherein generating intersection points between edges of the primitive and boundaries of the tile comprises: generating a bounding box of the tile at sample precision; and generating any intersection points between edges of the primitive and edges of the bounding box of the tile at sample precision. 13. The method according to claim 11 , wherein forming a sub-polygon inside the tile by replacing vertices of the primitive outside the tile with the intersection points comprises: forming an initial sub-polygon inside the tile by replacing vertices of the primitive outside the tile with the intersection points; and if the initial sub-polygon has more than three vertices, dividing the initial sub-polygon into a plurality of smaller sub-polygons, each having only three vertices, and wherein a bounding box is generated at sample precision for each smaller sub-polygon and wherein testing each edge of the sub-polygon which is also part of an edge of the primitive against each sample point in the bounding box of the sub-polygon to determine if any sample point is inside the sub-polygon comprises: for each smaller sub-polygon, testing each edge of the smaller sub-polygon which is also part of an edge of the primitive against each sample point in the bounding box of the smaller sub-polygon to determine if any sample point is inside the smaller sub-polygon. 14. The method according to claim 11 , wherein testing each edge of the sub-polygon which is also part of an edge of the primitive against each sample point in the bounding box of the sub-polygon to determine if any sample point is inside the sub-polygon comprises: computing edge parameters for each edge of the sub-polygon which is also part of an edge of the primitive; and testing each sample point in the bounding box of the sub-polygon against each edge. 15. The method according to claim 1 , wherein determining whether a primitive falls within a tile based on positions of samples within pixels in a tile further comprises: generating a bounding box of the tile at sample precision; generating a bounding box of the primitive at sample precision; determining if the bounding boxes overlap; and in response to determining that the bounding boxes do not overlap, determining that the primitive does not fall within the tile. 16. The method according to claim 1 , wherein determining whether a primitive falls within a tile based on positions of samples within a pixel comprises: determining how many vertices of the primitive fall within the tile; in response to determining that two or more vertices fall within the tile, determining that the primitive falls within the tile; in response to determining that less than two vertices fall within the tile, generating any intersection points between edges of the primitive and boundaries of the tile; in response to generating more than two intersection points, determining that the primitive falls within the tile; in response to generating exactly two intersection points for a primitive with only one vertex in the tile and where the intersection points are on different boundaries of the tile, determining that the primitive falls within the tile; in response to generating exactly two intersection points for a primitive with no vertices in the tile and where the intersection points are on the same boundary of the tile or on different boundaries of the tile that do not cross within the primitive, determining that the p
Collision detection, intersection · CPC title
Finite element generation, e.g. wire-frame surface description, {tesselation} · CPC title
Bounding box · CPC title
Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes · CPC title
General purpose rendering architectures · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.