IP Library › Granted Patent US 9,262,795
Granted Patent B2
US 9,262,795 · App. 13/995,223 · Granted Feb 16, 2016

Hybrid rendering systems and methods

Inventors: Kangyuan Shu (Shanghai, CN); Junyong Ding (Shanghai, CN); Yongnian Le (Shanghai, CN); Weiliang Lion Lin (Shanghai, CN); Xuefeng Deng (Shanghai, CN); Yaojie Yan (Shanghai, CN)
Assignee: Intel Corporation
G06T1/20
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 9,262,795
App. No.
13/995,223
Granted
Feb 16, 2016
Kind
B2
Abstract

Embodiments of a system and method for enhanced graphics rendering performance in a hybrid computer system are generally described herein. In some embodiments, a graphical element in a frame, application, or web page, which is to be presented to a user via a web browser, is rendered either by a first processor or a second processor based on indications of whether the first or the second processor is equipped or configured to provide faster rendering. A rendering engine may utilize either processor based on historical or anticipated rendering performance, and may dynamically switch between the hardware decoder and general purpose processor to achieve rendering time performance improvement. Switches between processors may be limited to a fixed number switches or switching frequency.

Claims (49)

1. At least one non-transitory computer-readable medium having computer executable instructions that, when executed on a computing device, cause the computing device to perform a method comprising:

receiving, on a computing device including a display and a rendering engine, a frame that includes a graphical element;

providing the frame to the rendering engine;

determining, in the rendering engine, if the graphical element should be rendered with a general purpose processor (GPP) or an application specific processor based on a criterion;

rendering the graphical element with either a general purpose processor or the application specific processor in response to the determination; and

presenting the frame with the graphical element on the display;

wherein the criterion includes an estimation of a difference between an execution time for rendering the graphical element of the frame with the general purpose processor and the application specific processor.

2. The non-transitory computer-readable medium as recited in claim 1 , further comprising:

switching from a first rendering path utilizing the general purpose processor to a second rendering path utilizing the application specific processor based on an indication by the criterion that a second frame can be rendered more quickly by the application specific processor than by the general purpose processor.

3. The non-transitory computer-readable medium as recited in claim 1 , further comprising:

switching from a second rendering path utilizing the application specific processor to a first rendering path utilizing the general purpose processor based on an indication by the criterion that a second frame can be rendered more quickly by the general purpose processor than by the application specific processor.

4. The tangible computer-readable medium as recited in claim 1 , further comprising: storing a performance indication of the rendering of the graphical element that includes whether the general purpose processor or the application specific processor was utilized on a previous rendering operation.

5. The non-transitory computer-readable medium as recited in claim 1 , wherein the application specific processor is a graphics processing unit (GPU).

6. The non-transitory computer-readable medium as recited in claim 5 , wherein the criterion includes at least one of: a list of application programming interfaces (APIs) to be executed by the graphics processing unit (GPU), a list APIs to be executed by the general purpose processor (GPP), performance characteristics of the GPU, performance characteristics of the GPP, a history of switches between the GPU and the GPP, performance costs of a switch between the GPU and the GPP; a number of instructions required to complete a graphics operation, memory bandwidth, a time to complete an operation, a predicted next operation, or an available number of buffer slots to pipeline commands to graphics hardware.

7. A method for accelerated graphics rendering comprising:

receiving, on a computing device including a display and a rendering engine, a frame that includes a graphical element;

providing the frame to the rendering engine;

determining, by the rendering engine, if the graphical element should be rendered with either general purpose processor (GPP) or an application specific processor based on a criterion;

rendering the graphical element using the GPP or the application specific processor in response to the determination; and

presenting the frame with the graphical element on the display;

wherein the criterion includes an estimation of a difference between an execution time for rendering the graphical element with the GPP and the application specific processor.

8. The method of claim 7 , comprising:

switching from a first rendering path utilizing the GPP to a second rendering path utilizing the application specific processor based on an indication by the criterion that a second frame can be more quickly rendered by the application specific processor.

9. The method of claim 7 , comprising:

switching from a second rendering path utilizing the application specific processor to a first rendering path utilizing the GPP based on an indication by the criterion that a second frame can be more quickly rendered by the GPP.

10. The method of claim 7 , comprising:

