IP Library Granted Patent US 11,527,034
Granted Patent B2
US 11,527,034 · App. 17/176,352 · Granted Dec 13, 2022

Methods and tiling engines for tiling primitives in a graphics processing system

Inventor: Xile Yang (Rickmansworth, GB)
Assignee: Imagination Technologies Limited
G06T15/005G06T1/20G06T1/60
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,527,034
App. No.
17/176,352
Granted
Dec 13, 2022
Kind
B2
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 (43)

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.

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

3. 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.

4. 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.

5. 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.

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

7. 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.

8. 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.

9. 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.

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

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.

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

13. 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.

14. 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.

15. 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.

16. 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.

17. 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.

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.

19. 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 .

20. 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.

Assignments (2)
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2021
From: YANG, XILE
To: IMAGINATION TECHNOLOGIES LIMITED
Reel/Frame 055685/0572 →