IP Library › Granted Patent US 9,530,241
Granted Patent B2
US 9,530,241 · App. 14/536,070 · Granted Dec 27, 2016

Clipping of graphics primitives

Inventors: Andreas Due Engh-Halstvedt (Trondheim, NO); Frode Heggelund (Trondheim, NO); Jørn Nystad (Trondheim, NO)
Assignee: ARM Limited
G06T15/30G06T1/20G06T1/60G06T15/005G06T2210/52
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,530,241
App. No.
14/536,070
Granted
Dec 27, 2016
Kind
B2
Abstract

Techniques for performing clipping of graphics primitives 60 with respect to a clipping boundary 65 are described. The clipping step 10 may be performed separately for each tile of a graphics frame to be rendered, after a primitive list for the tile has been read from a primitive memory 38 . Clipping may be performed only for larger primitives whose size exceeds a given threshold. Clipping of a primitive 60 to the clipping boundary 65 may be performed inexactly so that only a single clipped primitive is generated which may extend beyond the clipping boundary. A clipped primitive generated by clipping may be used for a depth function calculation of a primitive setup operation and not for an edge determination.

Claims (33)

1. A method of processing graphics primitives for a frame to be displayed, the method comprising steps of:

allocating each primitive to at least one of a plurality of tiles forming the frame to be displayed;

for each tile, storing in a primitive memory a primitive list identifying vertex data for vertices of the primitives allocated to the corresponding tile; and

performing tile processing separately for each tile, the tile processing comprising:

(i) reading the primitive list for the tile from the primitive memory;

(ii) if the primitive list identifies a target primitive that satisfies a clipping condition, performing a clipping operation for clipping the target primitive with respect to the clipping boundary to generate additional vertex data for at least one additional vertex for a clipped primitive not identified in the primitive list, the clipped primitive extending beyond the clipping boundary by a smaller amount than the target primitive;

(iii) performing at least one further graphics processing operation using the vertex data identified in the primitive list and the additional vertex data generated by the clipping operation; and

(iv) outputting display data generated by the at least one further graphics processing operation for the tile.

2. The method according to claim 1 , wherein the additional vertex data generated by the clipping operation is stored in a cache memory having a lower access latency than the primitive memory.

3. The method according to claim 1 , wherein the additional vertex data is represented by weight values for determining the additional vertex data from the vertex data of the target primitive.

4. The method according to claim 1 , wherein the clipping boundary corresponds to a boundary of a view frustum.

5. The method according to claim 1 , wherein the clipping boundary is outside a boundary of a view frustum.

6. The method according to claim 1 , wherein the clipping condition is satisfied if the target primitive extends beyond the clipping boundary.

7. The method according to claim 1 , wherein the clipping condition is satisfied if the target primitive extends beyond the clipping boundary and a primitive size parameter indicative of a size of the target primitive exceeds a predetermined threshold.

8. The method according to claim 1 , wherein the at least one further graphics processing operation comprises at least one of:

a primitive setup operation comprising at least one of an edge determination for determining which positions are inside or outside an edge of the primitive and a depth function determination for determining a depth function for determining depth values within the primitive; and

a rasterization operation for calculating position data for a plurality of graphics fragments to be used to represent the primitive.

9. An apparatus for processing graphics primitives for a frame to be displayed, comprising:

allocation circuitry configured to allocate each primitive to at least one of a plurality of tiles forming the frame to be displayed;

a primitive memory configured to store for each tile a primitive list identifying vertex data for vertices of the primitives allocated to the corresponding tile; and

a tile processing pipeline configured to perform tile processing separately for each tile, the tile processing comprising:

(i) reading the primitive list for the tile from the primitive memory;

(ii) if the primitive list identifies a target primitive that satisfies a clipping condition, performing a clipping operation for clipping the target primitive with respect to the clipping boundary to generate additional vertex data for at least one additional vertex for a clipped primitive not identified in the primitive list, the clipped primitive extending beyond the clipping boundary by a smaller amount than the target primitive;

(iii) performing at least one further graphics processing operation using the vertex data identified in the primitive list and the additional vertex data generated by the clipping operation; and

(iv) outputting display data generated by the at least one further graphics processing operation for the tile.

10. An apparatus for processing graphics primitives for a frame to be displayed, comprising:

allocation means for allocating each primitive to at least one of a plurality of tiles forming the frame to be displayed;

primitive memory means for storing for each tile a primitive list identifying vertex data for vertices of the primitives allocated to the corresponding tile; and

tile processing means for performing tile processing separately for each tile, the tile processing comprising:

(i) reading the primitive list for the tile from the primitive memory means;

(ii) if the primitive list identifies a target primitive that satisfies a clipping condition, performing a clipping operation for clipping the target primitive with respect to the clipping boundary to generate additional vertex data for at least one additional vertex for a clipped primitive not identified in the primitive list, the clipped primitive extending beyond the clipping boundary by a smaller amount than the target primitive;

(iii) performing at least one further graphics processing operation using the vertex data identified in the primitive list and the additional vertex data generated by the clipping operation; and

(iv) outputting display data generated by the at least one further graphics processing operation for the tile.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2015
From: ENGH-HALSTVEDT, ANDREAS DUE; HEGGELUND, FRODE; NYSTAD, JORN
To: ARM LIMITED
Reel/Frame 035312/0105 →
Priority Claims (1)
GB 1321898.7 · Dec 11, 2013 · national
Continuity (1)
Related Publication 20150161814A1 · Jun 11, 2015