Incremental Draw Command Conversion to Reduce GPU Idle Time
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing OpenGL-to-Vulkan drawing command conversion technologies result in inefficient GPU utilization due to the CPU completing the conversion of an entire render pass before submitting commands to the GPU, leading to wasted resources and reduced frame rates.
Innovation Solution
A method where the CPU converts and submits Vulkan-based drawing commands to the GPU incrementally, determining the number of commands based on GPU load and frame rate, allowing for dynamic control of command submission to maximize GPU utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the CPU completes the conversion of an entire render pass before submitting commands to the GPU, then the conversion process is simple and straightforward, but the GPU utilization becomes inefficient and frame rates are reduced
Solution Approach 1:
The patent segments the render pass into multiple batches of drawing commands. Instead of converting the entire render pass at once, the CPU converts and submits commands in incremental batches to the GPU. This allows the GPU to start executing commands earlier while the CPU continues converting remaining commands, thereby improving GPU utilization without excessively increasing CPU conversion time.
Solution Approach 2:
The patent performs preliminary conversion and submission of drawing command batches before the entire render pass conversion is complete. By submitting batches to the GPU in advance, the GPU can begin processing earlier, reducing idle time and improving overall productivity while the CPU continues converting subsequent batches.
2Reliability
If the CPU converts and submits all drawing commands before GPU execution, then command conversion is complete and accurate, but the GPU remains idle during the conversion process
Solution Approach 1:
The patent divides the drawing commands into multiple batches and submits them incrementally to the GPU. This segmentation allows the GPU to receive and execute commands continuously rather than remaining idle, while the CPU maintains conversion accuracy by processing each batch systematically before submission.
Solution Approach 2:
The patent ensures continuous useful action for the GPU by maintaining a steady stream of command batches being submitted during the conversion process. The GPU remains actively processing commands throughout the render pass conversion, eliminating idle time while the CPU continues converting subsequent batches in the background.
3Productivity
If incremental command submission is implemented, then GPU utilization is improved, but the complexity of the command processing system increases
Solution Approach 1:
The patent segments the rendering process into discrete batches that can be independently converted and submitted. This modular approach improves GPU utilization through incremental submission while managing system complexity by breaking down the processing into manageable, standardized units that can be handled by existing graphics pipeline components.
Data Source
Figure 1
Figure 2
Figure 3~4
AI summary
A drawing command processing method is disclosed. Vulkan-based instructions are submitted to a GPU after some OpenGL-based instructions rather than all OpenGL-based instructions in one render pass are converted into the Vulkan-based instructions, to avoid low GPU utilization caused because a CPU does not submit the Vulkan-based commands to the GPU in time in a process of converting the OpenGL-based commands into the Vulkan-based commands. This can maximize GPU utilization in some game scenarios, and improve a frame rate.