IP Library Granted Patent US 9,286,647
Granted Patent B2
US 9,286,647 · App. 13/795,693 · Granted Mar 15, 2016

Pixel shader bypass for low power graphics rendering

Inventors: Eric B. Lum (San Jose, CA); Justin Cobb (Toney, AL); Rui M. Bastos (Porto Alegre, BR); Christian Rouet (San Francisco, CA)
Assignee: NVIDIA Corporation
G06T1/20G06T11/40G06T15/005
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,286,647
App. No.
13/795,693
Granted
Mar 15, 2016
Kind
B2
Abstract

A computer-implemented method for drawing graphical objects within a graphics processing pipeline is disclosed. The method includes determining that a bypass mode for a first primitive is a no-bypass mode. The method further includes rasterizing the first primitive to generate a first set of rasterization results. The method further includes generating a first set of colors for the first set of rasterization results via a pixel shader unit. The method further includes rasterizing a second primitive to generate a second set of rasterization results. The method further includes generating a second set of colors for the second set of rasterization results without the pixel shader unit performing any processing operations on the second set of rasterization results. The method further includes transmitting the first set of pixel colors and the second set of pixel colors to a raster operations (ROP) unit for further processing.

Claims (47)

1. A computer-implemented method for drawing graphical objects within a graphics processing pipeline, the method comprising:

determining that a bypass mode for a first primitive is a no-bypass mode;

rasterizing the first primitive to generate a first set of rasterization results;

generating a first set of colors for the first set of rasterization results via a pixel shader unit;

rasterizing a second primitive to generate a second set of rasterization results;

generating a second set of colors for the second set of rasterization results without the pixel shader unit performing any processing operations on the second set of rasterization results; and

transmitting the first set of pixel colors and the second set of pixel colors to a raster operations (ROP) unit for further processing.

2. The method of claim 1 , further comprising:

determining that a bypass mode for the second primitive is a textured bypass mode; and

calculating texture coordinates for the second set of rasterization results via a texture coordinate generator.

3. The method of claim 2 , further comprising fetching colors from a texture unit based on the texture coordinates.

4. The method of claim 3 , further comprising idling the pixel shader unit while the second set of colors is generated.

5. The method of claim 1 , further comprising:

determining that a bypass mode for the second primitive is a fixed-color bypass mode; and

determining a fixed color for the second set of rasterization results.

6. The method of claim 5 , further comprising transmitting the second set of colors to the ROP unit without either a texture coordinate generator unit or a texture unit performing any processing operations on the second set of colors.

7. The method of claim 6 , further comprising idling the pixel shader unit while the second set of colors is generated.

8. The method of claim 1 , further comprising:

determining that a bypass mode for the second primitive is a gradient color bypass mode;

calculating linear gradient colors via a texture coordinate generator; and

setting the second set of colors to be equal to the calculated linear gradient colors.

9. A graphics processing unit configured to draw graphical objects, comprising:

a rasterizer configured to rasterize a first primitive and a second primitive to generate a first set of rasterization results and a second set of rasterization results;

a pixel shader unit configured to determine that a bypass mode for the first primitive is a no-bypass mode and generate a first set of pixel colors for the first set of rasterization results; and

a raster operations (ROP) unit configured to receive the first set of pixel colors and a second set of pixel colors, wherein the second set of pixel colors are for the second set of rasterization results and are generated without the pixel shader unit performing any processing operations on the second set of rasterization results.

10. The graphics processing unit of claim 9 , wherein:

the rasterizer is configured to determine that a bypass mode for the second primitive is a textured bypass mode, and

a texture coordinate generator is configured to calculate texture coordinates for the second set of rasterization results.

11. The graphics processing unit of claim 10 , wherein the texture coordinate generator is configured to send the texture coordinates to a texture unit.

12. The graphics processing unit of claim 11 , wherein calculating the texture coordinates further comprises calculating the texture coordinates via fixed point arithmetic.

13. The graphics processing unit of claim 12 , wherein the second primitive is processed without a geometry processing unit performing any processing operations on the second primitive.

14. The graphics processing unit of claim 11 , wherein the pixel shader unit is configured to idle while the second set of colors is generated.

15. The graphics processing unit of claim 9 , wherein:

the rasterizer is configured to determine that a bypass mode is a fixed color bypass mode for the second primitive; and

the rasterizer is configured to determine a fixed color for the second set of rasterization results.

16. The graphics processing unit of claim 15 , wherein generating the second set of colors comprises setting each color in the second set of colors to be equal to the fixed color.

17. The graphics processing unit of claim 16 , wherein the rasterizer is configured to send the second set of colors to the ROP unit without either a texture coordinate generator unit or a texture unit performing any processing operations on the second set of colors.

18. The graphics processing unit of claim 17 , wherein the pixel shader unit is configured to idle while the second set of colors is generated.

19. The graphics processing unit of claim 9 , wherein:

the rasterizer is configured to determine that a bypass mode is a gradient color bypass mode for the second primitive,

a texture coordinate generator is configured to calculate gradient colors, and

the rasterizer is configured to set the second set of colors to be equal to the calculated gradient colors.

20. A computing device comprising:

a graphics processing unit that includes:

a rasterizer configured to rasterize a first primitive and a second primitive to generate a first set of rasterization results and a second set of rasterization results,

a pixel shader unit configured to determine that a bypass mode for the first primitive is a no-bypass mode, and generate a first set of colors for the first set of rasterization results, and

a raster operations (ROP) unit configured to receive the first set of pixel colors and a second set of pixel colors, wherein the second set of pixel colors are for the second set of rasterization results and are generated without the pixel shader unit performing any processing operations on the second set of rasterization results.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2013
From: LUM, ERIC B.; COBB, JUSTIN; BASTOS, RUI M.; ROUET, CHRISTIAN
To: NVIDIA CORPORATION
Reel/Frame 029972/0421 →
Continuity (1)
Related Publication 20140267318A1 · Sep 18, 2014