IP Library Granted Patent US 9,547,930
Granted Patent B2
US 9,547,930 · App. 13/553,709 · Granted Jan 17, 2017

Hardware switching between direct rendering and binning in graphics processing

Inventors: Avinash Seetharamaiah (Chuluota, FL); Christopher Paul Frascati (Oviedo, FL)
Assignee: QUALCOMM Incorporated
G06T15/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,547,930
App. No.
13/553,709
Granted
Jan 17, 2017
Kind
B2
Abstract

This disclosure presents techniques and structures for determining a rendering mode (e.g., a binning rendering mode and a direct rendering mode) as well as techniques and structures for switching between such rendering modes. Rendering mode may be determined by analyzing rendering characteristics. Rendering mode may also be determined by tracking overdraw in a bin. The rendering mode may be switched from a binning rendering mode to a direct rendering mode by patching commands that use graphics memory addresses to use system memory addresses. Patching may be handled by a CPU or by a second write command buffer executable by a GPU.

Claims (73)

1. A method of graphics processing comprising:

generating first commands for rendering a frame, wherein the first commands are for a binning rendering mode;

tracking the first commands that use graphics memory addresses;

storing the first commands for executing a graphics operation in a first buffer;

generating second commands, wherein the second commands alter the first commands that use graphics memory addresses to be first commands that use system memory addresses;

storing the second commands in a second buffer, wherein the second commands, when executed, alter the first commands in the first buffer to create altered first commands;

determining one of a plurality of rendering modes for the frame based on rendering characteristics, wherein the plurality of rendering modes includes the binning rendering mode and a direct rendering mode; and

causing the second commands in the second buffer to be executed in the case that the determined rendering mode is the direct rendering mode.

2. The method of claim 1 , wherein the first commands and the second commands are executed by a graphics processor.

3. The method of claim 1 , further comprising:

causing the second commands in the second buffer to be executed; and

causing the altered first commands in the first buffer to be executed after causing the second commands in the second buffer to be executed.

4. The method of claim 3 , wherein the first commands include rendering commands for the binning rendering mode, and wherein the second commands alter the rendering commands for a binning rendering mode to rendering commands for the direct rendering mode.

5. The method of claim 1 , wherein the rendering characteristics include at least one of size and type of a render target, depth test status, complexity of shaders, number of primitives drawn, number of texture reads, size of textures, and a micro-tiling mode.

6. The method of claim 1 , wherein determining one of the plurality of rendering modes further comprises determining one of the plurality of rendering modes based on rendering characteristics of a current frame.

7. The method of claim 1 , wherein determining one of the plurality of rendering modes further comprises determining one of the plurality of rendering modes based on rendering characteristics of a current frame and previously rendered frames.

8. An apparatus configured for graphics processing comprising:

means for generating first commands for rendering a frame, wherein the first commands are for a binning rendering mode;

means for tracking the first commands that use graphics memory addresses;

means for storing the first commands for executing a graphics operation in a first buffer;

means for generating second commands, wherein the second commands alter the first commands that use graphics memory addresses to be first commands that use system memory addresses;

means for storing the second commands in a second buffer, wherein the second commands, when executed, alter the first commands in the first buffer to create altered first commands;

means for generating the first commands for rendering a frame, wherein the first commands are for a binning rendering mode;

means for determining one of a plurality of rendering modes for the frame based on rendering characteristics, wherein the plurality of rendering modes includes the binning rendering mode and a direct rendering mode; and

means for causing the second commands in the second buffer to be executed in the case that the determined rendering mode is the direct rendering mode.

9. The apparatus of claim 8 , wherein the first commands and the second commands are executed by a graphics processor.

10. The apparatus of claim 8 , further comprising:

means for causing the second commands in the second buffer to be executed; and

means for causing the altered first commands in the first buffer to be executed after causing the second commands in the second buffer to be executed.

11. The apparatus of claim 10 , wherein the first commands include rendering commands for a binning rendering mode, and wherein the second commands alter the rendering commands for the binning rendering mode to rendering commands for the direct rendering mode.

12. The apparatus of claim 8 , wherein the rendering characteristics include at least one of size and type of a render target, depth test status, complexity of shaders, number of primitives drawn, number of texture reads, size of textures, and a micro-tiling mode.

13. The apparatus of claim 8 , wherein the means for determining one of the plurality of rendering modes further comprises means for determining one of the plurality of rendering modes based on rendering characteristics of a current frame.

