Frame Buffer Queue Expansion for Smooth High-Velocity Scrolling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modern Android devices experience visual discontinuities (janks) during high-velocity interactions due to the limitations of the three-buffer rendering pipeline, which fail to maintain frame generation under computational load, leading to severe performance degradation and observable stutters.
Innovation Solution
Implementing a pre-trained reinforcement learning model to determine a maximum frame buffer queue size (MFBQS) and trigger artificial VSYNC pulses to dynamically increase the buffer queue, coupled with an Animation Timeline Manager to adjust animations uniformly, ensuring smooth scroll performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If the three-buffer rendering pipeline is used, then device complexity is reduced, but frame generation capability deteriorates under high computational load
Solution Approach 1:
The patent implements dynamic buffer allocation where the buffer queue size is not fixed but can expand based on system conditions. The buffer manager allocates additional buffers from a pool when frame generation demand exceeds the standard three-buffer capacity, allowing the system to adapt its buffer management complexity dynamically to match rendering workload requirements.
Solution Approach 2:
The patent changes the parameter of buffer queue size from a static constraint to a variable resource. By allowing the buffer queue length to change based on frame rendering status and system availability, the system can maintain high frame generation capability during intensive rendering periods while using minimal buffers during normal operation.
2Productivity
If the buffer queue size is increased, then frame generation capability is improved, but device complexity increases
Solution Approach 1:
The buffer manager operates autonomously by monitoring frame rendering status and automatically allocating buffers from a pre-pooled resource without requiring manual intervention or complex external control. The system self-regulates buffer allocation based on simple conditions (frame rendering completion status), maintaining high frame generation capability while keeping management complexity low through self-service mechanisms.
Solution Approach 2:
The patent implements preliminary buffer pooling where additional buffers are allocated and prepared in advance during low-demand periods. This preliminary action ensures that when high frame generation demand occurs, the necessary buffers are already available, allowing the system to maintain high productivity without complex real-time allocation decisions.
3Productivity
If artificial VSYNC pulses are triggered frequently, then animation fluidity is improved, but energy consumption increases
Solution Approach 1:
The buffer manager uses feedback from frame rendering status to control artificial VSYNC pulse generation. By monitoring whether frames are successfully rendered and queued, the system adjusts pulse triggering based on actual rendering conditions, ensuring animation fluidity is maintained only when necessary and avoiding unnecessary energy consumption during periods when rendering is already successful or blocked.
Solution Approach 2:
The patent implements periodic artificial VSYNC pulse triggering that synchronizes with the display refresh rate rather than continuous operation. This periodic action maintains animation fluidity by ensuring frames are presented at appropriate intervals while allowing the system to remain inactive during periods when no new frames are available, thereby reducing overall energy consumption.
Data Source
AI summary
An electronic device may create a maximum number of frames in a frame buffer queue for a foreground application based on a plurality of frame metrics, detect a scroll operation performed on the foreground application, determine a frame rendering duration of at least one frame based on an idle time on a main thread of the foreground application after detecting the scroll operation, generate an artificial synchronization pulse for creation of additional frames for the foreground application based on the frame rendering duration of the at least one frame, adjust a timeline of a scroll animation created independently of a display synchronization pulse, and display the additional frames by filling the additional frames into the frame buffer queue until the frame buffer queue reaches a maximum capacity.


