Method of and apparatus for processing graphics
First Claim
1. A method of operating a tile-based graphics processing pipeline that comprises a plurality of processing stages, including at least a rasteriser that rasterises input primitives to generate graphics fragments to be processed, each graphics fragment having one or more sampling points associated with it, and a renderer that processes fragments generated by the rasteriser to generate rendered fragment data, and for which primitive lists indicating primitives to be processed can be prepared for sub-regions of the area of a render target to be generated that include plural rendering tiles, the method comprising:
- when rendering a tile of plural rendering tiles that a render target to be generated is divided into;
reading a primitive list for a sub-region of the render target, wherein the sub-region includes plural rendering tiles and the tile being rendered of the plural rendering tiles that the render target is divided into;
based on the reading the primitive list for the sub-region of the render target, determining a primitive to be processed for the tile being rendered;
after the determining the primitive to be processed for the tile based on the reading the primitive list for the sub-region;
generating a lower precision representation of the location of the determined primitive;
comparing the generated lower precision representation of the location of the determined primitive in the render target to the location of the tile being rendered; and
determining whether to send the determined primitive to the rasteriser for rasterising for the tile on the basis of the comparison, wherein when the comparison indicates that the generated lower precision representation of the location of the determined primitive in the render target definitely lies outside the tile being rendered, the determined primitive is not sent to the rasteriser;
wherein generating a lower precision representation and comparing the generated lower precision representation of the location of the determined primitive in the render target to the location of the tile being rendered comprises one of;
(i) generating a bounding box to represent the location of the primitive; and
comparing the location of the bounding box of the determined primitive in the render target to the location of the tile being rendered;
wherein the bounding box used to represent the location of the primitive in these steps is a different bounding box to the bounding box that was used to sort the primitive into the primitive list; and
(ii) representing the x and y coordinates of the primitive using lower precision values; and
using these lower precision values of the x and y coordinates of the primitive when performing the comparison.
1 Assignment
0 Petitions
Accused Products
Abstract
A tile-based graphics processing pipeline that uses primitive lists that can encompass plural rendering tiles includes a primitive list reading unit that reads primitive lists for a tile being rendered to determine primitives to be processed for the tile and a rasterizer that rasterizes input primitives to generate graphics fragments to be processed. The pipeline further comprises a comparison unit between the primitive list reading unit and the rasterizer that for primitives that have been read from primitive lists that include plural rendering tiles, compares the location of the primitive in the render target to the location of the tile being rendered, and then either sends the primitive onwards to the rasterizer if the comparison determines that the primitive could lie at least partially within the tile, or does not send the primitive to the rasterizer if the comparison determines that the primitive definitely does not lie within the tile.
-
Citations
15 Claims
-
1. A method of operating a tile-based graphics processing pipeline that comprises a plurality of processing stages, including at least a rasteriser that rasterises input primitives to generate graphics fragments to be processed, each graphics fragment having one or more sampling points associated with it, and a renderer that processes fragments generated by the rasteriser to generate rendered fragment data, and for which primitive lists indicating primitives to be processed can be prepared for sub-regions of the area of a render target to be generated that include plural rendering tiles, the method comprising:
-
when rendering a tile of plural rendering tiles that a render target to be generated is divided into; reading a primitive list for a sub-region of the render target, wherein the sub-region includes plural rendering tiles and the tile being rendered of the plural rendering tiles that the render target is divided into; based on the reading the primitive list for the sub-region of the render target, determining a primitive to be processed for the tile being rendered; after the determining the primitive to be processed for the tile based on the reading the primitive list for the sub-region; generating a lower precision representation of the location of the determined primitive; comparing the generated lower precision representation of the location of the determined primitive in the render target to the location of the tile being rendered; and determining whether to send the determined primitive to the rasteriser for rasterising for the tile on the basis of the comparison, wherein when the comparison indicates that the generated lower precision representation of the location of the determined primitive in the render target definitely lies outside the tile being rendered, the determined primitive is not sent to the rasteriser; wherein generating a lower precision representation and comparing the generated lower precision representation of the location of the determined primitive in the render target to the location of the tile being rendered comprises one of; (i) generating a bounding box to represent the location of the primitive; and comparing the location of the bounding box of the determined primitive in the render target to the location of the tile being rendered; wherein the bounding box used to represent the location of the primitive in these steps is a different bounding box to the bounding box that was used to sort the primitive into the primitive list; and (ii) representing the x and y coordinates of the primitive using lower precision values; and using these lower precision values of the x and y coordinates of the primitive when performing the comparison. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A tile-based graphics processing pipeline for which primitive lists indicating primitives to be processed can be prepared for sub-regions of the area of a render target to be generated that include plural rendering tiles, the pipeline comprising:
-
processing circuitry, including at least a rasteriser that rasterises input primitives to generate graphics fragments to be processed, each graphics fragment having one or more sampling points associated with it, and a renderer that processes fragments generated by the rasteriser to generate rendered fragment data; primitive list reading circuitry that, when a tile of plural rendering tiles that a render target to be generated is divided into is being rendered, reads a primitive list for a sub-region of a render target, wherein the sub-region includes plural rendering tiles and the tile being rendered of the plural rendering tiles that the render target is divided into, to determine primitives to be processed for the tile being rendered; and lower precision representation generating circuitry that generates, for a primitive determined to be processed for a tile being rendered by the primitive list reading circuitry, a lower precision representation of the location of the determined primitive; and comparison circuitry between the lower precision representation generating circuitry and the rasteriser that, for a primitive determined to be processed for a tile being rendered by the primitive list reading circuitry, compares the generated lower precision representation of the location of the determined primitive in the render target determined by the lower precision representation generating circuitry to the location of the tile being rendered, and determines whether to send the primitive to the rasteriser for rasterising for the tile on the basis of the comparison, wherein when the comparison indicates that the generated lower precision representation of the location of the determined primitive in the render target definitely lies outside the tile being rendered, the determined primitive is not sent to the rasteriser; wherein generating a lower precision representation and comparing the generated lower precision representation of the location of the determined primitive in the render target to the location of the tile being rendered comprises one of; (i) the lower precision representation generating circuitry generating a bounding box to represent the location of the primitive; and the comparison circuitry comparing the location of the bounding box of the determined primitive in the render target to the location of the tile being rendered; wherein the bounding box used to represent the location of the primitive in these steps is a different bounding box to the bounding box that was used to sort the primitive into the primitive list; and (ii) the lower precision representation generating circuitry representing the x and y coordinates of the primitive using lower precision values; and the comparison circuitry using these lower precision values of the x and y coordinates of the primitive when performing the comparison. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer readable storage medium storing computer software code which when executing on a processor performs a method of operating a tile-based graphics processing pipeline that comprises a plurality of processing stages, including at least a rasteriser that rasterises input primitives to generate graphics fragments to be processed, each graphics fragment having one or more sampling points associated with it, and a renderer that processes fragments generated by the rasteriser to generate rendered fragment data, and for which primitive lists indicating primitives to be processed can be prepared for sub-regions of the area of a render target to be generated that include plural rendering tiles, the method comprising:
-
when rendering a tile of plural rendering tiles that a render target to be generated is divided into; reading a primitive list for a sub-region of the render target, wherein the sub-region includes plural rendering tiles and the tile being rendered of the plural rendering tiles that the render target is divided into; based on the reading the primitive list for the sub-region of the render target, determining a primitive to be processed for the tile being rendered; after the determining the primitive to be processed for the tile based on the reading the primitive list for the sub-region, generating a lower precision representation of the location of the determined primitive; comparing the generated lower precision representation of the location of the determined primitive in the render target to the location of the tile being rendered; and determining whether to send the determined primitive to the rasteriser for rasterising for the tile on the basis of the comparison, wherein if the comparison indicates that the generated lower precision representation of the location of the determined primitive in the render target definitely lies outside the tile being rendered, the determined primitive is not sent to the rasteriser; wherein generating a lower precision representation and comparing the generated lower precision representation of the location of the determined primitive in the render target to the location of the tile being rendered comprises one of; (i) generating a bounding box to represent the location of the primitive; and comparing the location of the bounding box of the determined primitive in the render target to the location of the tile being rendered; wherein the bounding box used to represent the location of the primitive in these steps is a different bounding box to the bounding box that was used to sort the primitive into the primitive list; and (ii) representing the x and y coordinates of the primitive using lower precision values; and using these lower precision values of the x and y coordinates of the primitive when performing the comparison.
-
Specification