IP Library › Granted Patent US 11,861,760
Granted Patent B2
US 11,861,760 · App. 17/648,763 · Granted Jan 2, 2024

Tile-based graphics processing

Inventor: Toni Viki Brkic (Lund, SE)
Assignee: Arm Limited
G06T1/20G06T1/60G06T15/005
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 11,861,760
App. No.
17/648,763
Granted
Jan 2, 2024
Kind
B2
Abstract

A method of operating a tile-based graphics processor that executes a graphics processing pipeline is disclosed. When there are no more primitives left to be provided for processing to the pipeline for a rendering tile, it is determined whether any remaining processing steps for the rendering tile can be omitted, e.g. because they will not affect a buffer that will be output when the rendering tile is complete. When it is determined that a processing step can be omitted, that processing step is omitted.

Claims (37)

1. A method of operating a tile-based graphics processor that is operable to execute a graphics processing pipeline, the graphics processing pipeline including at least a primitive providing stage and one or more subsequent processing stages, wherein the primitive providing stage is operable to provide primitives to be processed for a rendering tile to the one or more subsequent processing stages for processing, and the one or more subsequent processing stages are operable to perform processing steps in respect of primitives provided for processing by the primitive providing stage; the method comprising:

the primitive providing stage providing a set of primitives to be processed for a rendering tile to the one or more subsequent processing stages of the graphics processing pipeline for processing; and

when there are no more primitives of set of primitives left for the primitive providing stage to provide for processing to the one or more subsequent processing stages of the graphics processing pipeline for the rendering tile, determining whether one or more processing steps to be performed by the one or more subsequent processing stages of the graphics processing pipeline in respect of at least one primitive of the set of primitives previously provided for processing by the primitive providing stage for the rendering tile need not be performed; and

when it is determined that one or more processing steps to be performed by the one or more subsequent processing stagesof the graphics processing pipeline in respect of at least one primitive of the set of primitives previously provided for processing by the primitive providing stage for the rendering tile need not be performed, causing the one or more subsequent processing stages of the graphics processing pipeline to omit performing the one or more processing steps in respect of the at least one primitive.

2. The method of claim 1 , wherein the tile-based graphics processor comprises a tile buffer; the method comprising:

determining whether the one or more processing steps to be performed in respect of the at least one primitive will not affect a buffer of the tile buffer that is to be written out upon completing the rendering tile; and determining that the one or more processing steps to be performed in respect of the at least one primitive need not be performed when it is determined that the one or more processing steps to be performed in respect of the at least one primitive will not affect a buffer of the tile buffer that is to be written out upon completing the rendering tile.

3. The method of claim 2 , wherein the buffer of the tile buffer that is to be written out is a colour buffer, a depth buffer or a stencil buffer.

4. The method of claim 2 , wherein the one or more subsequent processing stages pipeline comprise one or more earlier processing stages and one or more later processing stages; wherein the one or more earlier processing stages are operable to determine whether one or more processing steps to be performed by the one or more later processing stages in respect of a primitive need not be performed, and to, when it is determined that one or more processing steps to be performed by the one or more later processing stages in respect of a primitive need not be performed, cause the one or more later processing stages to omit performing the one or more processing steps in respect of the primitive; the method comprising:

when there are no more primitives of the set of primitives left for the primitive providing stage to provide for processing to the one or more subsequent processing stages of the graphics processing pipeline for the rendering tile, causing the one or more earlier processing stages to determine that one or more processing steps to be performed by the one or more later processing stages in respect of the at least one primitive need not be performed, and to therefore cause the one or more later processing stages to omit performing the one or more processing steps in respect of the at least one primitive.

5. The method of claim 4 , wherein the one or more earlier processing stages are operable to determine whether a primitive will be overdrawn such that one or more processing steps to be performed by the one or more later processing stages in respect of the primitive need not be performed, and to, when it is determined that a primitive will be overdrawn such that one or more processing steps to be performed by the one or more later processing stages in respect of the primitive need not be performed, cause the one or more later processing stages to omit performing the one or more processing steps in respect of the primitive; and

wherein causing the one or more earlier processing stages to determine that one or more processing steps to be performed by the one or more later processing stages in respect of the at least one primitive need not be performed comprises providing to the one or more earlier processing stages, a command that will trigger the one or more earlier processing stages to determine that the at least one primitive will be overdrawn.

6. The method of claim 4 , wherein the one or more earlier processing stages are operable to cause the one or more later processing stages to omit performing one or more processing steps in respect of a primitive by sending a signal to the one or more later processing stages that indicates that the one or more processing steps in respect of the primitive need not be performed; and the one or more later processing stages are operable to omit performing one or more processing steps in respect of a primitive in response to receiving a signal from the one or more earlier processing stages that indicates that the one or more processing steps in respect of the primitive need not be performed; the method comprising:

the one or more earlier processing stages causing the one or more later processing stages to omit performing the one or more processing steps in respect of the at least one primitive by sending a signal to the one or more later processing stages that indicates that the one or more processing steps in respect of the at least one primitive need not be performed.

7. The method of claim 4 , wherein the one or more later processing stages are operable to, prior to performing one or more processing steps in respect of a primitive, determine whether metadata stored for the primitive indicates that the one or more processing steps in respect of the primitive need not be performed, and to, when it is determined that metadata stored for the primitive indicates that one or more processing steps in respect of the primitive need not be performed, omit performing nthe one or more processing steps in respect of the primitive; and the one or more earlier processing stages are operable to cause the one or more later processing stages to omit performing one or more processing steps in respect of a primitive by storing metadata for the primitive that indicates that the one or more processing steps in respect of the primitive need not be performed; the method comprising:

the one or more earlier processing stages causing the one or more later processing stages to omit performing the one or more processing steps in respect of the at least one primitive by storing metadata for the at least one primitive that indicates that the one or more processing steps in respect of the at least one primitive need not be performed.

8. The method of claim 7 , wherein determining whether the one or more processing steps to be performed in respect of the at least one primitive need not be performed comprises determining whether metadata stored for the at least one primitive does not indicate that the at least one primitive writes data to a buffer of the tile buffer that is to be written out.

9. The method of claim 1 , wherein the one or more processing steps to be performed in respect of the at least one primitive are all of the processing steps remaining to be performed in respect of the at least one primitive for the rendering tile, such that when the one or more processing steps in respect of the at least one primitive are omitted, the at least one primitive is discarded from further processing for the rendering tile.

10. A tile-based graphics processor that is operable to execute a graphics processing pipeline, the graphics processing pipeline including one or more processing stages that are operable to perform processing steps in respect of primitives provided for processing; the tile-based graphics processor comprising:

a primitive providing circuit configured to provide a set of primitives to be processed for a rendering tile to the one or more processing stages of the graphics processing pipeline for processing; and

a determining circuit configured to, when there are no more primitives of a set of primitives left for the primitive providing circuit to provide for processing to the one or more processing stages of the graphics processing pipeline for a rendering tile, determine whether one or more processing steps to be performed by the one or more processing stages of the graphics processing pipeline in respect of at least one primitive of the set of primitives previously provided for processing by the primitive providing circuit for the rendering tile need not be performed; and to:

when it is determined that one or more processing steps to be performed by the one or more processing stages of the graphics processing pipeline in respect of at least one primitive of the set of primitives previously provided for processing by the primitive providing circuit for the rendering tile need not be performed, cause the one or more processing stages of the graphics processing pipeline to omit performing the one or more processing steps in respect of the at least one primitive.

11. The tile-based graphics processor of claim 10 , comprising a tile buffer; wherein the determining circuit is configured to determine whether the one or more processing steps to be performed in respect of the at least one primitive will not affect a buffer of the tile buffer that is to be written out upon completing the rendering tile; and to determine that the one or more processing steps to be performed in respect of the at least one primitive need not be performed when it is determined that the one or more processing steps to be performed in respect of the at least one primitive will not affect a buffer of the tile buffer that is to be written out upon completing the rendering tile.

12. The tile-based graphics processor of claim 11 , wherein the buffer of the tile buffer that is to be written out is a colour buffer, a depth buffer or a stencil buffer.

13. The tile-based graphics processor of claim 11 , wherein the one or more processing stages of the graphics processing pipeline comprise one or more earlier processing stages and one or more later processing stages; wherein the one or more earlier processing stages include the determining circuit and are operable to determine whether one or more processing steps to be performed by the one or more later processing stages in respect of a primitive need not be performed, and to, when it is determined that one or more processing steps to be performed by the one or more later processing stages in respect of a primitive need not be performed, cause the one or more later processing stages to omit performing the one or more processing steps in respect of the primitive; and

wherein the tile-based graphics processor comprises a processing circuit configured to, when there are no more primitives of the set of primitives left for the primitive providing circuit to provide for processing to the one or more processing stages of the graphics processing pipeline for the rendering tile, cause the one or more earlier processing stages to determine that one or more processing steps to be performed by the one or more later processing stages in respect of at least one primitive need not be performed, and to therefore cause the one or more later processing stages to omit performing the one or more processing steps in respect of the at least one primitive.

