IP Library › Granted Patent US 7,450,130
Granted Patent B2
US 7,450,130 · App. 11/228,002 · Granted Nov 11, 2008

Adaptive scheduling to maintain smooth frame rate

Assignee: Microsoft Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,450,130
App. No.
11/228,002
Granted
Nov 11, 2008
Kind
B2
Abstract

Described is an adaptive scheduler associated with a desktop window manager that dynamically controls the rate at which graphics frames are composed. Values corresponding to performance when composing a frame are measured, and the frame composition rate is adjusted as necessary based on the values. The measured data is sampled to provide smooth adjustments. The sampled data is evaluated as to whether the current frame rate is too slow, too fast, or acceptable. If too slow, the frame rate may increased relative to the refresh rate, while if too fast, the frame rate is decreased relative to the refresh rate. In one implementation, the frame rate is too fast if a count of missed frames achieves a missed threshold value, or if a count of late frames achieves a late threshold value. The frame rate is too slow if a count of early frames exceeds an early threshold value.

Claims (31)

1. At least one computer-readable storage medium having computer-executable instructions for an adaptive scheduler to dynamically control the rate at which graphics frames are composed to ensure that each composed frame is complete and ready to display in time for a correct video refresh, the instructions which when executed in a computing environment perform a method comprising:

determining if a previous frame was late and, when so, decrementing a refresh value;

determining the time for a new frame by recording the begin frame time and the end frame time;

determining a threshold for a budget deadline, a threshold for a hard deadline, and a threshold for an early threshold;

composing a new frame and presenting the frame to a window manager for display;

recording the end time for the frame;

recording bits in a buffer for each threshold indicating whether the frame end time exceeded the budget deadline, whether the frame end time exceeded the hard deadline, and whether the frame end time exceed the early deadline; and

adjusting the composition rate for frames based upon the count of the bits for each threshold recorded in the buffer.

2. The computer-readable storage medium of claim 1 further comprising obtaining a count of missed frames, a count of late frames and a count of early frames by evaluating actual frame composition times against time values corresponding to the hard deadline, the budget deadline, and the early threshold, respectively.

3. The computer-readable storage medium of claim 2 further comprising maintaining the count of missed frames, the count of late frames and the count of early frames by maintaining a bit array that contains results of comparisons for each actual frame composition time against the hard deadlines, the budget deadline, and the early deadline, respectively.

4. The computer-readable storage medium of claim 1 wherein adjusting the composition rate comprises decreasing the composition rate upon detecting a number of missed frames or a number of late frames, or increasing the frame rate up to a graphics subsystem refresh rate upon detecting a number of early frames.

5. The computer-readable storage medium of claim 1 wherein adjusting the composition rate comprises decreasing the composition rate when a count of missed frames achieves a missed threshold value, and if not achieved, decreasing the rate if a count of late frames achieves a late threshold value, and if the late threshold value is not achieved, increasing the rate up to a graphics subsystem refresh rate if a count of early frames exceeds an early threshold value.

6. A system for an adaptive scheduler to dynamically control the rate at which graphics frames are composed to ensure that each composed frame is complete and ready to display in time for a correct video refresh, the system comprising at least one computing device, computer-readable memory, and one or more computer processors upon which is executing components comprising:

a window manager that receives graphics instructions from application programs and composes frames of video data based on those instructions for sending to a graphics subsystem; and

an adaptive scheduler coupled to the window manager that controls a rate of frame composition of the window manager by:

determining if a previous frame was late and, when so, decrementing a refresh value;

determining the time for a new frame by recording the begin frame time and the end frame time;

determining thresholds for a budget deadline, for a hard deadline, and for an early threshold;

composing a new frame and presenting the frame to a window manager for display;

recording the end time for the frame;

recording bits in a buffer for each threshold indicating whether the frame end time exceeded the budget deadline, whether the frame end time exceeded the hard deadline, and whether the frame end time exceed the early deadline;

adjusting the composition rate for frames based upon the count of the bits for each threshold recorded in the buffer.

7. The system of claim 6 wherein the buffer is a circular buffer.

8. The system of claim 6 wherein the adaptive scheduler includes comparison means for evaluating an actual frame composition time against a hard deadline time, a budget deadline time and an early deadline time.

9. The system of claim 6 wherein the adaptive scheduler adjusts the rate of composing frames by decreasing the rate upon detecting a number of missed frames or a number of late frames, or increasing the frame rate up to the graphics subsystem refresh rate upon detecting a number of early frames.

10. The system of claim 6 wherein the adaptive scheduler adjusts the composition rate by;

a) decreasing the rate when a count of missed frames achieves a missed threshold value, and if the missed threshold value is not achieved, by

b) decreasing the rate if a count of late frames achieves a late threshold value, and if the late threshold value is not achieved, by

c) increasing the rate if a count of early frames exceeds an early threshold value.

11. The system of claim 6 wherein the adaptive scheduler notifies at least one other component of a change in the rate of composing frames.

12. The system of claim 6 further comprising means for providing feedback to an application program such that the application program can adjust data submitted for compositing.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034543/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 23, 2005
From: SWEDBERG, GREGORY D.; RATANCHANDANI, PRASHANT; SCHECHTER, GREG; EVANS, GLENN F.; BLANCO, LEONARDO E.; RENERIS, KENNETH S.; NENE, SAMEER AVINASH
To: MICROSOFT CORPORATION
Reel/Frame 016812/0697 →
Continuity (1)
Related Publication 20070057952A1 · Mar 15, 2007