US11468633B1ActiveUtilityA1
Methods and systems for tile-based graphics processing
Est. expiryMar 30, 2041(~14.7 yrs left)· nominal 20-yr term from priority
G06T 17/10G06T 11/40G06T 1/20G06T 15/80G06T 15/005
47
PatentIndex Score
0
Cited by
9
References
20
Claims
Abstract
A method of and apparatus for processing graphics in a tile-based graphics processing system, wherein when preparing primitive lists it is determined, based on a measure of the size of a primitive, whether or not to perform processing of one or more attributes of one or more vertices of the primitive.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method of operating a graphics processor when generating a render output using tile based rendering, in which a plurality of tiles of a render output being generated are rendered separately, and the rendered tiles are combined to form the render output, the method comprising:
preparing one or more primitive lists for the render output, each primitive list of the one or more primitive lists for the render output listing primitives of a set of primitives to be processed for the render output to be processed for a respective region of the render output, each primitive having associated with it one or more vertices; and
for a primitive of the set of primitives to be processed for the render output to be included in a primitive list or lists of the one or more primitive lists for the render output:
determining, based on a measure of the size of the primitive, whether to perform processing of one or more attributes of one or more of the vertices of the primitive; and
when it is determined based on the measure of the size of the primitive to perform said processing of one or more attributes of one or more vertices of the primitive, performing said processing of one or more attributes of one or more vertices of the primitive and storing the processed attribute or attributes for use in subsequent processing of the primitive, as well as including the primitive in said primitive list or lists;
when it is determined based on the measure of the size of the primitive to not perform said processing of one or more attributes for one or more vertices of the primitive, including the primitive in said primitive list or lists without also performing said processing of one or more attributes for one or more vertices of the primitive in response to the primitive size determination.
2. The method of claim 1 , wherein:
when the measure of the size of the primitive indicates the primitive is larger than a threshold measure of size, then it is determined to perform the processing of the one or more attributes of one or more of the vertices of the primitive; and
when the measure of the size of a primitive indicates the primitive is smaller than a threshold measure of size, then it is determined not to perform the processing of the one or more attributes of one or more of the vertices of the primitive.
3. The method of claim 1 , wherein the measure of size of the primitive is a measure of a number of tiles of the render output that the primitive spans.
4. The method of claim 1 , wherein the measure of the size of the primitive is determined based on the number of primitive lists in which a primitive is to be listed and/or based on the size of the regions for those primitive lists.
5. The method of claim 1 , further comprising selectively disabling the determination based on the measure of size of the primitive.
6. The method of claim 1 , wherein the one or more attributes which are processed based on the determination based on a measure of the size of a primitive comprise one or more non-position attributes.
7. The method of claim 1 , comprising:
processing one or more position attributes for the vertices of the primitives in the set of primitives, to provide processed position attributes for use when preparing the one or more primitive lists; and
when it is determined based on the measure of the size of a primitive not to perform processing of one or more attributes, discarding the one or more processed position attributes for the vertices of the primitive; and
when it is determined based on the measure of the size of a primitive to perform processing of one or more attributes of the vertices of the primitive, storing the one or more processed position attributes for the vertices of the primitive for use in subsequent processing.
8. The method of claim 1 , comprising providing in association with a primitive list that a primitive is included in, an indication indicating whether it was determined based on a measure of the size of the primitive to perform processing of one or more attributes of the vertices of the primitive.
9. The method of claim 1 , comprising when performing subsequent processing of primitives of the set of primitives:
identifying a primitive list relevant to a tile to be processed;
identifying a primitive to be processed from the primitive list;
checking an indication for the identified primitive to determine whether processing of one or more attributes of the vertices of the primitive has already been performed; and
when the indication indicates that processing of one or more attributes of the vertices of the primitive has already been performed:
reading the one or more processed attributes for the vertices of the primitive from memory, and performing subsequent processing of the primitive for the tile using the one or more processed attributes read from memory;
when the indication indicates that processing of one or more attributes of the vertices of the primitive has not already been performed when preparing the primitive list:
performing processing of one or more attributes of the vertices of the primitive prior to performing subsequent processing of the primitive for the tile using the one or more processed attributes of the vertices of the primitive.
10. A graphics processor configured to generate a render output using tile based rendering, in which a plurality of tiles of a render output being generated are rendered separately, and the rendered tiles are combined to form the render output, the graphics processor comprising:
a primitive list preparation circuit configured to prepare one or more primitive lists for a render output, each primitive list of the one or more primitive lists for the render output listing primitives of a set of primitives to be processed for the render output to be processed for a respective region of the render output, each primitive having associated with it one or more vertices;
wherein the primitive list preparation circuit comprises a determination circuit configured to, for a primitive of the set of primitives to be processed for the render output to be included in a primitive list or lists of the one or more primitive lists for the render output, determine based on a measure of the size of the primitive whether to perform processing of one or more attributes of one or more of the vertices of the primitive;
wherein the primitive list preparation circuit is configured to:
when it is determined based on the measure of the size of a primitive to perform said processing of one or more attributes of one or more vertices of the primitive, trigger said processing of one or more attributes of one or more vertices of the primitive and storing of the processed attribute or attributes for use in subsequent processing of the primitive, and include the primitive in said a primitive list or lists for the render output;
when it is determined based on the measure of the size of a primitive to not perform said processing of one or more attributes for one or more vertices of the primitive, include the primitive in said primitive list or lists for the render output without also triggering said processing of one or more attributes for one or more vertices of the primitive in response to the primitive size determination.
11. The graphics processor of claim 10 , wherein:
the determination circuit is configured to, when the measure of the size of a primitive is larger than a threshold measure of size, determine to perform the processing of the one or more attributes of one or more of the vertices of the primitive; and
the determination circuit is configured to, when the measure of the size of a primitive is smaller than a threshold measure of size, determine not to perform the processing of the one or more attributes of one or more of the vertices of the primitive.
12. The graphics processor of claim 10 , wherein the measure of size of the primitive is a measure of a number of tiles of the render output that the primitive spans.
13. The graphics processor of claim 10 , wherein the measure of the size of the primitive is determined based on the number of primitive lists in which a primitive is to be listed and/or based on the size of the regions for those primitive lists.
14. The graphics processor of claim 10 , wherein the graphics processor is configured to selectively disable the determination by the determination circuit based on the measure of size of the primitive.
15. The graphics processor of claim 10 , wherein the processing of one or more attributes which is triggered by the primitive list preparation circuit based on a measure of the size of a primitive comprises processing of one or more non-position attributes.
16. The graphics processor of claim 10 , wherein the graphics processor is configured to:
process one or more position attributes for the vertices of the primitives in the set of primitives, to provide processed position attributes for use when preparing the one or more primitive lists; and
when it is determined based on the measure of the size of a primitive not to perform processing of one or more non-position attributes, discard processed position attributes for the vertices of the primitive without storing the processed position attributes for use in subsequent processing; and
when it is determined based on the measure of the size of a primitive to perform processing of one or more non-position attributes of the vertices of the primitive, store processed position attributes for the vertices of the primitive for use in subsequent processing.
17. The graphics processor of claim 10 , wherein the primitive list preparation circuit is configured to provide in association with a primitive list that a primitive is included in, an indication of whether it was determined based on a measure of the size of a primitive to perform processing of one or more attributes of the vertices of the primitive.
18. The graphics processor of claim 10 , wherein the graphics processor comprises a primitive list reading circuit which is configured to:
read a primitive list relevant to a tile to be processed;
identify a primitive to be processed from the primitive list;
check an indication for the primitive to determine whether processing of one or more attributes of the vertices of the primitive has already been performed; and
when the indication indicates that processing of one or more attributes of the vertices of the primitive has already been performed:
trigger subsequent processing of the primitive for the tile;
when the indication indicates that processing of one or more attributes of the vertices of the primitive has not already been performed:
trigger processing of one or more attributes of the vertices of the primitive prior to processing of the primitive for the tile.
19. A graphics processor configured to generate a render output using tile based rendering, in which a plurality of tiles of a render output being generated are rendered separately, and the rendered tiles are combined to form the render output, the graphics processor comprising:
a primitive list reading circuit configured to:
read a primitive list relevant to a tile to be processed, the primitive list listing one or more primitives for the tile to be processed, the primitive list also comprising a respective indication for each primitive of the one or more primitives listed in the primitive list indicating whether processing of one or more attributes of one or more vertices of the primitive has been performed;
identify a primitive to be processed from the one or more primitives listed in the primitive list for the tile to be processed;
check for the identified primitive the respective indication in the primitive list for the tile to be processed to determine whether said processing of one or more attributes of one or more vertices of the primitive has already been performed; and
when the indication checked in the primitive list for the tile to be processed indicates that said processing of one or more attributes of one or more vertices of the primitive has already been performed:
trigger processing of the primitive for the tile;
when the indication checked in the primitive list for the tile to be processed indicates that said processing of one or more attributes of one or more vertices of the primitive has not already been performed:
trigger said processing of one or more attributes for one or more vertices of the primitive prior to processing of the primitive for the tile.
20. A non-transitory computer readable storage medium comprising computer software code which when executing on at least one processor performs a method of operating a graphics processor when generating a render output using tile based rendering, in which a plurality of tiles of a render output being generated are rendered separately, and the rendered tiles are combined to form the render output, the method comprising:
preparing one or more primitive lists for the render output, each primitive list of the one or more primitive lists for the render output listing primitives of a set of primitives to be processed for the render output to be processed for a respective region of the render output, each primitive having associated with it one or more vertices; and
for a primitive of the set of primitives to be processed for the render output to be included in a primitive list or lists of the one or more primitive lists for the render output:
determining, based on a measure of the size of the primitive, whether to perform processing of one or more attributes of one or more of the vertices of the primitive; and
when it is determined based on the measure of the size of the primitive to perform said processing of one or more attributes of one or more vertices of the primitive, performing said processing of one or more attributes of one or more vertices of the primitive and storing the processed attribute or attributes for use in subsequent processing of the primitive, as well as including the primitive in said primitive list or lists;
when it is determined based on the measure of the size of the primitive to not perform said processing of one or more attributes for one or more vertices of the primitive, including the primitive in said primitive list or lists without also performing said processing of one or more attributes for one or more vertices of the primitive in response to the primitive size determination.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.