14. The tile-based graphics processor of claim 13 , wherein the one or more earlier processing stages are operable to determine whether a primitive will be overdrawn such that one or more processing steps to be performed by the one or more later processing stages in respect of the primitive need not be performed, and to, when it is determined that a primitive will be overdrawn such that one or more processing steps to be performed by the one or more later processing stages in respect of the primitive need not be performed, cause the one or more later processing stages to omit performing the one or more processing steps in respect of the primitive; and

wherein the processing circuit is configured to cause the one or more earlier processing stages to determine that one or more processing steps to be performed by the one or more later processing stages in respect of at least one primitive need not be performed by providing to the one or more earlier processing stages, a command that will trigger the one or more earlier processing stages to determine that the at least one primitive will be overdrawn.

15. The tile-based graphics processor of claim 13 , wherein the one or more earlier processing stages are operable to cause the one or more later processing stages to omit performing one or more processing steps in respect of a primitive by sending a signal to the one or more later processing stages that indicates that the one or more processing steps in respect of the primitive need not be performed; and the one or more later processing stages are operable to omit performing one or more processing steps in respect of a primitive in response to receiving a signal from the one or more earlier processing stages that indicates that the one or more processing steps in respect of the primitive need not be performed; and

wherein the one or more earlier processing stages are configured to cause the one or more later processing stages to omit performing the one or more processing steps in respect of the at least one primitive by sending a signal to the one or more later processing stages that indicates that the one or more processing steps in respect of the at least one primitive need not be performed.

16. The tile-based graphics processor of claim 13 , wherein the one or more later processing stages are operable to, prior to performing one or more processing steps in respect of a primitive, determine whether metadata stored for the primitive indicates that the one or more processing steps in respect of the primitive need not be performed, and to, when it is determined that metadata stored for the primitive indicates that one or more processing steps in respect of the primitive need not be performed, omit performing the one or more processing steps in respect of the primitive; and the one or more earlier processing stages are operable to cause the one or more later processing stages to omit performing one or more processing steps in respect of a primitive by storing metadata for the primitive that indicates that the one or more processing steps in respect of the primitive need not be performed; and

wherein the one or more earlier processing stages are configured to cause the one or more later processing stages to omit performing the one or more processing steps in respect of the at least one primitive by storing metadata for the at least one primitive that indicates that the one or more processing steps in respect of the at least one primitive not be performed.

17. The tile-based graphics processor of claim 16 , wherein the determining circuit is configured to determine whether the one or more processing steps to be performed in respect of the at least one primitive need not be performed by determining whether metadata stored for the at least one primitive does not indicate that the at least one primitive writes data to a buffer of the tile buffer that is to be written out.

18. The tile-based graphics processor of claim 10 , wherein the one or more processing steps to be performed in respect of at least one primitive are all of the processing steps remaining to be performed in respect of the at least one primitive for the rendering tile, such that when the one or more processing steps in respect of the at least one primitive are omitted, the at least one primitive is discarded from further processing for the rendering tile.

19. A non-transitory computer readable storage medium storing software code which when executing on a processor performs a method of operating a tile-based graphics processor that is operable to execute a graphics processing pipeline, the graphics processing pipeline including at least a primitive providing stage and one or more subsequent processing stages, wherein the primitive providing stage is operable to provide primitives to be processed for a rendering tile to the one or more subsequent processing stages for processing, and the one or more subsequent processing stages are operable to perform one or more processing steps in respect of primitives provided for processing by the primitive providing stage; the method comprising:

the primitive providing stage providing a set of primitives to be processed for a rendering tile to the one or more subsequent processing stages of the graphics processing pipeline for processing; and

when there are no more primitives of the set of primitives left for the primitive providing stage to provide for processing to the one or more subsequent processing stages of the graphics processing pipeline for the rendering tile, determining whether one or more processing steps to be performed by the one or more subsequent processing stages of the graphics processing pipeline in respect of at least one primitive of the set of primitives previously provided for processing by the primitive providing stage for the rendering tile need not be performed; and

when it is determined that one or more processing steps to be performed by the one or more subsequent processing stages of the graphics processing pipeline in respect of at least one primitive of the set of primitives previously provided for processing by the primitive providing stage for the rendering tile need not be performed, causing the one or more subsequent processing stages of the graphics processing pipeline to omit performing the one or more processing steps in respect of the at least one primitive.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2022
From: BRKIC, TONI VIKI
To: ARM LIMITED
Reel/Frame 058829/0645 →
Priority Claims (1)
GB 2101072 · Jan 27, 2021 · national
Continuity (1)
Related Publication 20220237730A1 · Jul 28, 2022
Cited By (2)
US 12,423,775 US 12,475,538