# US 2021/0279936 A1 · Graphics processing method and system for rendering items of geometry based on their size

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0279936 A1
- Document ID: US20210279936A1
- Status: Published application
- Kind: A1
- Application number: 17/169,607
- Filed: 2021-02-08
- Published: 2021-09-09
- Earliest claimed: 2020-02-07
- Assignees: Imagination Technologies Limited
- Applicants: Imagination Technologies Limited
- Inventors: Xile Yang; Robert Brigg
- Web page: https://patentgrep.com/patent/US20210279936A1

## CPC

- G06T 15/005: {General purpose rendering architectures}
- G06T 1/20: Processor architectures; Processor configuration, e.g. pipelining
- G06T 7/13: Edge detection
- G06T 11/20: Drawing from basic elements
- G06T 11/40: Filling planar surfaces by adding surface attributes, e.g. adding colours or textures
- G06T 15/00: Three-dimensional [3D] image rendering
- G06T 15/04: Texture mapping
- G06T 2210/12: Bounding box
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

Methods and graphics processing systems render primitives using a rendering space which is subdivided into a plurality of regions. Geometry processing logic performs a geometry processing phase which determines, for each of a plurality of primitives which are present in a region, whether the primitive totally covers the region; and stores data for the primitives which are present in the region, wherein the stored data comprises, for each of the primitives which are determined to totally cover the region, data to indicate total coverage of the region. Rendering logic performs a rendering phase for rendering primitives within the region. The rendering phase retrieves the stored data for the primitives which are present in the region; selectively processes the primitives which are present in the region based on the retrieved data to determine which sample points within the region are covered by the primitives, wherein if the retrieved data includes data which indicates total coverage of the region for a particular primitive then the processing determines which sample points within the region are covered by the particular primitive is skipped; and determines rendered values at the sample points within the region based on the primitives which cover the respective sample points.

## Claims

### Claim 1

A method of rendering primitives in a graphics processing system which is configured to use a rendering space which is subdivided into a plurality of regions, the method comprising:
a geometry processing phase comprising:
determining, for each of a plurality of primitives which are present in a region, whether the primitive totally covers the region; and
storing data for the primitives which are present in the region, wherein the stored data comprises, for each of the primitives which are determined to totally cover the region, data to indicate total coverage of the region; and
a rendering phase for rendering primitives within the region comprising:
retrieving the stored data for the primitives which are present in the region;
selectively processing the primitives which are present in the region based on the retrieved data to determine which sample points within the region are covered by the primitives, wherein if the retrieved data includes data which indicates total coverage of the region for a particular primitive then said processing to determine which sample points within the region are covered by the particular primitive is skipped; and
determining rendered values at the sample points within the region based on the primitives which cover the respective sample points.

### Claim 2 (depends on 1)

The method of claim 1, wherein the geometry processing phase further comprises:
receiving a set of primitives; and
determining which primitives from said set of primitives are present in the region to thereby determine said plurality of primitives which are present in the region;
wherein said storing data for the primitives which are present in the region comprises storing primitive indication data for the region to indicate the determined plurality of primitives which are present in the region; and
wherein the rendering phase further comprises:
based on the primitive indication data for the region, retrieving primitive data for the primitives which are present in the region,
wherein said determining rendered values comprises using the retrieved primitive data.

### Claim 3 (depends on 2)

The method of claim 2, wherein the primitive indication data for the region is stored in a control list for the region, and wherein the data for primitives to indicate whether the primitives totally cover the region is stored in the control list for the region.

### Claim 4 (depends on 1)

The method of claim 1, wherein said determining whether a primitive totally covers a region comprises determining whether the primitive covers every sample point in the region.

### Claim 5 (depends on 1)

The method of claim 1, wherein said determining whether a primitive totally covers a region comprises determining whether the primitive covers the entire area of the region.

### Claim 6 (depends on 1)

The method of claim 1, wherein said determining whether a primitive totally covers a region comprises:
determining an axis-aligned bounding box of the primitive, wherein the primitive is triangular;
determining a size of the bounding box in both horizontal and vertical directions;
comparing the size of the bounding box in the horizontal direction (BBx) with a size of the region in the horizontal direction (Rx), and comparing the size of the bounding box in the vertical direction (BBy) with a size of the region in the vertical direction (Ry), wherein the region is rectangular,
wherein the primitive is determined to not totally cover the region if any of the following conditions are satisfied:
(i) BBx<Rx,
(ii) BBy<Ry, or
(iii) (BBx<2Rx) AND (BBy<2Ry).

### Claim 7 (depends on 1)

The method of claim 1, wherein said determining whether a primitive totally covers a region comprises:
for each edge of the primitive:
determining which of the corners of the region is most likely to be outside of the edge; and
determining whether the determined corner is inside the edge.

