Techniques for maintaining atomicity and ordering for pixel shader operations
First Claim
1. A graphics subsystem configured to generate tiles of coverage samples, the subsystem comprising:
- a first bin buffer that collects arrays of coverage samples associated with a first range of X-Y values; and
a tile engine that is coupled to the first bin buffer and;
drains a first array of coverage samples from the first bin buffer,compares the first array of coverage samples to a tile mask to determine that a first tile does not yet include a coverage sample at a first X-Y position, andinserts a first coverage sample included in the first array of coverage samples into the first tile.
2 Assignments
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.
-
Citations
22 Claims
-
1. A graphics subsystem configured to generate tiles of coverage samples, the subsystem comprising:
-
a first bin buffer that collects arrays of coverage samples associated with a first range of X-Y values; and a tile engine that is coupled to the first bin buffer and; drains a first array of coverage samples from the first bin buffer, compares the first array of coverage samples to a tile mask to determine that a first tile does not yet include a coverage sample at a first X-Y position, and inserts a first coverage sample included in the first array of coverage samples into the first tile. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer-implemented method for generating tiles of coverage samples, the method comprising:
-
collecting arrays of coverage samples associated with a first range of X-Y values into a first bin; draining a first array of coverage samples from the first bin; comparing the first array of coverage samples to a tile mask to determine that a first tile does not yet include a coverage sample at a first X-Y position; and inserting a first coverage sample included in the first array of coverage samples into the first tile. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A computing device, comprising:
-
a raster unit that generates coverage samples, wherein the raster unit is executed by a parallel processor; and a graphics subsystem, including; a first bin buffer that collects arrays of coverage samples associated with a first range of X-Y values, and a tile engine that is coupled to the first bin buffer and; drains a first array of coverage samples from the first bin buffer, compares the first array of coverage samples to a tile mask to determine that a first tile does not yet include a coverage sample at a first X-Y position, and inserts a first coverage sample included in the first array of coverage samples into the first tile. - View Dependent Claims (19, 20, 21, 22)
-
Specification