Method and apparatus for improved double buffering
First Claim
1. A method for improved display double buffering, the method comprises the steps of:
- a) receiving a series of frames of data at rate independent of a refresh rate of a display;
b) queuing commands of the series of frames of data, wherein the commands include graphics processing commands and a refresh synchronize command, wherein the commands are processed to render a current one of the series of frames of data to a first buffer;
c) when the synchronize command is detected, pausing processing of the commands;
d) detecting a next cycle of the refresh rate; and
e) when the refresh rate is detected, resuming processing of the commands to render a next one of the series of frames to a second buffer.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for improved double buffering within a computing system begins when a series of data blocks are received from a central processing unit at a rate independent of a processing rate of a recipient engine. For example, a video graphics circuit receives a series of data blocks representing video frames from the central processing unit at a rate independent of the refresh rate of the display. As the data blocks are received, the video graphics circuit queues commands of the data blocks. Typically, the commands include processing commands and a processing rate synchronize command. To process the data blocks, the co-processor pulls commands from the queued list and processes them to produce recipient data. As the co-processor is producing the recipient data, it is utilizing a first buffer. The co-processor continues to process the commands and storing the results into the first buffer until the processing rate synchronize command is detected. At this point, the co-processor pauses processing of the commands. At the beginning of the next cycle of the processing rate, the recipient data is provided from the first buffer to the recipient engine and the co-processor resumes processing of commands, which relate to another data block. As the co-processor is processing the commands of the second data block, it is utilizing a second buffer to store the processed data, i.e., the second recipient data.
-
Citations
23 Claims
-
1. A method for improved display double buffering, the method comprises the steps of:
-
a) receiving a series of frames of data at rate independent of a refresh rate of a display; b) queuing commands of the series of frames of data, wherein the commands include graphics processing commands and a refresh synchronize command, wherein the commands are processed to render a current one of the series of frames of data to a first buffer; c) when the synchronize command is detected, pausing processing of the commands; d) detecting a next cycle of the refresh rate; and e) when the refresh rate is detected, resuming processing of the commands to render a next one of the series of frames to a second buffer. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for co-processing comprises the steps of:
-
a) receiving a series of data blocks at rate independent of a processing rate of a recipient engine; b) queuing commands of the series of data blocks, wherein the commands includes processing commands and a processing rate synchronize command, wherein the commands of one of the series of data blocks are processed to produce recipient data, wherein the recipient data is stored in a first buffer; c) when the processing rate synchronize command is detected, pausing processing of the commands and providing, from the first buffer, the recipient data to the recipient engine at a beginning of a next cycle of the processing rate; and d) when the next cycle processing rate begins, resuming processing of the commands relating to a next one of the series of data blocks to produce second recipient data, wherein the second recipient data is stored in a second buffer. - View Dependent Claims (8, 9, 10)
-
-
11. A video graphics circuit comprises:
-
data receiving module operably coupled to receive commands contained in a series of frames of data, wherein the series of frames of data is received at a rate independent of a refresh rate of a display wherein the data receiving modules queues the commands, and wherein the commands include graphics processing commands and a refresh synchronize command; video processing module operably coupled to receive the commands that have been queued, wherein the video processing module performs the commands to render a current one of the series of frames of data until the refresh synchronize command is detected; frame buffer operably coupled to the video processing module, wherein the frame buffer includes a first buffer and a second buffer, wherein the first buffer receives and stores the current one of the series of frames of data and the second buffer stores a previous one of the series of frames of data; and wherein the video processing module resumes processing commands to render a next one of the series of frames of data after a next cycle of the refresh rate is detected and wherein the second buffer overwrites the previous one of the series of frames of data with the next one of the series of frames of data. - View Dependent Claims (12, 13, 14)
-
-
15. A video graphics circuit comprises:
-
a processing unit; and memory operably coupled to the processing unit, wherein the memory stores programming instructions that, when read by the processing unit, cause the processing unit to a) receive a series of frames of data at rate independent of a refresh rate of a display;
b) queue commands of the series of frames of data, wherein the commands includes graphics processing commands and a refresh synchronize command, wherein the commands are processed to render a current one of the series of frames to a first buffer;
c) pause processing of the commands when the synchronize command is detected;
d) detect a next cycle of the refresh rate; and
e) resume processing of the commands to render a next one of the series of frames to a second buffer when the next cycle of the refresh rate is detected. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A co-processing circuit comprises:
-
a processing unit; and memory operably coupled to the processing unit, wherein the memory stores programming instructions that, when read by the processing unit, cause the processing unit to a) receive a series of data blocks at rate independent of a processing rate of a recipient engine;
b) queue commands of the series of data blocks, wherein the commands includes processing commands and a processing rate synchronize command, wherein the commands of one of the series of data blocks are processed to produce recipient data, wherein the recipient data is stored in a first buffer;
c) pause processing of the commands when the processing rate synchronize command is detected and providing, from the first buffer, the recipient data to the recipient engine at a beginning of a next cycle of the processing rate; and
d) resume processing of the commands relating to a next one of the series of data blocks to produce second recipient data when the next cycle processing rate begins, wherein the second recipient data is stored in a second buffer. - View Dependent Claims (21, 22, 23)
-
Specification