Allocation of primitives to primitive blocks

US12462464B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12462464-B2
Application numberUS-202217961359-A
CountryUS
Kind codeB2
Filing dateOct 6, 2022
Priority dateMay 29, 2014
Publication dateNov 4, 2025
Grant dateNov 4, 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.

An application sends primitives to a graphics processing system so that an image of a 3D scene can be rendered. The primitives are placed into primitive blocks for storage and retrieval from a parameter memory. Rather than simply placing the first primitives into a primitive block until the primitive block is full and then placing further primitives into the next primitive block, multiple primitive blocks can be “open” such that a primitive block allocation module can allocate primitives to one of the open primitive blocks to thereby sort the primitives into primitive blocks according to their spatial positions. By grouping primitives together into primitive blocks in accordance with their spatial positions, the performance of a rasterization module can be improved. For example, in a tile-based rendering system this may mean that fewer primitive blocks need to be fetched by a hidden surface removal module in order to process a tile.

First claim

Opening claim text (preview).

What is claimed is: 1 . A method of processing primitives for rendering an image of a three dimensional scene in a computer graphics processing system in which primitive data is stored in blocks of a data store by primitive allocation logic of the computer graphics processing system, wherein the primitives are defined by vertices, the method comprising: for each of a plurality of received primitives: (i) comparing an indication of a spatial position in the scene of the received primitive with at least one indication of a spatial position in the scene of at least one block of the data store, wherein the at least one block of the data store comprises vertex data for vertices of previously received primitives, and (ii) storing primitive data for the received primitive in a block of the data store based on a result of the comparison, such that the received primitive is stored in a block in accordance with its spatial position, wherein the primitive data for the received primitive comprises vertex data for vertices of the received primitive; and processing the primitive data stored in the blocks of the data store in the computer graphics processing system to render the image. 2 . The method of claim 1 , wherein said processing primitive data comprises outputting the primitive data stored in the blocks of the data store by the primitive allocation logic. 3 . The method of claim 2 , wherein said processing primitive data further comprises: receiving the outputted primitive data at a tiling module of the computer graphics processing system; and using the received primitive data at the tiling module to determine which primitives are present within each of a plurality of tiles. 4 . The method of claim 1 , wherein for each of the received primitives, said comparing comprises comparing an indication of a spatial position in the scene of the received primitive with respective indications of spatial positions in the scene of at least two blocks of the data store. 5 . The method of claim 1 , wherein in response to the result of the comparison indicating that the spatial position in the scene of the received primitive matches the spatial position in the scene of a single one of the blocks of the data store, the received primitive is allocated to said one of the blocks. 6 . The method of claim 1 , further comprising, in response to the result of the comparison indicating that the spatial position in the scene of the received primitive matches the spatial position in the scene of a plurality of the blocks of the data store, merging said plurality of blocks to form a merged block, wherein the received primitive is allocated to the merged block. 7 . The method of claim 1 , further comprising, in response to the result of the comparison indicating that the spatial position in the scene of the received primitive does not match the spatial position in the scene of any of the blocks of the data store, creating a new block to be included in said data store, wherein the received primitive is allocated to the new block. 8 . The method of claim 7 , further comprising: determining that the data store does not have space to store the new block; and in response to determining that the data store does not have space to store the new block, outputting one of the blocks from the data store to provide space for the new block. 9 . The method of claim 8 , further comprising selecting a block to be outputted from the data store in accordance with an outputting scheme, wherein the outputting scheme comprises one or more of: (i) a round robin scheme; (ii) an output the biggest scheme in which a block with the most primitives is selected to be outputted; (iii) an output the smallest scheme in which a block with the fewest primitives is selected to be outputted; (iv) an output the oldest scheme in which a block which has been in the data store for the longest amount of time is selected to be outputted; (v) a merge and output smallest and biggest scheme in which a block with the most primitives and a block with the fewest primitives are merged and the resulting merged block is then selected to be outputted; (vi) a merge threshold scheme in which any blocks with fewer than a threshold number of primitives are merged and the resulting merged block is then selected to be outputted; and (vii) a merge smallest scheme in which two blocks with the fewest primitives are merged and the resulting merged block is kept in the data store, wherein one block from the data store is selected to be outputted if merging is not possible. 10 . The method of claim 1 , wherein each of the blocks of the data store includes a header which includes state information indicating how to render the primitives in that block. 11 . A computer graphics processing system configured to process primitives to render an image of a three dimensional scene, wherein the primitives are defined by vertices, the computer graphics processing system comprising: a data store configured to store primitive data in blocks of the data store; and primitive allocation logic configured to, for each of a plurality of received primitives: (i) compare an indication of a spatial position in the scene of the received primitive with at least one indication of a spatial position in the scene of at least one block of the data store, wherein the at least one block of the data store comprises vertex data for vertices of previously received primitives, and (ii) store primitive data for the received primitive in a block of the data store based on a result of the comparison, such that the received primitive is stored in a block in accordance with its spatial position, wherein the primitive data for the received primitive comprises vertex data for vertices of the received primitive. 12 . The computer graphics processing system of claim 11 , further comprising a tiling module configured to determine which primitives are present within each of a plurality of tiles. 13 . The computer graphics processing system of claim 12 , wherein the primitive allocation logic is configured to: allocate primitives to blocks of the data store prior to tiling; and provide blocks to the tiling module. 14 . The computer graphics processing system of claim 11 , wherein the indication of a spatial position in the scene of the received primitive comprises a vertex of the received primitive, and an indication of a spatial position of a block of the data store comprises a vertex of a primitive stored in that block, wherein the primitive allocation logic is configured to compare vertices of the received primitive and vertices of blocks of the data store to determine whether the received primitive has one or more shared vertices with a block of the data store. 15 . The computer graphics processing system of claim 11 , wherein the indication of a spatial position in the scene of the received primitive comprises a bounding box of the received primitive, and an indication of a spatial position in the scene of a block of the data store comprises a bounding box of that block, wherein the primitive allocation logic is configured to compare the bounding box of the received primitive and the bounding boxes of blocks of the data store to determine whether the bounding box of the received primitive overlaps with, or is within a minimum distance from overlapping with, the bounding box of a block of the data store. 16 . The computer graphics processing system of claim 11 , wherein the primitive allocation logic is further configured such that, responsive to the received primitive being stored in a

Assignees

Inventors

Classifications

  • Texturing; Colouring; Generation of textures or colours (retouching, inpainting or scratch removal G06T5/77) · CPC title

  • Curved planar reformation of 3D line structures · CPC title

  • Scene description · CPC title

  • Bounding box · CPC title

  • Color image · 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 US12462464B2 cover?
An application sends primitives to a graphics processing system so that an image of a 3D scene can be rendered. The primitives are placed into primitive blocks for storage and retrieval from a parameter memory. Rather than simply placing the first primitives into a primitive block until the primitive block is full and then placing further primitives into the next primitive block, multiple primi…
Who is the assignee on this patent?
Imagination Tech Ltd
What technology area does this patent fall under?
Primary CPC classification G06T11/40. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 04 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).