STOCHASTIC RASTERIZATION USING ENHANCED STENCIL OPERATIONS ON A GRAPHICS PROCESSING UNIT (GPU)
First Claim
Patent Images
1. A method of graphics processing, the method comprising:
- determining a plurality of bounding polygons that together cover an animation timeline of one or more primitives from a first frame to a second frame, wherein each bounding polygon covers a portion of the animation timeline, and wherein the animation timeline corresponds to a movement of the one or more primitives;
determining temporal values for samples within each of the bounding polygons based on a sampling pattern;
prior to samples of respective bounding polygons being processed by a pixel shader of a graphics pipeline of a graphics processing unit (GPU), determining which samples within respective bounding polygons are to be further processed based on temporal values for the samples within respective bounding polygons and respective different threshold conditions for each of the respective bounding polygons;
discarding from further processing a first set of the samples within a bounding polygon of the plurality of bounding polygons and maintaining a second set of the samples within the bounding polygon of the plurality of bounding polygons based on the determination, from a threshold condition for that bounding polygon, of which samples within the bounding polygon are to be further processed; and
executing one or more instances of the pixel shader to process the second set of samples of the bounding polygon.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are described for stochastic rasterization. A graphics processing unit (GPU) may discard samples of bounding polygons that together indicate movement of one or more primitives before a pixel shader process the samples. The GPU may leverage a stencil buffer and stencil test for discarding of such samples.
-
Citations
22 Claims
-
1. A method of graphics processing, the method comprising:
-
determining a plurality of bounding polygons that together cover an animation timeline of one or more primitives from a first frame to a second frame, wherein each bounding polygon covers a portion of the animation timeline, and wherein the animation timeline corresponds to a movement of the one or more primitives; determining temporal values for samples within each of the bounding polygons based on a sampling pattern; prior to samples of respective bounding polygons being processed by a pixel shader of a graphics pipeline of a graphics processing unit (GPU), determining which samples within respective bounding polygons are to be further processed based on temporal values for the samples within respective bounding polygons and respective different threshold conditions for each of the respective bounding polygons; discarding from further processing a first set of the samples within a bounding polygon of the plurality of bounding polygons and maintaining a second set of the samples within the bounding polygon of the plurality of bounding polygons based on the determination, from a threshold condition for that bounding polygon, of which samples within the bounding polygon are to be further processed; and executing one or more instances of the pixel shader to process the second set of samples of the bounding polygon. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A device for graphics processing, the device comprising:
-
a memory unit configured to store a sampling pattern; and a graphics processing unit (GPU) configured to; determine a plurality of bounding polygons that together cover an animation timeline of one or more primitives from a first frame to a second frame, wherein each bounding polygon covers a portion of the animation timeline, and wherein the animation timeline corresponds to a movement of the one or more primitives; determine temporal values for samples within each of the bounding polygons based on the stored sampling pattern; prior to samples of respective bounding polygons being processed by a pixel shader of a graphics pipeline of GPU, determine which samples within respective bounding polygons are to be further processed based on temporal values for the samples within respective bounding polygons and respective different threshold conditions for each of the respective bounding polygons; discard from further processing a first set of the samples within a bounding polygon of the plurality of bounding polygons and maintain a second set of the samples within the bounding polygon of the plurality of bounding polygons based on the determination, from a threshold condition for that bounding polygon, of which samples within the bounding polygon are to be further processed; and execute one or more instances of the pixel shader to process the second set of samples of the bounding polygon. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A computer-readable storage medium having instructions stored thereon that when executed cause one or more processors of a device for graphics processing to:
-
determine a plurality of bounding polygons that together cover an animation timeline of one or more primitives from a first frame to a second frame, wherein each bounding polygon covers a portion of the animation timeline, and wherein the animation timeline corresponds to a movement of the one or more primitives; determine temporal values for samples within each of the bounding polygons based on a sampling pattern; prior to samples of respective bounding polygons being processed by a pixel shader of a graphics pipeline of a graphics processing unit (GPU), determine which samples within respective bounding polygons are to be further processed based on temporal values for the samples within respective bounding polygons and respective different threshold conditions for each of the respective bounding polygons; discard from further processing a first set of the samples within a bounding polygon of the plurality of bounding polygons and maintain a second set of the samples within the bounding polygon of the plurality of bounding polygons based on the determination, from a threshold condition for that bounding polygon, of which samples within the bounding polygon are to be further processed; and execute one or more instances of the pixel shader to process the second set of samples of the bounding polygon.
-
-
22. A device for graphics processing, the device comprising:
-
means for determining a plurality of bounding polygons that together cover an animation timeline of one or more primitives from a first frame to a second frame, wherein each bounding polygon covers a portion of the animation timeline, and wherein the animation timeline corresponds to a movement of the one or more primitives; means for determining temporal values for samples within each of the bounding polygons based on a sampling pattern; means for determining which samples within respective bounding polygons are to be further processed based on temporal values for the samples within respective bounding polygons and respective different threshold conditions for each of the respective bounding polygons, prior to samples of respective bounding polygons being processed by a pixel shader of a graphics pipeline of a graphics processing unit (GPU); means for discarding from further processing a first set of the samples within a bounding polygon of the plurality of bounding polygons and means for maintaining a second set of the samples within the bounding polygon of the plurality of bounding polygons based on the determination, from a threshold condition for that bounding polygon, of which samples within the bounding polygon are to be further processed; and means for executing one or more instances of the pixel shader to process the second set of samples of the bounding polygon.
-
Specification