Techniques for maintaining atomicity and ordering for pixel shader operations
First Claim
1. A graphics processing pipeline, comprising:
- a tile coalescer that receives a first coverage sample and a second coverage sample in an application programming interface order; and
a thread management unit that is coupled to the tile coalescer and causes a first thread group to perform a first operation based on a first dataset that includes the first coverage sample, and causes a second thread group to perform a second operation based on a second dataset that includes the second coverage sample, wherein the first thread group and the second thread group execute on one or more multiprocessors in the application programming interface order;
wherein the tile coalescer and thread management unit are implemented within a processor circuit that includes the one or more multiprocessors.
1 Assignment
0 Petitions
Accused Products
Abstract
A tile coalescer within a graphics processing pipeline coalesces coverage data into tiles. The coverage data indicates, for a set of XY positions, whether a graphics primitive covers those XY positions. The tile indicates, for a larger set of XY positions, whether one or more graphics primitives cover those XY positions. The tile coalescer includes coverage data in the tile only once for each XY position, thereby allowing the API ordering of the graphics primitives covering each XY position to be preserved. The tile is then distributed to a set of streaming multiprocessors for shading and blending operations. The different streaming multiprocessors execute thread groups to process the tile. In doing so, those thread groups may perform read-modify-write operations with data stored in memory. Each such thread group is scheduled to execute via atomic operations, and according to the API order of the associated graphics primitives.
4 Citations
25 Claims
-
1. A graphics processing pipeline, comprising:
-
a tile coalescer that receives a first coverage sample and a second coverage sample in an application programming interface order; and a thread management unit that is coupled to the tile coalescer and causes a first thread group to perform a first operation based on a first dataset that includes the first coverage sample, and causes a second thread group to perform a second operation based on a second dataset that includes the second coverage sample, wherein the first thread group and the second thread group execute on one or more multiprocessors in the application programming interface order; wherein the tile coalescer and thread management unit are implemented within a processor circuit that includes the one or more multiprocessors. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer-implemented method, comprising:
-
receiving a first coverage sample and a second coverage sample in an application programming interface order; causing a first thread group to perform a first operation based on the first coverage sample; and causing a second thread group to perform a second operation based on the second coverage sample, wherein the first thread group and the second thread group execute on one or more multiprocessors in the application programming interface order. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to perform the steps of:
-
receiving a first coverage sample in an application programming interface order; causing a first thread group to perform a first operation based on a first dataset that includes the first coverage sample, wherein the first thread group executes on one or more multiprocessors in the application programming interface order. - View Dependent Claims (25)
-
Specification