IP Library › Granted Patent US 9,536,333
Granted Patent B2
US 9,536,333 · App. 14/056,727 · Granted Jan 3, 2017

Method and apparatus for improved processing of graphics primitives

Inventors: Frode Heggelund (Trondheim, NO); Andreas Engh-Halstvedt (Trondheim, NO); Jorn Nystad (Trondheim, NO); Henrik Ohlsson (Lund, SE)
Assignee: ARM LIMITED
G06T11/40G06T15/005G06T15/40
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 9,536,333
App. No.
14/056,727
Granted
Jan 3, 2017
Kind
B2
Abstract

Operating a graphics processing pipeline that includes processing stages including a rasteriser that rasterises input primitives to generate graphics fragments to be processed, each graphics fragment having one or more sampling points associated with it, and a renderer that processes fragments generated by the rasteriser to generate output fragment data for output to a render output, comprising the following steps: (i) determining first information to test whether at least a part of a primitive should be processed further; (ii) using at least some of the first information to decide whether to process at least a part of the primitive further; and if it is decided that at least a part of the primitive is to be processed further: (iii) determining further information to be used in further processing of the primitive; and (iv) further processing at least a part of the primitive using the determined further information.

Claims (51)

1. A method of operating a graphics processing pipeline that includes a rasteriser that rasterises input primitives to generate graphics fragments to be processed, each graphics fragment having one or more sampling points associated with it, and a renderer that processes fragments generated by the rasteriser to generate output fragment data for output to a render output, the method comprising:

when processing a graphics primitive to generate a render output:

(i) determining first primitive set-up information to be used to test whether at least a part of the primitive should be processed further;

(ii) using at least some of the first primitive set-up information to decide whether to process at least a part of the primitive further; and

if it is decided that at least a part of the primitive is to be processed further:

(iii) determining second primitive set-up information to be used to test whether at least a part of the primitive should be processed further; and

(iv) using at least some of the second primitive set-up information to decide whether to process at least a part of the primitive further;

wherein the second primitive set-up information comprises at least one edge equation for the primitive and step (iv) comprises determining if the primitive is located at least partially within a region of the render output, using the second primitive set-up information.

2. A method as claimed in claim 1 , wherein the first primitive set-up information comprises information to be used to determine if the primitive is located at least partially within a region of the render output.

3. A method as claimed in claim 2 , wherein step (ii) comprises testing the first primitive set-up information to be used to determine if the primitive is located at least partially within a region of the render output to determine if the primitive is located at least partially within a region of the render output and, if it is determined that the primitive is not located at least partially within a region of the render output, not processing the primitive further.

4. A method as claimed in claim 2 , wherein the first information comprises information specifying the location of at least one edge of the primitive.

5. A method as claimed in claim 1 , wherein the first primitive set-up information comprises information to be used in a depth and/or stencil test for at least a part of the primitive.

6. A method as claimed in claim 5 , wherein step (ii) comprises performing a depth and/or stencil test and, if the primitive does not pass the depth and/or stencil test, not processing the primitive further.

7. A method as claimed in claim 1 , wherein the method further comprises, if it is decided at step (iv) that at least a part of the primitive is to be processed further:

(v) determining further information to be used in further processing of the primitive; and

(vi) further processing at least a part of the primitive using the determined further information.

8. A method as claimed in claim 7 , wherein step (v) includes determining information to be used for rendering the primitive.

9. A method as claimed in claim 8 , wherein the information to be used for rendering the primitive comprises one or more barycentric equations for the primitive.

10. A method as claimed in claim 7 , wherein step (vi) comprises rendering at least a part of the primitive.

11. A method as claimed in claim 1 , wherein:

the second primitive set-up information further comprises at least one depth equation or at least one stencil reference value for the primitive, and step (iv) further comprises performing a depth or stencil test for at least a part of the primitive, using the second primitive set-up information.

12. A graphics processing pipeline for rendering input primitives to generate a render output, the pipeline comprising:

a rasteriser that rasterises input primitives to generate graphics fragments to be processed, each graphics fragment having one or more sampling points associated with it, and a renderer that processes fragments generated by the rasteriser to generate output fragment data for output to a render output;