storing a performance indication of the rendering of the graphical element that includes whether the GPP or the application specific processor was utilized.

11. The method of claim 7 , wherein the GPP is a central processing unit and the application specific processor is a graphics processing unit.

12. The method of claim 7 , wherein the criterion includes at least one of: a list of application programming interfaces (APIs) to be executed by the graphics processing unit (GPU), a list APIs to be executed by the general purpose processor (GPP), performance characteristics of the GPU, performance characteristics of the GPP, a history of switches between the GPU and the GPP, performance costs of a switch between the GPU and the GPP; a number of instructions required to complete a graphics operation, memory bandwidth, a time to complete an operation, a predicted next operation, or an available number of buffer slots to pipeline commands to graphics hardware.

13. A hybrid system for graphics rendering comprising:

a display device;

a processor configured to receive a plurality of frames containing one or more graphical elements;

a graphics processing unit, including a hardware decoder coupled to the display device and communicatively coupled to the processor; and

a rendering engine configured to determine, based on a criterion, if an individual one of the one or more graphical elements can be more efficiently rendered for display on the display device by the processor or the hardware decoder and to dynamically switch between the processor or the hardware decoder for the individual one or more graphical elements;

wherein the criterion includes an estimation of a difference between an execution time for rendering the individual one of the one or more graphical elements of the plurality of frames with the processor and the hardware decoder.

14. The system of claim 13 , further comprising a hint generation engine configured to monitor the rendering engine and update the rendering engine with a second criterion for determining if the graphical element can be more efficiently rendered with the processor or the hardware decoder.

15. The system of claim 13 , wherein the rendering engine is configured to estimate execution times for rendering the one or more graphical elements with the processor and with the hardware decoder.

16. The system of claim 13 , further comprising: a database module, coupled to the hint generation engine, the database module configured to store a performance indication of the rendering of the graphical element that includes whether the processor or the hardware decoder was utilized.

17. The system of claim 16 , wherein the database module is configured to store a performance indication of the rendering of the graphical element that includes the criterion the determination was based on.

18. The system of claim 13 , wherein the criterion includes at least one of: a list of application programming interfaces (APIs) to be executed by the graphics processing unit (GPU), a list APIs to be executed by the general purpose processor (GPP), performance characteristics of the GPU, performance characteristics of the GPP, a history of switches between the GPU and the GPP, performance costs of a switch between the GPU and the GPP; a number of instructions required to complete a graphics operation, memory bandwidth, a time to complete an operation, a predicted next operation, or an available number of buffer slots to pipeline commands to graphics hardware.

19. A computer graphics rendering method comprising:

receiving, on a computing device including a rendering engine, a plurality of frames that include a graphical element;

rendering a first of the plurality of frames with a central processing unit (CPU);

providing the second and subsequent of the plurality of frames to the rendering engine;

determining, by the rendering engine, if the second and subsequent of the plurality of frames should be rendered with the CPU or an application specific processor based on a criterion; and

rendering the second and subsequent of the plurality of frames using the CPU or the application specific processor in response to the determination;

wherein the criterion includes an estimation of a difference between an execution time for rendering the second and subsequent of the plurality of frames with the CPU and the application specific processor.

20. The computer graphics rendering method as recited in claim 19 , wherein the CPU is a general purpose processor (GPP) and the application specific processor is a graphics processing unit (GPU).

21. The computer graphics rendering method as recited in claim 19 , wherein the criterion includes at least one of: a list of application programming interfaces (APIs) to be executed by the graphics processing unit (GPU), a list APIs to be executed by the general purpose processor (GPP), performance characteristics of the GPU, performance characteristics of the GPP, a history of switches between the GPU and the GPP, performance costs of a switch between the GPU and the GPP; a number of instructions required to complete a graphics operation, memory bandwidth, a time to complete an operation, a predicted next operation, or an available number of buffer slots to pipeline commands to graphics hardware.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2014
From: SHU, KANGYUAN; DING, JUNYONG; LE, YONGNIAN; LIN, WEILIANG LION; DENG, XUEFENG; YAN, YAOJIE
To: INTEL CORPORATION
Reel/Frame 031928/0316 →
Continuity (1)
Related Publication 20150130820A1 · May 14, 2015