14. The apparatus of claim 8 , wherein the means for determining one of the plurality of rendering modes further comprises means for determining one of the plurality of rendering modes based on rendering characteristics of a current frame and previously rendered frames.

15. An apparatus configured for graphics processing comprising:

a first buffer;

a second buffer;

a processor configured to:

generate the first commands for rendering a frame, wherein the first commands are for a binning rendering mode;

track first commands that use graphics memory addresses;

store the first commands for executing a graphics operation in the first buffer;

generate second commands, wherein the second commands alter the first commands that use graphics memory addresses to be first commands that use system memory addresses;

store the second commands in the second buffer, wherein the second commands, when executed, alter the first commands in the first buffer to create altered first commands;

determine one of a plurality of rendering modes for the frame based on rendering characteristics, wherein the plurality of rendering modes includes the binning rendering mode and a direct rendering mode; and

cause the second commands in the second buffer to be executed in the case that the determined rendering mode is the direct rendering mode.

16. The apparatus of claim 15 , wherein the first commands and the second commands are executed by a graphics processor.

17. The apparatus of claim 15 , wherein the processor is further configured to:

cause the second commands in the second buffer to be executed; and

cause the altered first commands in the first buffer to be executed after causing the second commands in the second buffer to be executed.

18. The apparatus of claim 17 , wherein the first commands include rendering commands for the binning rendering mode, and wherein the second commands alter the rendering commands for the binning rendering mode to rendering commands for a direct rendering mode.

19. The apparatus of claim 15 , wherein the rendering characteristics include at least one of size and type of a render target, depth test status, complexity of shaders, number of primitives drawn, number of texture reads, size of textures, and a micro-tiling mode.

20. The apparatus of claim 15 , wherein the processor is further configured to:

determine one of the plurality of rendering modes based on rendering characteristics of a current frame.

21. The apparatus of claim 15 , wherein the processor is further configured to:

determine one of the plurality of rendering modes based on rendering characteristics of a current frame and previously rendered frames.

22. The apparatus of claim 15 , wherein the processor is in a mobile device.

23. A non-transitory computer-readable storage medium storing instructions that, when executed, cause a processor of a device configured for graphics processing to:

generate first commands for rendering a frame, wherein the first commands are for a binning rendering mode;

track the first commands that use graphics memory addresses;

store first commands for executing a graphics operation in a first buffer;

generate second commands, wherein the second commands alter the first commands that use graphics memory addresses to be first commands that use system memory addresses;

store the second commands in a second buffer, wherein the second commands, when executed, alter the first commands in the first buffer to create altered first commands;

determine one of a plurality of rendering modes for the frame based on rendering characteristics, wherein the plurality of rendering modes includes the binning rendering mode and a direct rendering mode; and

cause the second commands in the second buffer to be executed in the case that the determined rendering mode is the direct rendering mode.

24. The computer-readable storage medium of claim 23 , wherein the first commands and the second commands are executed by a graphics processor.

25. The computer-readable storage medium of claim 23 , wherein the instructions further cause a processor to:

cause the second commands in the second buffer to be executed; and

cause the altered first commands in the first buffer to be executed after causing the second commands in the second buffer to be executed.

26. The computer-readable storage medium of claim 25 , wherein the first commands include rendering commands for the binning rendering mode, and wherein the second commands alter the rendering commands for a binning rendering mode to rendering commands for the direct rendering mode.

27. The computer-readable storage medium of claim 23 , wherein the rendering characteristics include at least one of size and type of a render target, depth test status, complexity of shaders, number of primitives drawn, number of texture reads, size of textures, and a micro-tiling mode.

28. The computer-readable storage medium of claim 23 , wherein the instructions further cause a processor to:

determine one of the plurality of rendering modes based on rendering characteristics of a current frame.

29. The computer-readable storage medium of claim 23 , wherein the instructions further cause a processor to:

determine one of the plurality of rendering modes based on rendering characteristics of a current frame and previously rendered frames.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2012
From: SEETHARAMAIAH, AVINASH; FRASCATI, CHRISTOPHER PAUL
To: QUALCOMM INCORPORATED
Reel/Frame 028592/0823 →
Continuity (2)
Provisional Application 61565397 · Nov 30, 2011
Related Publication 20130135341A1 · May 30, 2013