GPU Draw Command Reduction via Scene Graph Texture Caching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current graphics rendering technologies, particularly in mobile devices, suffer from high power consumption and performance issues due to the need to redraw every single primitive and frame, leading to redundant work and inefficient use of resources.
Innovation Solution
The method involves generating scene graphs for multiple frames and identifying common portions, replacing multiple nodes with a single draw command that retrieves and displays a texture from memory, thereby reducing the number of draw commands issued to the GPU.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If every primitive and frame is redrawn, then rendering completeness is maintained, but power consumption increases and performance deteriorates
Solution Approach 1:
The patent merges identical nodes across multiple frames into a single shared node. When a node in the current frame matches a node in a previous frame (same primitive type, position, orientation, and texture), the system reuses the previous frame's rendered texture instead of redrawing. This combining approach maintains rendering completeness while eliminating redundant draw calls, directly reducing power consumption and improving performance.
Solution Approach 2:
The system performs preliminary rendering of common portions in earlier frames and stores the results as textures. By preparing and caching these common portions in advance, the system avoids redundant rendering work in subsequent frames, reducing the computational burden and power consumption required for each new frame while maintaining complete and accurate rendering.
2Reliability
If every primitive and frame is redrawn, then rendering completeness is maintained, but rendering time increases
Solution Approach 1:
The patent merges identical nodes across multiple frames into a single shared node. When a node in the current frame matches a node in a previous frame (same primitive type, position, orientation, and texture), the system reuses the previous frame's rendered texture instead of redrawing. This combining approach maintains rendering completeness while eliminating redundant draw calls, directly reducing power consumption and improving performance.
Solution Approach 2:
The system performs preliminary rendering of common portions in earlier frames and stores the results as textures. By preparing and caching these common portions in advance, the system avoids redundant rendering work in subsequent frames, reducing the computational burden and power consumption required for each new frame while maintaining complete and accurate rendering.
3Manufacturing precision
If multiple draw commands are issued, then rendering accuracy is maintained, but GPU workload increases
Solution Approach 1:
The patent merges identical nodes across multiple frames into a single shared node. When a node in the current frame matches a node in a previous frame (same primitive type, position, orientation, and texture), the system reuses the previous frame's rendered texture instead of redrawing. This combining approach maintains rendering completeness while eliminating redundant draw calls, directly reducing power consumption and improving performance.
Solution Approach 2:
The system creates a copy of the rendered texture from previous frames and reuses it for identical nodes in current frames. Instead of issuing multiple draw commands to render the same primitive again, the system copies the pre-computed texture data and applies it, maintaining rendering accuracy while significantly reducing GPU workload and the number of draw commands.
Data Source
AI summary
An example method of reducing a number of draw commands issued to a GPU includes generating a first scene graph including a first set of nodes for rendering objects in a first frame and generating a second scene graph including a second set of nodes for rendering objects in a second frame. The method further includes identifying a common portion of the first and second frames. The common portion corresponds to a plurality of nodes in the first and second scene graphs that are the same. The method also includes replacing the plurality of nodes in the second scene graph with a single node including a single draw command that represents draw commands in the plurality of nodes. The single draw command causes the GPU to display the texture in the second frame. The texture is based on a rendering of the common portion in the first frame.


