Tessellation in tile-based rendering

US10089774B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10089774-B2
Application numberUS-201113298051-A
CountryUS
Kind codeB2
Filing dateNov 16, 2011
Priority dateNov 16, 2011
Publication dateOct 2, 2018
Grant dateOct 2, 2018

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.

The disclosed techniques includes generating an input visibility stream for each tile of a frame, the input visibility stream indicating whether or not an input primitive is visible in each tile when rendered, and generating an output visibility stream for each tile of the frame, the output visibility stream indicating whether or not an output primitive is visible in each tile when rendered, wherein the output primitive is produced by tessellating the input primitive. In this way, based on the input visibility stream, tessellation may be skipped for entire input primitive that is not visible in the tile. Also, based on the output visibility stream, tessellation may be skipped for certain ones of the output primitives that are not visible in the tile, even if some of the input primitive is not visible.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for tessellation in a tile-based graphics rendering pipeline by a graphics processor, the method comprising: generating an input visibility stream for each tile of a frame before rendering the frame, the input visibility stream indicating whether or not an input primitive is visible in each tile when rendered; generating an output visibility stream for each tile of the frame before rendering the frame, the output visibility stream including an indication of whether or not an output primitive is visible in the tile based on a depth test, wherein the output primitive is determined to be visible if any pixel produced by rasterizing the output primitive is determined to be visible, and wherein the output primitive is produced by tessellating the input primitive, wherein the output visibility stream comprises a series of bits that indicate for every output primitive whether it contributes to the rendered tile or not and the input visibility stream comprises a series of bits that indicate for every input primitive whether it contributes to the rendered tile or not; and tessellating the input primitives to create the output primitives for a current tile based on the input visibility stream and the output visibility stream, wherein tessellating the input primitives comprises: skipping tessellation for the input primitives indicated by the input visibility stream as not contributing to the current tile; and performing tessellation, based on the output visibility stream, for input primitives indicated by the input visibility stream as contributing to the current tile, wherein tessellation is skipped for a portion of the input primitives for which corresponding output primitives are indicated as not contributing to the current tile by the output visibility stream. 2. The method of claim 1 , wherein generating the input visibility stream comprises: vertex shading the input primitive; hull shading the vertex shaded input primitive; tessellating the hull shaded input primitive to produce a plurality of output primitives; domain shading the plurality of output primitives; rasterizing the plurality of output primitives to produce pixels; performing a depth test to determine if the pixels are visible for a tile of a frame; and generating an indication in the input visibility stream of whether or not the input primitive is visible in the tile based on the depth test, wherein the input primitive is determined to be visible if any of the pixels produced by rasterizing the output primitives associated with the input primitive are determined to be visible. 3. The method of claim 1 , wherein the input primitive is a patch and wherein the output primitive is a triangle, quad or isoline. 4. The method of claim 1 , further comprising: rendering the current tile of the frame, wherein rendering is skipped for input primitives indicated as being non-visible in the current tile by the input visibility stream. 5. The method of claim 1 , further comprising: rendering the current tile of the frame, wherein rendering is skipped for output primitives indicated as being non-visible in the current tile by the output visibility stream. 6. A method for tessellation in a tile-based graphics rendering pipeline by a graphics processor, the method comprising: generating a visibility stream for each input primitive for each tile of a frame before rendering the frame, the visibility stream including an indication of whether or not an output primitive is visible in the tile based on a depth test, wherein the output primitive is determined to be visible if any pixel produced by rasterizing the output primitive is determined to be visible, the visibility stream having a length of N bits, wherein each bit indicates whether or not a respective output primitive is visible in each tile when rendered, and wherein the output primitive is produced by tessellating the input primitive; and tessellating the input primitives to create the output primitives for a current tile based on the visibility stream, wherein tessellating the input primitives comprises skipping tessellation for a portion of the input primitives for which corresponding output primitives are indicated as not contributing to the current tile by the visibility stream. 7. The method of claim 6 , wherein the length N is determined by the maximum number of output primitives per input primitive as defined by a rendering pipeline. 8. The method of claim 6 , wherein generating the visibility stream comprises: vertex shading the input primitive; hull shading the vertex shaded input primitive; tessellating the hull shaded input primitive to produce a plurality of output primitives; domain shading the plurality of output primitives; rasterizing the plurality of output primitives to produce pixels; performing a depth test to determine if the pixels are visible for a tile of a frame; and generating the indication in the visibility stream of whether or not the output primitive is visible in the tile based on the depth test, wherein the output primitive is determined to be visible if any pixel produced by rasterizing the output primitive is determined to be visible. 9. The method of claim 6 , further comprising: rendering the current tile of the frame, wherein rendering is skipped for input primitives in the case that every bit in the visibility stream indicates a non-visible output primitive. 10. The method of claim 6 , further comprising: rendering the current tile of the frame, wherein rendering is skipped for output primitives indicated as being non-visible in the current tile by the visibility stream. 11. The method of claim 6 , wherein the tile-based rendering architecture has an enabled geometry shader, and wherein the visibility stream has a length of N×M bits, wherein M is the maximum number of output primitives produced by the geometry shader, and wherein generating the visibility stream further comprises geometry shading the plurality of output primitives after domain shading the output primitives. 12. An apparatus configured to perform tessellation in a tile-based graphics rendering pipeline comprising: a memory configured to store graphics data; and a graphics processor in communication with the memory, the graphics processor configured to: execute a binning pipeline on the graphics data, the binning pipeline configured to generate an input visibility stream for each tile of a frame before rendering the frame, the input visibility stream indicating whether or not an input primitive is visible in each tile when rendered, the binning pipeline further configured to generate an output visibility stream for each tile of the frame before rendering the frame, the output visibility stream including an indication of whether or not an output primitive is visible in the tile based on a depth test, wherein the output primitive is determined to be visible if any pixel produced by rasterizing the output primitive is determined to be visible, and wherein the output primitive is produced by tessellating the input primitive, wherein the output visibility stream comprises a series of bits that indicate for every output primitive whether it contributes to the rendered tile or not and the input visibility stream comprises a series of bits that indicate for every input primitive whether it contributes to the rendered tile or not, and the graphics processor is further configured to execute a rendering pipeline, wherein the rendering pipeline is configured to tessellate the input primitives to create the output primitives for a current tile based on the input visibility stream and the output visibility stream, wherein tessellat

Assignees

Inventors

Classifications

  • G06T15/005Primary

    General purpose rendering architectures · 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 US10089774B2 cover?
The disclosed techniques includes generating an input visibility stream for each tile of a frame, the input visibility stream indicating whether or not an input primitive is visible in each tile when rendered, and generating an output visibility stream for each tile of the frame, the output visibility stream indicating whether or not an output primitive is visible in each tile when rendered, wh…
Who is the assignee on this patent?
Kallio Kiia Kaappoo, Arvo Jukka Pekka, Qualcomm Inc
What technology area does this patent fall under?
Primary CPC classification G06T15/005. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 02 2018 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).