Variable rate shading
US-2018240268-A1 · Aug 23, 2018 · US
US12229878B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12229878-B2 |
| Application number | US-202318525756-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 30, 2023 |
| Priority date | Dec 21, 2018 |
| Publication date | Feb 18, 2025 |
| Grant date | Feb 18, 2025 |
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.
Methods and primitive block generators for generating primitive blocks in a graphics processing system. The methods include receiving transformed position data for a current primitive, the transformed position data indicating a position of the current primitive in rendering space; determining a distance between the position of the current primitive and a position of a current primitive block based on the transformed position data for the current primitive; determining whether to add the current primitive to the current primitive block based on the distance and a fullness of the current primitive block; in response to determining that the current primitive is to be added to the current primitive block, adding the current primitive to the current primitive block; and in response to determining that the current primitive is not to be added to the current primitive block, flushing the current primitive block and adding the current primitive to a new current primitive block.
Opening claim text (preview).
What is claimed is: 1. A method of generating primitive blocks at a primitive block generator in a graphics processing system, the primitive block generator comprising a data store for storing a current primitive block to which primitives can be added, the method comprising: (a) determining one or more distance metrics that indicate a distance between a spatial position of a current primitive in a rendering space and a spatial position of the current primitive block in the rendering space, the spatial position of the current primitive block in the rendering space based on a spatial position of primitives that form the current primitive block; (b) determining a fullness of the current primitive block based on at least one of: (i) a number of primitives in the current primitive block compared to a maximum number of primitives, and (ii) where each primitive is defined by one or more vertices, a number of vertices in the current primitive block compared to a maximum number of vertices; (c) dynamically selecting a set of one or more distance thresholds based on the fullness of the current primitive block, the set of one or more distance thresholds comprising a distance threshold for each of the one or more distance metrics; (d) determining whether to add the current primitive to the current primitive block based on a comparison of each of the one or more distance metrics to the corresponding distance threshold of the set of one or more distance thresholds; and (e) in response to determining that the current primitive is to be added to the current primitive block, adding the current primitive to the current primitive block. 2. The method of claim 1 , wherein the data store is further for storing another current primitive block to which primitives can be added, and the method further comprises performing (a) to (d) for the other current primitive block, and in response to determining that the current primitive is to be added to the current primitive block and the other current primitive block, only adding the current primitive to the current primitive block. 3. The method of claim 1 , wherein the data store is further for storing another current primitive block to which primitives can be added, and the method further comprises performing (a) to (d) for the other current primitive block, and in response to determining that the current primitive is to be added to the current primitive block and the other current primitive block, merging the current primitive block and the other current primitive block. 4. The method of claim 1 , wherein selecting the set of one or more distance thresholds based on the fullness of the current primitive block comprises, when the current primitive block has a first fullness level, selecting a first set of one or more distance thresholds, and, when the current primitive block has a second fullness level that is higher than the first fullness level, selecting a second set of one or more distance thresholds that are lower than the first set of one or more distance thresholds. 5. The method of claim 1 , wherein there are a plurality of predetermined sets of one or more distance thresholds each associated with a different range of fullness levels and selecting the set of one or more distance thresholds based on the fullness of the current primitive block comprises selecting the predetermined set of one or more distance thresholds of the plurality of predetermined sets of one or more distance thresholds associated with a fullness level for the current primitive block. 6. The method of claim 5 , wherein the plurality of predetermined sets of one or more distance thresholds comprises a first predetermined set of one or more distance thresholds for when the current primitive block is less than a quarter full, a second predetermined set of one or more distance thresholds for when the current primitive block is at least a quarter full and less than half full, a third predetermined set of one or more distance thresholds for when the current primitive block is at least half full and less than three quarters full, and a fourth predetermined set of one or more distance thresholds for when the current primitive block is at least three quarters full. 7. The method of claim 1 , wherein it is determined that the current primitive is not to be added to the current primitive block if at least one of the one or more distance metrics exceeds the corresponding distance threshold of the set of one or more distance thresholds. 8. The method of claim 1 , wherein it is determined that the current primitive is not to be added to the current primitive block only if each of the one or more distance metrics exceeds the corresponding distance threshold of the set of one or more distance thresholds. 9. The method of claim 1 , wherein at least one of the one or more distance metrics is based on a bounding box for the current primitive block with the current primitive added thereto and a bounding box for the current primitive block without the current primitive added thereto. 10. The method of claim 9 , wherein at least one of the one or more distance metrics is based on at least one of: (i) a ratio of a first dimension of the bounding box for the current primitive block with the current primitive added thereto and the first dimension of the bounding box for the current primitive block without the current primitive added thereto; (ii) a ratio of a second dimension of the bounding box for the current primitive block with the current primitive added thereto and the second dimension of the bounding box of the current primitive block without the current primitive added thereto; and (iii) a ratio of an area of the bounding box for the current primitive block with the current primitive added thereto and an area of the bounding box for the current primitive block without the current primitive added thereto. 11. The method of claim 9 , wherein the rendering space is divided into a plurality of tiles and the bounding boxes have a per tile resolution. 12. The method of claim 1 , wherein the rendering space is divided into a plurality of tiles, and at least one of the one or more distance metrics is based on a rendering order of the plurality of tiles. 13. The method of claim 1 , wherein the one or more distance metrics comprises a single distance metric. 14. The method of claim 1 , wherein the one or more distance metrics comprises a plurality of distance metrics. 15. The method of claim 1 , further comprising: subsequent to adding the current primitive to the current primitive block, determining whether the current primitive block is full; and in response to determining that the current primitive block is full, outputting the current primitive block. 16. The method of claim 1 , wherein each primitive is defined by one or more vertices and in response to determining that the current primitive is not to be added to the current primitive block, determining whether the current primitive shares at least one vertex with the current primitive block and outputting the current primitive block if it is determined that the current primitive block does not share at least one vertex with the current primitive block. 17. A primitive block generator for a graphics processing system for generating primitive blocks from a plurality of primitives, the primitive block generator comprising: a data store configured to store a current primitive block to which primitives can be added; and block allocation logic comprising: distance calculation logic configured to determine one or more distance metrics that indicate a distance betwe
Three-dimensional [3D] modelling for computer graphics · CPC title
Radiosity · CPC title
Texture mapping · CPC title
Memory management · CPC title
General purpose rendering architectures · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.