Processing of primitive blocks in parallel tiling engine pipes

US9524534B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9524534-B2
Application numberUS-201514616932-A
CountryUS
Kind codeB2
Filing dateFeb 9, 2015
Priority dateFeb 13, 2014
Publication dateDec 20, 2016
Grant dateDec 20, 2016

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.

A tiling unit is arranged to process a sequence of primitive blocks using multiple parallel tiling engine pipes. Each tiling engine pipe processes a respective primitive block, and determines priorities for regions of the respective primitive block based on whether the primitive block overlaps with any of the other primitive blocks currently being processed in the parallel tiling engine pipes. Each tiling engine pipe processes the regions of its primitive block in a tile-order based on the priorities of the regions. The submission order of the primitives should be maintained when primitive identifiers are written into display lists. Therefore, the priority of a region of a first primitive block is increased (or decreased) if it overlaps with another primitive block which has a higher (or lower) sequence number and which is currently being processed in another tiling engine pipe. This reduces the time that the tiling engine pipes are idle.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method of processing in a plurality of tiling engine pipes within a graphics processing system configured to use a rendering space which is subdivided into a plurality of tiles, a sequence of primitive blocks each including at least one primitive, wherein the tiling engine pipes are arranged to process respective primitive blocks in parallel, and wherein a location of each of the primitive blocks within the rendering space is indicated by a respective location indicator, and a position of each of the primitive blocks within the sequence of primitive blocks is indicated by a respective sequence indicator, the method comprising, for each of a plurality of the respective primitive blocks: determining a priority for each of a plurality of regions of the respective primitive block, each of the regions comprising one or more tiles, wherein if location indicators of primitive blocks currently being processed in the parallel tiling engine pipes indicate that there are overlapping primitive blocks within a particular region of the respective primitive block then the priority for the particular region is determined based on the sequence indicators of the overlapping primitive blocks currently being processed in the parallel tiling engine pipes; and processing primitives of the respective primitive block for tiles of the regions of the respective primitive block in a tile-order based on the determined priorities for the regions, to thereby determine for each of the tiles of the regions of the respective primitive block, which, if any, of the primitives of the respective primitive block are present within the tile. 2. The method of claim 1 wherein determining the priority for the particular region comprises comparing the sequence indicator of the respective primitive block with the sequence indicator of each of the overlapping primitive blocks, wherein for each of the overlapping primitive blocks: if the sequence indicator of the respective primitive block is greater than that of the overlapping primitive block, the priority of the particular region of the respective primitive block is decreased, and if the sequence indicator of the respective primitive block is less than that of the overlapping primitive block, the priority of the particular region of the respective primitive block is increased. 3. The method of claim 1 further comprising determining the regions by determining overlapping regions of the primitive blocks currently being processed in the parallel tiling engine pipes. 4. The method of claim 1 wherein each of the regions is a tile, such that a priority is determined for each of the tiles of the respective primitive block. 5. The method of claim 1 further comprising sending from a tiling engine pipe processing a new primitive block, a signal including the location indicator and the sequence indicator of the new primitive block to other tiling engine pipes. 6. The method of claim 5 wherein the signal including the location indicator and the sequence indicator of the new primitive block is sent from either: (i) a tiling engine pipe that starts to process the new primitive block, or (ii) a control module. 7. The method of claim 1 further comprising, in each of the tiling engine pipes that are processing a respective primitive block: (i) receiving a signal including a location indicator and a sequence indicator of a new primitive block that another tiling engine pipe is starting to process; and (ii) responsive to receiving the signal, re-determining the priorities for regions of the respective primitive block based on the received signal. 8. The method of claim 7 further comprising determining the regions by determining overlapping regions of the primitive blocks currently being processed in the parallel tiling engine pipes, wherein each of the tiling engine pipes which is processing a respective primitive block re-determines the regions responsive to receiving the signal. 9. The method of claim 1 further comprising re-determining the priorities for regions of a first primitive block that a first tiling engine pipe is processing based on a location indicator and a sequence indicator of a new primitive block that a second tiling engine pipe is starting to process. 10. The method of claim 9 further comprising determining the regions by determining overlapping regions of the primitive blocks currently being processed in the parallel tiling engine pipes, wherein the control module re-determines the regions of the primitive blocks being processed by the tiling engine pipes based on the location indicator of the new primitive block. 11. The method of claim 1 further comprising sending, from a tiling engine pipe that has finished processing primitives of a primitive block in an overlapping region for which there is at least one overlapping primitive block currently being processed in at least one other tiling engine pipe, a signal indicating that the primitives of the primitive block in the overlapping region have been processed. 12. The method of claim 1 further comprising, in each of the tiling engine pipes which is processing a respective primitive block: (i) receiving a signal which indicates that the primitives of another primitive block in an overlapping region have been processed in another tiling engine pipe; and (ii) responsive to receiving the signal, increasing the priority for the overlapping region of the respective primitive block based on the received signal. 13. The method of claim 1 further comprising: (i) receiving a signal which indicates that the primitives of a first primitive block in an overlapping region have been processed in a first tiling engine pipe; and (ii) responsive to receiving the signal, increasing the priority for the overlapping region of a second primitive block. 14. The method of claim 1 wherein said processing primitives of the respective primitive block comprises: processing primitives for a set of one or more tiles in each of a plurality of iterations, wherein on each iteration the set of one or more tiles is selected, based on the priorities of the regions, from the tiles which have not yet been processed for the respective primitive block. 15. The method of claim 14 wherein: (i) if a plurality of sets of one or more tiles are from regions which have an equal highest priority for tiles which have not yet been processed, selecting a set based on a raster scan order of the tiles, or (ii) if a plurality of sets of one or more tiles are from regions which have an equal highest priority for tiles which have not yet been processed and which are overlapping with different other ones of the primitive blocks currently being processed, selecting a set based on the sequence indicators of said overlapping other ones of the primitive blocks. 16. The method of claim 1 wherein said processing primitives of the respective primitive block for tiles of the regions of the respective primitive block comprises writing, to display lists of the tiles, primitive identifiers of the primitives of the respective primitive block which are determined to be present within the respective tiles, wherein said writing primitive identifiers of the primitives of the respective primitive block to the display list of a tile comprises checking that a primitive block with an earlier sequence number which is currently being processed in another tiling engine pipe has no further primitive identifiers to write to the display list of the tile. 17. The method of claim 1 wherein the location indicator of a primitive block is a bounding

Assignees

Inventors

Classifications

  • G06T1/20Primary

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

  • G06T15/005Primary

    General purpose rendering architectures · CPC title

  • Region-based segmentation · CPC title

  • Parallel processing · CPC title

  • Dividing image into blocks, subimages or windows · 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 US9524534B2 cover?
A tiling unit is arranged to process a sequence of primitive blocks using multiple parallel tiling engine pipes. Each tiling engine pipe processes a respective primitive block, and determines priorities for regions of the respective primitive block based on whether the primitive block overlaps with any of the other primitive blocks currently being processed in the parallel tiling engine pipes. …
Who is the assignee on this patent?
Imagination Tech Ltd
What technology area does this patent fall under?
Primary CPC classification G06T1/20. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 20 2016 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).