### Claim 8 (depends on 1)

The method of claim 1, wherein the region is a tile of the rendering space.

### Claim 9 (depends on 1)

The method of claim 1, wherein the region is a group of tiles of the rendering space.

### Claim 10 (depends on 1)

The method of claim 1, wherein the data to indicate total coverage of the region for a primitive comprises a flag to indicate total coverage of the region.

### Claim 11 (depends on 1)

The method of claim 1, wherein the rendered values represent:
an image of a scene as viewed from a viewpoint; or
a texture to be applied to a surface in a scene.

### Claim 12 (depends on 1)

The method of claim 1, wherein the rendering phase for a current render is performed after the geometry processing phase for the current render has completed.

### Claim 13 (depends on 1)

The method of claim 1, wherein the geometry processing phase is performed without performing rasterisation on primitives.

### Claim 14

A graphics processing system configured to render primitives using a rendering space which is sub-divided into a plurality of regions, wherein the graphics processing system comprises:
geometry processing logic configured to:
determine, for each of a plurality of primitives which are present in a region,
whether the primitive totally covers the region; and
store data for the primitives which are present in the region, wherein the stored data comprises, for each of the primitives which are determined to totally cover the region, data to indicate total coverage of the region; and
rendering logic configured to:
retrieve the stored data for the primitives which are present in a region;
selectively process the primitives which are present in the region based on the retrieved data to determine which sample points within the region are covered by the primitives, such that if the retrieved data includes data which indicates total coverage of the region for a particular primitive then the processing to determine which sample points within the region are covered by the particular primitive is skipped; and
determine rendered values at the sample points within the region based on the primitives which cover the respective sample points.

### Claim 15 (depends on 14)

The graphics processing system of claim 14, wherein the geometry processing logic is further configured to:
receive a set of primitives; and
determine which primitives from said set of primitives are present in the region to thereby determine said plurality of primitives which are present in the region;
wherein said data that the geometry processing logic is configured to store for the primitives which are present in the region comprises primitive indication data for the region to indicate the determined plurality of primitives which are present in the region;
wherein the rendering logic is further configured to:
retrieve, based on the primitive indication data for the region, primitive data for the primitives which are present in the region; and
use the retrieved primitive data to determine said rendered values.

### Claim 16 (depends on 15)

The graphics processing system of claim 15, wherein the geometry processing logic is configured to store in a control list for the region: (i) the primitive indication data for the region, and (ii) the data for primitives to indicate whether the primitives totally cover the region.

### Claim 17 (depends on 14)

The graphics processing system of claim 14, wherein the geometry processing logic is configured to determine whether a primitive totally covers a region by determining whether the primitive covers every sample point in the region.

### Claim 18 (depends on 14)

The graphics processing system of claim 14, wherein the geometry processing logic is configured to determine whether a primitive totally covers a region by determining whether the primitive covers the entire area of the region.

### Claim 19 (depends on 14)

The graphics processing system of claim 14, wherein the geometry processing logic is configured to determine whether a primitive totally covers a region by:
determining an axis-aligned bounding box of the primitive, wherein the primitive is triangular;
determining a size of the bounding box in both horizontal and vertical directions;
comparing the size of the bounding box in the horizontal direction (BBx) with a size of the region in the horizontal direction (Rx), and comparing the size of the bounding box in the vertical direction (BBy) with a size of the region in the vertical direction (Ry), wherein the region is rectangular,
wherein the primitive is determined to not totally cover the region if any of the following conditions are satisfied:
(i) BBx<Rx,
(ii) BBy<Ry, or
(iii) (BBx<2Rx) AND (BBy<2Ry).

### Claim 20

A non-transitory computer readable storage medium having stored thereon a computer readable dataset description of a graphics processing system that, when processed in an integrated circuit manufacturing system, causes the integrated circuit manufacturing system to manufacture an integrated circuit embodying the graphics processing system which is configured to render primitives using a rendering space which is sub-divided into a plurality of regions, wherein the graphics processing system comprises:
geometry processing logic configured to:
determine, for each of a plurality of primitives which are present in a region,
whether the primitive totally covers the region; and
store data for the primitives which are present in the region, wherein the stored data comprises, for each of the primitives which are determined to totally cover the region, data to indicate total coverage of the region; and
rendering logic configured to:
retrieve the stored data for the primitives which are present in a region;
selectively process the primitives which are present in the region based on the retrieved data to determine which sample points within the region are covered by the primitives, such that if the retrieved data includes data which indicates total coverage of the region for a particular primitive then the processing to determine which sample points within the region are covered by the particular primitive is skipped; and
determine rendered values at the sample points within the region based on the primitives which cover the respective sample points.
