IP Library Granted Patent US 9,342,857
Granted Patent B2
US 9,342,857 · App. 13/853,531 · Granted May 17, 2016

Techniques for locally modifying draw calls

Inventors: Christoph Kubisch (Aachen, DE); Markus Tavenrath (Aachen, DE)
Assignee: NVIDIA Corporation
G06T1/20
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,342,857
App. No.
13/853,531
Granted
May 17, 2016
Kind
B2
Abstract

One embodiment sets forth a method for modifying draw calls using a draw-call shader program included in a processing subsystem configured to process draw calls. The draw call shader receives a draw call from a software application, evaluates graphics state information included in the draw call, generates modified graphics state information, and generates a modified draw call that includes the modified graphics state information. Subsequently, the draw-call shader causes the modified draw call to be executed within a graphics processing pipeline. By performing the computations associated with generating the modified draw call on-the-fly within the processing subsystem, the draw-call shader decreases the amount of system memory required to render graphics while increasing the overall processing efficiency of the graphics processing pipeline.

Claims (39)

1. A method for processing draw calls in a processing subsystem, the method comprising:

receiving a draw call from a software application;

evaluating graphics state information included in the draw call;

generating, via a shader program executed by a graphics processing unit (GPU), modified graphics state information;

generating a modified draw call that includes the modified graphics state information; and

causing the modified draw call to be executed within a graphics processing pipeline.

2. The method of claim 1 , wherein the graphics state information includes geometry state information.

3. The method of claim 2 , wherein evaluating the graphics state information includes determining that modified geometry state information should be generated.

4. The method of claim 3 , wherein generating the modified geometry state information includes generating one or more modified draw call parameters.

5. The method of claim 4 , wherein the one or more modified draw call parameters include at least one of a base index, a base vertex, and count data.

6. The method of claim 1 , wherein the graphics state information includes shader state information.

7. The method of claim 6 , wherein evaluating the graphics state information includes determining that modified shader state information should be generated.

8. The method of claim 7 , wherein generating the modified shader state information includes generating modified API state information.

9. The method of claim 8 , wherein the modified API state information includes at least one of a global memory, a shader parameter, a subroutine, and vertex attribute data.

10. The method of claim 1 , wherein causing the modified draw call to be executed within a graphics processing pipeline does not result in image data being rendered for display.

11. A non-transitory computer-readable storage medium including instructions that, when executed by a processing unit, cause the processing unit to process draw calls by performing the steps of:

receiving a draw call from a software application;

evaluating graphics state information included in the draw call;

generating, via a shader program executed by a graphics processing unit (GPU), modified graphics state information;

generating a modified draw call that includes the modified graphics state information; and

causing the modified draw call to be executed within a graphics processing pipeline.

12. The non-transitory computer-readable storage medium of claim 11 , wherein the graphics state information includes geometry state information.

13. The non-transitory computer-readable storage medium of claim 12 , wherein evaluating the graphics state information includes determining that modified geometry state information should be generated.

14. The non-transitory computer-readable storage medium of claim 13 , wherein generating the modified geometry state information includes generating one or more modified draw call parameters.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the one or more modified draw call parameters include at least one of a base index, a base vertex, and count data.

16. The non-transitory computer-readable storage medium of claim 11 , wherein the graphics state information includes shader state information.

17. The non-transitory computer-readable storage medium of claim 16 , wherein evaluating the graphics state information includes determining that modified shader state information should be generated.

18. The non-transitory computer-readable storage medium of claim 17 , wherein generating the modified shader state information includes generating modified API state information.

19. The non-transitory computer-readable storage medium of claim 18 , wherein the modified API state information includes at least one of a global memory, a shader parameter, a subroutine, and vertex attribute data.

20. The non-transitory computer-readable storage medium of claim 11 , wherein causing the modified draw call to be executed within a graphics processing pipeline does not result in image data being rendered for display.

21. A system, comprising:

a memory; and

a graphics processing unit (GPU) coupled to the memory and configured to:

receive a draw call;

evaluate graphics state information included in the draw call;

generate modified graphics state information via a shader program;

generate a modified draw call that includes the modified graphics state information; and

cause the modified draw call to be executed within a graphics processing pipeline.

22. The system of claim 21 , wherein the memory stores instruction that, when executed by the processing unit, cause the processing unit to receive the draw call, evaluate the graphics state information, generate the modified graphics state information, generate the modified draw call, and cause the modified draw call to be executed.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2013
From: KUBISCH, CHRISTOPH; TAVENRATH, MARKUS
To: NVIDIA CORPORATION
Reel/Frame 030731/0258 →
Continuity (1)
Related Publication 20140292771A1 · Oct 2, 2014