# US 2021/0279833 A1 · Methods and Tiling Engines for Tiling Primitives in a Graphics Processing System

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

- Number: US 2021/0279833 A1
- Document ID: US20210279833A1
- Status: Published application
- Kind: A1
- Application number: 17/176,352
- Filed: 2021-02-16
- Published: 2021-09-09
- Earliest claimed: 2020-02-13
- Assignees: Imagination Technologies Limited
- Applicants: Imagination Technologies Limited
- Inventors: Xile Yang
- Web page: https://patentgrep.com/patent/US20210279833A1

## CPC

- A63F 13/52: involving aspects of the displayed game scene
- G06T 15/005: {General purpose rendering architectures}
- G06T 1/20: Processor architectures; Processor configuration, e.g. pipelining
- G06T 1/60: Memory management
- G06T 11/40: Filling planar surfaces by adding surface attributes, e.g. adding colours or textures
- G09G 5/363: {Graphics controllers}
- G09G 2360/06: Use of more than one graphics processor to process data before displaying to one or more screens
- G09G 2360/122: Tiling
- A63F: CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G09G: ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION (arrangements for transferring data between digital computers and displays G06F3/14; static indicating arrangements comprising an association of a number of separate sources or light control cells G09F9/00; static indicating arrangements comprising integral associations of a number of light sources H01J, H01K, H10H, H05B33/12; scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission, details thereof H04N1/00)

## Abstract

Methods and tiling engines for storing tiling primitives in a graphics processing system. The method includes: receiving a plurality of primitive blocks, each primitive block comprising one or more primitive sections, each primitive section comprising one or more primitives; for each primitive section of a received primitive block, determining which primitives of that primitive section fall, at least partially, within the bounds of a tile; for each primitive block that comprises at least one primitive that falls, at least partially, within the bounds of the tile, adding information to a display list for the tile that identifies the primitive block; for each identified primitive block, adding information to the display list identifying each primitive section of that primitive block that comprises at least one primitive that falls, at least partially within the bounds of the tile; and for each identified primitive section, adding information to the display list identifying the primitives in that primitive section that fall, at least partially, within the bounds of the tile.

## Claims

### Claim 1

A tiling engine for use in a graphics processing system in which a rendering space is divided into a plurality of tiles, the tiling engine comprising:
tiling logic configured to:
receive a plurality of primitive blocks, each primitive block comprising one or more primitive sections, each primitive section comprising one or more primitives, and
for each primitive section of a received primitive block, determine whether the primitives of that primitive section fall, at least partially, within the bounds of a tile of the plurality of tiles; and
a display list generator configured to:
for each primitive block that comprises at least one primitive that falls, at least partially, within the bounds of the tile, add information to a display list for the tile that identifies the primitive block,
for each identified primitive block, add information to the display list identifying each primitive section of that primitive block that comprises at least one primitive that falls, at least partially, within the bounds of the tile, and
for each identified primitive section, add information to the display list identifying the primitives in that primitive section that fall, at least partially, within the bounds of the tile.

### Claim 2 (depends on 1)

The tiling engine of claim 1, wherein the information identifying a primitive section comprises information identifying a location of the primitive section in memory.

### Claim 3 (depends on 1)

The tiling engine of claim 1, wherein the display list generator is configured to:
if a first primitive section of a primitive block comprises at least one primitive that falls, at least partially, within the bounds of the tile, add a first type of primitive block entry to the display list that comprises the information identifying the primitive block and the information identifying the first primitive section as a primitive section that comprises at least one primitive that falls, at least partially, within the bounds of the tile; and
if the first primitive section of the primitive block does not comprise at least one primitive that falls, at least partially, within the bounds of the tile, add a second, different, type of primitive block entry to the display list that comprises the information identifying the primitive block and information indicating that the first primitive section does not comprise at least one primitive that falls, at least partially, within the bounds of the tile.

### Claim 4 (depends on 3)

The tiling engine of claim 3, wherein the first type of primitive block entry has a flag set and the second type of primitive block entry does not have the flag set.

### Claim 5 (depends on 3)

The tiling engine of claim 3, wherein the display list generator is configured to, for each primitive section of the primitive block, other than the first primitive section, that comprises at least one primitive that falls, at least partially, within the bounds of the tile, add a primitive section entry to the display list for the tile.

### Claim 6 (depends on 5)

The tiling engine of claim 5, wherein each primitive section entry comprises information identifying a location of the corresponding primitive section in memory.

