IP Library Granted Patent US 9,905,037
Granted Patent B2
US 9,905,037 · App. 14/862,046 · Granted Feb 27, 2018

System, method, and computer program product for rejecting small primitives

Inventor: Pierre Serge Boudier (Los Gatos, CA)
Assignee: NVIDIA Corporation
G06T15/005G06T11/40
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,905,037
App. No.
14/862,046
Granted
Feb 27, 2018
Kind
B2
Abstract

A system, method, and computer program product are provided for rejecting small primitives. A three-dimensional (3D) primitive is received and a position within the primitive is identified. The primitive has a size that is less than a threshold value. Sub-pixel coverage information is read from a pixel sample map using the position. If the position coincides with a sub-pixel sample according to the sub-pixel coverage information, then the 3D primitive is processed. Otherwise, the 3D primitive is rejected.

Claims (45)

1. A method, comprising:

receiving, by a parallel processing unit including streaming multiprocessors that execute a plurality of threads concurrently, a three-dimensional (3D) primitive, wherein the primitive has a size that is less than a threshold value;

identifying a screen-space position within the primitive;

reading, from a pixel sample map that is stored in a memory, sub-pixel coverage information using the position, wherein the sub-pixel coverage information is a value representing a distance between the screen-space position and a location of a sub-pixel sample within a pixel;

comparing the distance with the size of the primitive to determine whether the screen-space position coincides with the sub-pixel sample; and

processing the primitive, by the parallel processing unit, if the screen-space position coincides with the sub-pixel sample, or rejecting the primitive if the screen-space position does not coincide with the sub-pixel sample.

2. The method of claim 1 , wherein the identifying comprises rasterizing of the primitive.

3. The method of claim 1 , wherein the parallel processing unit is a graphics processor that is configured to execute at least one of a vertex shader and a geometry shader.

4. The method of claim 1 , wherein a vertex shader and a fast geometry shader are run in sequence on a first streaming multiprocessor of the streaming multiprocessors to process the primitive.

5. The method of claim 1 , wherein the sub-pixel coverage information includes a single bit indicating whether the position is a location of a sub-pixel sample within a pixel.

6. The method of claim 1 , wherein the screen-space position is within a bounding volume that encloses the small 3D primitive.

7. The method of claim 6 , wherein the screen-space position is a center of the bounding volume.

8. The method of claim 1 , further comprising regenerating the pixel sample map when at least one sub-pixel sample location changes.

9. A method, comprising:

receiving, by a parallel processing unit including streaming multiprocessors that execute a plurality of threads concurrently, a three-dimensional (3D) primitive, wherein the primitive has a size that is less than a threshold value;

identifying a screen-space position within the primitive;

reading, from a pixel sample map that is stored in a memory, sub-pixel coverage information using the position, wherein the sub-pixel coverage information is a value representing a distance between the screen-space position and a location of a sub-pixel sample within a pixel; and

processing the primitive, by the parallel processing unit, when the size of the primitive is less than the distance, or rejecting the primitive when the size of the primitive is not less than the distance.

10. The method of claim 1 , further comprising:

rendering geometry representing each sub-pixel sample to produce rasterized sub-pixel coverage information for the geometry; and

storing the rasterized sub-pixel coverage information in the pixel sample map.

11. A method, comprising:

receiving, by a parallel processing unit including streaming multiprocessors that execute a plurality of threads concurrently, a three-dimensional (3D) primitive, wherein the primitive has a size that is less than a threshold value;

identifying a screen-space position within the primitive;

computing, for each location in a pixel sample map that is stored in a memory, a distance between the location and a nearest sub-pixel sample of rendered geometry within a pixel;

storing the distance at each location in the pixel sample map;

reading, using the screen-space position as the location, the distance from the pixel sample map to produce sub-pixel coverage information; and

processing the primitive, by the parallel processing unit, if the screen-space position coincides with a sub-pixel sample according to the sub-pixel coverage information, or rejecting the primitive if the screen-space position does not coincide with a sub-pixel sample according to the sub-pixel coverage information.

12. A non-transitory computer readable medium, storing instructions that, when executed by a processor, cause the processor to perform steps, comprising:

receiving, by a parallel processing unit including streaming multiprocessors that execute a plurality of threads concurrently, a three-dimensional (3D) primitive, wherein the primitive has a size that is less than a threshold value;

identifying a screen-space position within the primitive;

reading, from a pixel sample map that is stored in a memory, sub-pixel coverage information using the position, wherein the sub-pixel coverage information is a value representing a distance between the screen-space position and a location of a sub-pixel sample within a pixel;

comparing the distance with the size of the primitive to determine whether the screen-space position coincides with the sub-pixel sample; and

processing the primitive, by the parallel processing unit, if the screen-space position coincides with the sub-pixel sample, or rejecting the primitive if the screen-space position does not coincide with the sub-pixel sample.

13. A system, comprising:

a parallel processing unit that is coupled to a memory and includes streaming multiprocessors that execute a plurality of threads concurrently and are configured to:

receive a three-dimensional (3D) primitive, wherein the primitive has a size that is less than a threshold value;

identify a screen-space position within the primitive;

read, from a pixel sample map that is stored in the memory, sub-pixel coverage information using the position, wherein the sub-pixel coverage information is a value representing a distance between the screen-space position and a location of a sub-pixel sample within a pixel;

compare the distance with the size of the primitive to determine whether the screen-space position coincides with the sub-pixel sample; and

process the primitive if the screen-space position coincides with the sub-pixel sample, or rejecting the primitive if the screen-space position does not coincide with the sub-pixel sample.

14. The system of claim 13 , wherein the parallel processing unit comprises a cache and the entire pixel sample map is stored in the cache.

15. The system of claim 13 , wherein the parallel processing unit is a graphics processor configured to operate in a multi-sample rendering mode.

16. The system of claim 13 , wherein the identifying comprises rasterizing of the primitive.

17. The system of claim 13 , wherein a vertex shader and a fast geometry shader are run in sequence on a first streaming multiprocessor of the streaming multiprocessors to process the primitive.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2015
From: BOUDIER, PIERRE SERGE
To: NVIDIA CORPORATION
Reel/Frame 036634/0403 →
Continuity (1)
Related Publication 20170084078A1 · Mar 23, 2017