Data structures, methods and tiling engines for storing tiling information in a graphics processing system

US12266044B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12266044-B2
Application numberUS-202318401566-A
CountryUS
Kind codeB2
Filing dateDec 31, 2023
Priority dateFeb 10, 2020
Publication dateApr 1, 2025
Grant dateApr 1, 2025

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Data structures, methods and tiling engines for storing tiling data in memory wherein the tiles are grouped into tile groups and the primitives are grouped into primitive blocks. The methods include, for each tile group: determining, for each tile in the tile group, which primitives of each primitive block intersect that tile; storing in memory a variable length control data block for each primitive block that comprises at least one primitive that intersects at least one tile of the tile group; and storing in memory a control stream comprising a fixed sized primitive block entry for each primitive block that comprises at least one primitive that intersects at least one tile of the tile group, each primitive block entry identifying a location in memory of the control data block for the corresponding primitive block. Each primitive block entry may comprise valid tile information identifying which tiles of the tile group are valid for the corresponding primitive block. A tile is a valid tile for a primitive block if at least one primitive in the primitive block intersects that tile.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of tiling primitives in a tile based graphics processing system in which a rendering space is divided into a plurality of tiles, the plurality of tiles being grouped into a plurality of tile groups each comprising at least two tiles, the method comprising, for a tile group: determining, for each tile of the tile group, which primitives of each of a plurality of primitive blocks intersect that tile, each primitive block comprising at least one primitive; and storing in memory a control stream, the control stream comprising a fixed sized primitive block entry for each primitive block that comprises at least one primitive that intersects at least one tile of the tile group, each primitive block entry identifying a location in memory of a control data block for the corresponding primitive block. 2. The method of claim 1 , wherein each primitive block entry comprises valid tile information identifying which tiles of the tile group are valid for the corresponding primitive block, a tile being a valid tile for a primitive block if at least one primitive in the primitive block intersects that tile. 3. The method of claim 2 , wherein the valid tile information comprises a valid tile mask which comprises a bit for each tile in the tile group which indicates whether that tile is a valid tile for the primitive block. 4. The method of claim 2 , wherein the control stream comprises at least one other type of entry, each of the at least one other type of entry comprising valid tile information that indicates that none of the tiles of the tile group are valid tiles. 5. The method of claim 1 , wherein each control data block comprises information identifying which primitives of the corresponding primitive block intersect each tile of the tile group. 6. The method of claim 1 , wherein at least one control data block comprises at least one primitive mask which comprises a bit for each primitive in the corresponding primitive block that identifies whether or not that primitive intersects a set of one or more tiles of the tile group. 7. The method of claim 1 , wherein at least one control data block comprises a primitive mask for each tile of the tile group that intersects at least one primitive in the corresponding primitive block, each primitive mask comprising a bit for each primitive in the corresponding primitive block that identifies whether or not that primitive intersects the corresponding tile. 8. The method of claim 1 , wherein each control data block comprises information identifying an address of the corresponding primitive block in memory. 9. The method of claim 1 , wherein each control data block comprises a primitive block header that indicates: whether one or more of the tiles of the tile group intersect the same primitives of the corresponding primitive block and/or whether one or more of the tiles of the tile group intersect all of the primitives in the corresponding primitive block. 10. The method of claim 1 , wherein: each primitive block entry comprises a data pointer that identifies the location in memory of the corresponding control data block; the control stream comprises at least one control data base address entry which specifies at least a portion of a control data base address; and an address of a control data block in memory is generated from a combination of the control data base address and the data pointer of the corresponding primitive block entry. 11. The method of claim 10 , wherein each data pointer comprises an offset into a portion of memory identified by the control data base address. 12. The method of claim 10 , wherein each control data base address entry specifies a complete control data base address. 13. The method of claim 10 , wherein each control data base address entry specifies only a portion of a complete control data base address. 14. The method of claim 13 , wherein the control stream comprises a first control data base address entry that specifies a first portion of the control data base address and a second control data base address entry that specifies a second portion of the control data base address. 15. The method of claim 1 , wherein storing the control stream in memory comprises dividing the control stream entries into a plurality of control stream blocks; wherein a last entry in each control stream block, other than the last control stream block, is a link entry which identifies a location of a next control stream block in memory. 16. The method of claim 1 , wherein each tile group comprises an N×M block of tiles in the render space wherein N and M are integers greater than or equal to 1. 17. The method of claim 1 , further comprising storing in memory the control data block for each primitive block that comprises at least one primitive that intersect at least one tile of the tile group. 18. A tiling engine for use in a graphics processing system for tiling primitives into tiles in a tile group of a rendering space, the tiling engine comprising: tiling logic configured to determine, for each tile of the tile group, which primitives of each of a plurality of primitive blocks intersect that tile, each primitive block comprising at least one primitive; and a control stream generator configured to store in memory a control stream, the control stream comprising a fixed sized primitive block entry for each primitive block that comprises at least one primitive that intersects at least one tile of the tile group, each primitive block entry identifying a location in memory of a control data block for the corresponding primitive block. 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 1 . 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 18 that, when processed in an integrated circuit manufacturing system, causes the integrated circuit manufacturing system to manufacture an integrated circuit embodying the tiling engine.

Assignees

Inventors

Classifications

  • Parallel processing · CPC title

  • G06T1/60Primary

    Memory management · CPC title

  • G06T1/20Primary

    Processor architectures; Processor configuration, e.g. pipelining · CPC title

  • G06T15/005Primary

    General purpose rendering architectures · CPC title

  • Three-dimensional [3D] image rendering · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12266044B2 cover?
Data structures, methods and tiling engines for storing tiling data in memory wherein the tiles are grouped into tile groups and the primitives are grouped into primitive blocks. The methods include, for each tile group: determining, for each tile in the tile group, which primitives of each primitive block intersect that tile; storing in memory a variable length control data block for each prim…
Who is the assignee on this patent?
Imagination Tech Ltd
What technology area does this patent fall under?
Primary CPC classification G06T1/60. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 01 2025 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).