first primitive set-up stage circuitry configured to determine first primitive set-up information to be used to test whether at least a part of a primitive being processed by the pipeline should be processed further;

first primitive test stage circuitry configured to use at least some of the determined first primitive set-up information to decide whether to process at least a part of the primitive further;

second primitive set-up stage circuitry configured to,

if it is decided that at least a part of the primitive is to be processed further after the first primitive test:

determine second primitive set-up information to be used to test whether at least a part of the primitive being processed by the pipeline should be processed further; and

second primitive test stage circuitry configured to use at least some of the second primitive set-up information to decide whether to process at least a part of the primitive further;

wherein the second primitive set-up information comprises at least one edge equation for the primitive and the second primitive test stage circuitry is configured to determine if the primitive is located at least partially within a region of the render output, using the second primitive set-up information.

13. A pipeline as claimed in claim 12 , wherein the first primitive set-up information comprises information to be used to determine if the primitive is located at least partially within a region of the render output.

14. A pipeline as claimed in claim 13 , wherein the first primitive test stage circuitry is configured to test the first primitive set-up information to be used to determine if the primitive is located at least partially within a region of the render output to determine if the primitive is located at least partially within a region of the render output and, if it is determined that the primitive is not located at least partially within a region of the render output, to cull the primitive from further processing.

15. A pipeline as claimed in claim 13 , wherein the first primitive set-up information comprises information specifying the location of at least one edge of the primitive.

16. A pipeline as claimed in claim 12 , wherein the first primitive set-up information comprises information to be used in a depth and/or stencil test for at least a part of the primitive.

17. A pipeline as claimed in claim 16 , wherein the first primitive test stage circuitry is configured to perform a depth and/or stencil test and to, if at least a part of the primitive does not pass the depth and/or stencil test, cull the at least a part of the primitive from further processing.

18. A pipeline as claimed in claim 12 , further comprising circuitry configured to, if the second primitive test stage circuitry decides that at least a part of the primitive is to be processed further:

determine further information to be used in further processing of the primitive; and

process at least a part of the primitive further using the determined further information.

19. A pipeline as claimed in claim 18 , wherein the further information comprises information to be used for rendering a primitive.

20. A pipeline as claimed in claim 19 , wherein the further information to be used for rendering a primitive comprises one or more barycentric equations for the primitive.

21. A pipeline as claimed in claim 12 , wherein:

the second primitive set-up information further comprises at least one depth equation or at least one stencil reference value for the primitive and the second primitive test stage circuitry is further configured to perform a depth or stencil test for at least a part of the primitive, using the second primitive set-up information.

22. A pipeline as claimed in claim 12 , wherein the pipeline is configured to, if at least a part of the primitive passes the second primitive test, pass the at least a part of the primitive to the renderer.

23. A non-transitory computer readable storage medium storing computer software code which, when executed on a processor, performs a method of operating a graphics processing pipeline that includes a rasteriser that rasterises input primitives to generate graphics fragments to be processed, each graphics fragment having one or more sampling points associated with it, and a renderer that processes fragments generated by the rasteriser to generate output fragment data for output to a render output, the method comprising:

when processing a graphics primitive to generate a render output:

(i) determining first primitive set-up information to be used to test whether at least a part of the primitive should be processed further;

(ii) using at least some of the first primitive set-up information to decide whether to process at least a part of the primitive further; and

if it is decided that at least a part of the primitive is to be processed further:

(iii) determining second primitive set-up information to be used to test whether at least a part of the primitive should be processed further; and

(iv) using at least some of the second primitive set-up information to decide whether to process at least a part of the primitive further;

wherein the second primitive set-up information comprises at least one edge equation for the primitive and step (iv) comprises determining if the primitive is located at least partially within a region of the render output, using the second primitive set-up information.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2013
From: HEGGELUND, FRODE; ENGH-HALSTVEDT, ANDREAS; NYSTAD, JORN; OHLSSON, HENRIK
To: ARM LIMITED
Reel/Frame 031616/0362 →
Continuity (1)
Related Publication 20150109313A1 · Apr 23, 2015