System and method for buffering multiple frames while controlling latency
First Claim
1. A method of managing multiple frame buffers, comprising the steps of:
- (1) maintaining a queue of two or more frame buffers, wherein at least one frame buffer is unnamed;
(2) naming a newest frame buffer appended to said queue to be a front buffer;
(3) causing an oldest frame buffer in said queue to be displayed, wherein said oldest frame buffer is unnamed;
(4) naming a frame buffer not in said queue to be a back buffer;
(5) enabling rendering of an entire frame into said back buffer; and
(6) removing said oldest frame buffer from said queue after expiration of a frame time of said oldest frame buffer.
5 Assignments
0 Petitions
Accused Products
Abstract
A system and method for managing multiple frame buffers. The system includes multiple frame buffers, and thus reduces the risk of dropped frames. The system controls and bounds render-to-display latency, and provides an application friendly and effective interface to the frame buffers. The system operates by estimating a latency of a frame that is yet to be rendered. The system determines whether the latency is greater than a target latency. If the latency is greater than the target latency, then the system blocks the application that is responsible for rendering the frame before rendering of the frame commences. As a result, render-to-display latency is bounded to the target latency. The system addresses the naming issue by providing the application with access to only the front buffer and the back buffer. In particular, the present system maintains a queue of one or more frame buffers. The newest frame buffer appended to the queue is considered to be the front buffer. The oldest frame buffer in the queue is displayed. A frame buffer not in the queue is considered to be the back buffer. Rendering is enabled to the back buffer. Once rendering to the back buffer is complete, the back buffer is appended to the queue and becomes the new front buffer.
-
Citations
10 Claims
-
1. A method of managing multiple frame buffers, comprising the steps of:
-
(1) maintaining a queue of two or more frame buffers, wherein at least one frame buffer is unnamed; (2) naming a newest frame buffer appended to said queue to be a front buffer; (3) causing an oldest frame buffer in said queue to be displayed, wherein said oldest frame buffer is unnamed; (4) naming a frame buffer not in said queue to be a back buffer; (5) enabling rendering of an entire frame into said back buffer; and (6) removing said oldest frame buffer from said queue after expiration of a frame time of said oldest frame buffer. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system for managing multiple frame buffers, comprising:
-
means for maintaining a queue of two or more frame buffers, wherein at least one frame buffer is unnamed; means for naming a newest frame buffer appended to said queue to be a front buffer; means for causing an oldest frame buffer in said queue to be displayed, wherein said oldest frame buffer is unnamed; means for naming a frame buffer not in said queue to be a back buffer; means for enabling rendering of an entire frame into said back buffer; and means for removing said oldest frame buffer from said queue after expiration of a frame time of said oldest frame buffer. - View Dependent Claims (7, 8, 9, 10)
-
Specification