### Claim 7 (depends on 6)

The tiling engine of claim 6, wherein the information identifying the location of the corresponding primitive section in memory is an offset from a location of the primitive block in memory.

### Claim 8 (depends on 1)

The tiling engine of claim 1, wherein the display list generator is configured to, for each primitive section of a primitive block, that comprises at least one primitive that falls, at least partially, within the bounds of the tile, add a primitive section entry to the display list.

### Claim 9 (depends on 1)

The tiling engine of claim 1, wherein the information identifying the primitives in a primitive section that fall, at least partially, within the bounds of the tile comprises a primitive mask that comprises a bit for each primitive in the primitive section.

### Claim 10 (depends on 1)

The tiling engine of claim 1, wherein the information identifying a primitive block is an address of the primitive block in memory.

### Claim 11

A method of generating a display list for a tile of a rendering space, the method comprising:
receiving a plurality of primitive blocks, each primitive block comprising one or more primitive sections, each primitive section comprising one or more primitives;
for each primitive section of a received primitive block, determining which primitives of that primitive section fall, at least partially, within the bounds of a tile;
for each primitive block that comprises at least one primitive that falls, at least partially, within the bounds of the tile, adding information to a display list for the tile that identifies the primitive block;
for each identified primitive block, adding information to the display list identifying each primitive section of that primitive block that comprises at least one primitive that falls, at least partially within the bounds of the tile; and
for each identified primitive section, adding information to the display list identifying the primitives in that primitive section that fall, at least partially, within the bounds of the tile.

### Claim 12 (depends on 11)

The method of claim 11, wherein the information identifying a primitive section comprises information identifying a location of the primitive section in memory.

### Claim 13 (depends on 11)

The method of claim 11, wherein:
if a first primitive section of a primitive block comprises at least one primitive that falls, at least partially, within the bounds of the tile, a first type of primitive block entry is added to the display list that comprises the information identifying the primitive block and the information identifying the first primitive section as a primitive section that comprises at least one primitive that falls, at least partially, within the bounds of the tile; and
if the first primitive section of the primitive block does not comprise at least one primitive that falls, at least partially, within the bounds of the tile, a second, different, type of primitive block entry is added to the display list that comprises the information identifying the primitive block and information indicating that the first primitive section does not comprise at least one primitive that falls, at least partially, within the bounds of the tile.

### Claim 14 (depends on 13)

The method of claim 13, wherein the first type of primitive block entry has a flag set and the second type of primitive block entry does not have the flag set.

### Claim 15 (depends on 13)

The method of claim 13, wherein a primitive section entry is added to the display list for each primitive section, other than a first primitive section of a primitive block, that comprises at least one primitive that falls, at least partially, within the bounds of the tile.

### Claim 16 (depends on 11)

The method of claim 11, wherein a primitive section entry is added to the display list for each primitive section that comprises at least one primitive that falls, at least partially, within the bounds of the tile.

### Claim 17 (depends on 11)

The method of claim 11, wherein the information identifying the primitives in a primitive section that fall, at least partially, within the bounds of the tile comprises a primitive mask that comprises a bit for each primitive in the primitive section.

### Claim 18

A graphics processing system comprising a tiling engine comprising:
tiling logic configured to:
receive a plurality of primitive blocks, each primitive block comprising one or more primitive sections, each primitive section comprising one or more primitives, and
for each primitive section of a received primitive block, determine whether the primitives of that primitive section fall, at least partially, within the bounds of a tile of a plurality of tiles of a rendering space; and
a display list generator configured to:
for each primitive block that comprises at least one primitive that falls, at least partially, within the bounds of the tile, add information to a display list for the tile that identifies the primitive block,
for each identified primitive block, add information to the display list identifying each primitive section of that primitive block that comprises at least one primitive that falls, at least partially, within the bounds of the tile, and
for each identified primitive section, add information to the display list identifying the primitives in that primitive section that fall, at least partially, within the bounds of the tile.

### Claim 19 (depends on 11)

A non-transitory computer readable storage medium having stored thereon computer readable instructions that, when executed at a computer system, cause the computer system to perform the method as set forth in claim 11.

### Claim 20 (depends on 1)

A non-transitory computer readable storage medium having stored thereon a computer readable dataset description of the tiling engine as set forth in claim 1 that, when processed in an integrated circuit manufacturing system, causes the integrated circuit manufacturing system to manufacture an integrated circuit embodying the tiling engine.
