Conservative Rasterization
AssigneeImagination Technologies Limited
InventorCasper Van Benthem
Life of this patent
Estimating the term…
Abstract
Conservative rasterization hardware comprises hardware logic arranged to perform an edge test calculation for each edge of a primitive and for each corner of each pixel in a microtile. Outer coverage results are determined, for a particular pixel and edge, by combining the edge test results for the four corners of the pixel and the particular edge in an OR gate. Inner coverage results are determined, for a particular pixel and edge, by combining the edge test results for the four corners of the pixel and the particular edge in an AND gate. An overall outer coverage result for the pixel and the primitive is calculated by combining the outer coverage results for the pixel and each of the edges of the primitive in an AND gate. The overall inner coverage result for the pixel is calculated in a similar manner.
Claims19
A graphics processing pipeline arranged to render in a rendering space, wherein the rendering space is sub-divided into a plurality of tiles, each tile is sub-divided into a plurality of microtiles, each microtile comprising an identical arrangement of pixels, the graphics processing pipeline comprising conservative rasterization hardware, wherein the conservative rasterization hardware comprises:
- a plurality of first hardware sub-units each arranged to calculate, for a different edge of a primitive, an outer coverage result for the edge and an inner coverage result for the edge for each pixel in a microtile, and
- a plurality of second hardware sub-units each arranged to calculate, for a different pixel in a microtile, an outer coverage result for the primitive and an inner coverage result for the primitive;
- wherein each first hardware sub-unit comprises:
- edge test calculation hardware arranged to calculate, for each corner of the pixels in the microtile a value indicating whether the pixel corner is to the left of the edge,
- a plurality of OR logic blocks each configured to perform an OR operation, one for each pixel in the microtile, and each arranged to receive as inputs four values from the edge test calculation hardware, one for each corner of the pixel, and wherein an output of the OR logic block is the outer coverage result for the pixel and the edge, and
- a first plurality of AND logic blocks each configured to perform an AND operation, one for each pixel in the microtile, and each arranged to receive as inputs four values from the edge test calculation hardware, one for each corner of the pixel and wherein an output of the AND logic block is the inner coverage result for the pixel and the edge;
- and wherein each second hardware sub-unit comprises:
- a second plurality of AND logic blocks, one for each pixel in the microtile, and each arranged to receive as inputs an outer coverage result for the pixel and each of the edges, one from each of the first hardware sub-units and wherein an output of the AND logic block is the outer coverage result for the pixel and the primitive, and
- a third plurality of AND logic blocks, one for each pixel in the microtile, and each arranged to receive as inputs an inner coverage result for the pixel and each of the edges, one from each of the first hardware sub-units and wherein an output of the AND logic block is the inner coverage result for the pixel and the primitive.
A method of performing conservative rasterization in a graphics pipeline arranged to render in a rendering space, wherein the rendering space is sub-divided into a plurality of tiles, each tile is sub-divided into a plurality of microtiles, each microtile comprising an identical arrangement of pixels (106), the method comprising:
- for each edge of a primitive and for each corner of a pixel in the microtile, calculating a value indicating whether the pixel corner is to the left of the edge;
- and
- for each pixel, the pixel having four corners:
- for each edge, combining the four calculated values in an OR logic block to generate and output an outer coverage result for the pixel and the edge;
- for each edge, combining the four calculated values in an AND logic block to generate and output an inner coverage result for the pixel and the edge;
- combining outer coverage results for the pixel for each edge of the primitive in an AND logic block to generate and output an outer coverage result for the pixel and the primitive;
- and
- combining inner coverage results for the pixel for each edge of the primitive in an AND logic block to generate and output an inner coverage result for the pixel and the primitive.
A non-transitory computer readable storage medium having stored thereon computer executable code that when executed causes at least one processor to perform conservative rasterization in a graphics pipeline arranged to render in a rendering space, wherein the rendering space is sub-divided into a plurality of tiles, each tile is sub-divided into a plurality of microtiles, each microtile comprising an identical arrangement of pixels, by:
- for each edge of a primitive and for each corner of a pixel in the microtile, calculating a value indicating whether the pixel corner is to the left of the edge;
- and
- for each pixel, the pixel having four corners:
- for each edge, combining the four calculated values in an OR logic block to generate and output an outer coverage result for the pixel and the edge;
- for each edge, combining the four calculated values in an AND logic block to generate and output an inner coverage result for the pixel and the edge;
- combining outer coverage results for the pixel for each edge of the primitive in an AND logic block to generate and output an outer coverage result for the pixel and the primitive;
- and
- combining inner coverage results for the pixel for each edge of the primitive in an AND logic block to generate and output an inner coverage result for the pixel and the primitive.
Dependencies are inferred from the claim text.