IP Library Granted Patent US 10,706,604
Granted Patent B2
US 10,706,604 · App. 15/274,639 · Granted Jul 7, 2020

Controlling display performance using display system hints

Inventors: Arthur L. Spence (San Jose, CA); Jeremy T. Sandmel (San Mateo, CA); David M. Chan (Palo Alto, CA); Chendi Zhang (Mountain View, CA); Peter C. Tsoi (San Jose, CA)
Assignee: Apple Inc.
G06T13/80G06F3/041G06F3/14G09G3/3618G09G5/36G09G5/003G09G5/18G09G5/393G09G2310/08G09G2320/0252G09G2320/10G09G2330/021G09G2340/0435G09G2350/00G09G2360/06G09G2360/12
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 10,706,604
App. No.
15/274,639
Granted
Jul 7, 2020
Kind
B2
Abstract

Embodiments provide for a display system to generate and display data on a display device, the display system comprising one or more graphics processors to generate one or more frames of data for display on the display device; a display engine to present the one or more frames of data to the display device for display; display logic to receive a request to display the one or more frames of data and generate one or more display events for the display engine based on the request, wherein the request includes a first hint to indicate a complexity of the one or more frames of data and the one or more display events includes a second hint derived from the first hint; and a performance controller to adjust one or more performance related parameters for the display system based on the second hint.

Claims (32)

1. A display system to generate and display data on a display device, the display system comprising:

one or more graphics processors to generate one or more frames of data for display on the display device;

a display engine to present the one or more frames of data to the display device for display;

display logic to receive a request to display the one or more frames of data and generate a display event as a time-stamp queue entry for the display engine based on the request, wherein the request includes a first hint that specifies a complexity of image data of the one or more frames of data, the complexity of image data representing a number of surfaces, a number of geometric objects, or a number of shader programs, the first hint is inserted into the display event, and the display event includes a second hint derived from the first hint;

a real time processor to cyclically scan entries in the time-stamp queue, including scanning the display event to read the second hint from the display event; and

a performance controller to adjust one or more performance related parameters including a clock frequency and voltage for the display system or the one or more graphics processors based on a complexity metric associated with the second hint provided by the real time processor.

2. The display system as in claim 1 , wherein the second hint includes the complexity metric associated with the one or more frames of data.

3. The display system as in claim 2 , wherein the complexity metric is related to a number of surfaces to be composited to generate a frame of data to be displayed.

4. The display system as in claim 2 , wherein the complexity metric is related to a geometric complexity of an upcoming frame to be generated by the one or more graphics processors.

5. The display system as in claim 2 , wherein the performance controller is to adjust the clock frequency or voltage of the one or more graphics processors and the display engine based on the complexity metric.

6. The display system as in claim 2 , wherein the performance controller is to adjust a bandwidth allocation limit for data transfer between the one or more graphics processors and the display engine.

7. The display system as in claim 1 , wherein the display logic is to insert the one or more display events for the display engine into a memory, the one or more display events including display state information to display the one or more frames of data.

8. The display system as in claim 7 , additionally comprising a real-time processor coupled to the display engine, wherein the display logic is to configure the real-time processor to retrieve the display state information for a frame from memory and program the display engine at a target presentation time.

9. The display system as in claim 8 , wherein the display engine is programmed to explicitly refresh the display to display the frame and a refresh rate of the display device is adjusted based on the target presentation time of the one or more frames of data.

10. A non-transitory machine readable medium storing instructions which, when executed by one or more processors, cause the one or more processors to perform operations comprising:

receiving a request to display one or more frames of data on a display device of a display system, the request including a first hint that specifies a complexity of image data of the one or more frames of data, the complexity of image data representing a number of surfaces, a number of geometric objects, or a number of shader programs;

cyclically, with a real time processor, scanning entries in the time-stamp queue, including scanning the display event to read the second hint from the display event;

generating a display event as a time-stamp queue entry based on the request, the first hint being inserted into the display event, the display event including a second hint derived from the first hint; and

signaling a performance controller associated with the one or more graphics processors to adjust one or more performance related parameters including a clock frequency and voltage of the one or more graphics processors based on a complexity metric associated with the second hint provided by the real time processor.

11. The non-transitory machine readable medium as in claim 10 , wherein the second hint includes the complexity metric associated with the one or more frames of data.

12. The non-transitory machine readable medium as in claim 11 , wherein the complexity metric is related to a number of surfaces to be composited to generate a frame of data to be displayed or a geometric complexity of an upcoming frame to be generated by the one or more graphics processors, and the performance controller is to adjust the clock frequency or voltage of the one or more graphics processors based on the complexity metric.

13. The non-transitory machine readable medium as in claim 12 , wherein the performance controller is to adjust a bandwidth allocation limit for data transfer between the one or more graphics processors and the display engine.

14. An electronic device comprising:

a display device having a variable refresh rate;

one or more graphics processors to generate one or more frames of data for display on the display device;

a display engine to present the one or more frames of data to the display device for display;

display logic to receive a request to display the one or more frames of data and generate a display event as a time-stamp queue entry for the display engine based on the request, wherein the request includes a first hint that specifies a complexity of image data of the one or more frames of data, the complexity of image data representing a number of surfaces, a number of geometric objects, or a number of shader programs, the first hint is inserted into the display event, and the display event includes a second hint derived from the first hint;

a real time processor to cyclically scan entries in the time-stamp queue, including scanning the display event to read the second hint from the display event; and

a performance controller to adjust one or more performance related parameters including a clock frequency and voltage for the one or more graphics processors based on a complexity metric associated with the second hint provided by the real time processor.

15. The electronic device as in claim 14 , wherein the second hint includes the complexity metric associated with the one or more frames of data and the complexity metric is related to a number of surfaces to be composited to generate a frame of data to be displayed or a geometric complexity of an upcoming frame to be generated by the one or more graphics processors.

16. The electronic device as in claim 15 , wherein the performance controller is to adjust the clock frequency or voltage of the one or more graphics processors and the display engine based on the complexity metric.

17. The electronic device as in claim 15 , wherein the performance controller is to adjust a bandwidth allocation limit for data transfer between the one or more graphics processors and the display engine.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2016
From: SPENCE, ARTHUR L.; SANDMEL, JEREMY T.; CHAN, DAVID M.; ZHANG, CHENDI; TSOI, PETER C.
To: APPLE INC.
Reel/Frame 040533/0824 →
Continuity (5)
Provisional Application 62348622 · Jun 10, 2016
Provisional Application 62345539 · Jun 3, 2016
Provisional Application 62348626 · Jun 10, 2016
Provisional Application 62348631 · Jun 10, 2016
Related Publication 20170352323A1 · Dec 7, 2017