IP Library Granted Patent US 11,468,620
Granted Patent B2
US 11,468,620 · App. 16/250,706 · Granted Oct 11, 2022

Topology preservation in a graphics pipeline

Inventor: John W. Howson (St. Albans, GB)
Assignee: Imagination Technologies Limited
G06T15/005G06F9/54G06T1/20G06T1/60G06T17/20
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 11,468,620
App. No.
16/250,706
Granted
Oct 11, 2022
Kind
B2
Abstract

A graphics processing engine has a geometry shading stage having two modes of operation. In the first mode of operation, each primitive output by the geometry shading stage is independent, whereas in the second mode of operation, connectivity between input primitives is maintained by the geometry shading stage. The mode of operation of the geometry shading stage can be determined based on the value of control state data which may be generated at compile-time for a geometry shader based on analysis of that geometry shader.

Claims (55)

1. A method of controlling operation of a geometry shading stage in a graphics processing system, the method comprising:

receiving a geometry shader for execution by the geometry shading stage;

analyzing the geometry shader to determine whether it passes through topology of primitives input to the geometry shader, duplicates the topology into a plurality of parallel streams or modifies the topology of the primitives input to the geometry shader;

in response to determining that the geometry shader modifies the topology of the primitives input to the geometry shader, generating control state data having a first value;

in response to determining that the geometry shader passes through topology of primitives input to the geometry shader or duplicates the topology into a plurality of parallel streams, generating control state data having a second value; and

outputting the control state data to control the operation of the geometry shading stage;

wherein the first value of control state data is configured to set the geometry shading stage into a first mode of operation and the second value of control state data is configured to set the geometry shading stage into a second mode of operation.

2. The method according to claim 1 , wherein in the first mode of operation each primitive output by the geometry shading stage is independent and in the second mode of operation connectivity of primitives output by the geometry shading stage is maintained.

3. The method according to claim 1 , wherein the analysis is implemented in a compiler.

4. The method according to claim 1 , wherein outputting the control state data comprises:

providing the control state data as an extension to a stream of graphics data input to the geometry shading stage; and

passing the control state data to the geometry shading stage in an API.

5. The method according to claim 1 , wherein the method further comprises:

receiving the control state data; and

switching the geometry shading stage between a first mode of operation and a second mode of operation dependent upon a value of the received control state data,

wherein in the first mode of operation each output primitive is independent and in the second mode of operation connectivity of primitives is maintained.

6. The method according to claim 5 , further comprising, in the second mode of operation:

receiving primitive data for a primitive, the primitive data referencing a plurality of vertices;

identifying those vertices referenced in the primitive data that have not been previously processed by the geometry shading stage;

processing only the identified vertices; and

emitting data for the primitive.

7. The method according to claim 6 , further comprising, in the second mode of operation:

storing an output from the processing of the identified vertices in a buffer, wherein the output comprises modified vertex data.

8. The method according to claim 6 , further comprising, in the first mode of operation:

receiving primitive data for a primitive, the primitive data identifying a plurality of vertices;

processing each of the plurality of vertices; and

emitting data for the primitive.

9. The method according to claim 6 , wherein the control state data relates to a particular geometry shader and is generated when the geometry shader is compiled.

10. The method according to claim 5 , further comprising:

receiving primitive data as a stream of graphics data, and wherein the control state data is received as an extension to the stream of graphics data.

11. The method according to claim 5 , wherein the control state data is received from an application via an API.

12. The method according to claim 5 , wherein the geometry shading stage is operated in the second mode of operation for stereoscopic rendering.

13. A processor configured to control operation of a geometry shading stage in a graphics processing system, the processor being configured to:

receive a geometry shader for execution by the geometry shading stage;

analyze the geometry shader to determine whether it passes through topology of primitives input to the geometry shader, duplicates the topology into a plurality of parallel streams or modifies the topology of the primitives input to the geometry shader;

in response to determining that the geometry shader modifies the topology of the primitives input to the geometry shader, generate control state data having a first value;

in response to determining that the geometry shader passes through topology of primitives input to the geometry shader or duplicates the topology into a plurality of parallel streams, generate control state data having a second value; and

output the control state data to control the operation of the geometry shading stage;

wherein the first value of control state data is configured to set the geometry shading stale into a first mode of operation and the second value of control state data is configured to set the geometry shading stale into a second mode of operation.

14. The processor according to claim 13 , wherein in the first mode of operation each output primitive is independent and in the second mode of operation connectivity of primitives is maintained.

15. The processor according to claim 14 , wherein in the first mode of operation of the geometry shading stage, each input primitive is processed by processing each of the vertices in that input primitive, and wherein in the second mode of operation of the geometry shading stage, each input primitive is processed by processing only those vertices of that input primitive that have not been previously processed.

16. The processor according to claim 14 , wherein the geometry shading stage is configured to switch between the first and second modes of operation based on the control state data.

17. A method of controlling operation of a geometry shading stage in a graphics processing system, the method comprising:

receiving, in a compiler, a geometry shader for execution by the geometry shading stage;

analyzing the geometry shader to determine whether it passes through topology of primitives input to the geometry shader, duplicates the topology into a plurality of parallel streams or modifies the topology of the primitives input to the geometry shader;

in response to determining that the geometry shader modifies the topology of the primitives input to the geometry shader, outputting geometry shader code that is not in a prior stale of a graphics pipeline implemented within the graphics system; and

in response to determining that the geometry shader passes through topology of primitives input to the geometry shader or duplicates the topology into a plurality of parallel streams, including geometry shader code in a prior stage of a graphics pipeline implemented within the graphics processing system.

18. The method according to claim 17 , wherein the prior stage of the graphics pipeline is a vertex processing stage.

19. A computing device arranged to control operation of a geometry shading stage in a graphics processing system, the computing device comprising:

a processor; and

memory storing computer executable instructions that when executed cause the computing device to:

receive a geometry shader for execution by the geometry shading stage;

analyze the geometry shader to determine whether it passes through topology of primitives input to the geometry shader, duplicates the topology into a plurality of parallel streams or modifies the topology of the primitives input to the geometry shader;

in response to determining that the geometry shader modifies the topology of the primitives input to the geometry shader, output geometry shader code that is not in a prior stage of a graphics pipeline implemented within the graphics system; and

in response to determining that the geometry shader passes through topology of primitives input to the geometry shader or duplicates the topology into a plurality of parallel streams, include geometry shader code in a prior stage of a graphics pipeline implemented within the graphics processing system.

Assignments (2)
SECURITY INTEREST Recorded Jul 31, 2024
From: IMAGINATION TECHNOLOGIES LIMITED
To: FORTRESS INVESTMENT GROUP (UK) LTD
Reel/Frame 068221/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2019
From: HOWSON, JOHN W.
To: IMAGINATION TECHNOLOGIES LIMITED
Reel/Frame 048164/0288 →