US8866826B2ActiveUtilityPatentIndex 18
Method and apparatus for dispatching graphics operations to multiple processing resources
Est. expiryFeb 10, 2031(~4.6 yrs left)· nominal 20-yr term from priority
G06F 9/505G06F 9/5027G06F 2209/5021
18
PatentIndex Score
0
Cited by
13
References
39
Claims
Abstract
Parallel graphics-processing methods and mobile computing apparatus with parallel graphics-processing capabilities are disclosed. One exemplary embodiment of a mobile computing apparatus includes physical memory, at least two distinct graphics-processing devices, and a bus coupled to the physical memory and the at least two graphics-processing devices. A virtual graphics processing component enables each of at least two graphics-processing operations to be executed, in parallel, by a corresponding one of the at least two distinct graphics-processing devices, which operate in the same memory surface at the same time.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1. A method for managing graphics processing of a computing device including:
receiving a plurality of requests for graphics-related operations, the plurality of requests including a prior request for a first graphics-related operation and a subsequent request for a second graphics-related operation;
creating a time-ordered list of the plurality of requests for graphics-related operations, the time-ordered list including the prior request and the subsequent request;
initiating execution of the first graphics-related operation with a first graphics-processing resource;
receiving potential-memory-utilization-information that provides an indication of potential memory usage by a second graphics-processing resource if the second graphics-related operation were executed by the second graphics-processing resource; and
executing, at least in part, the second graphics-related operation with the second graphics-processing resource simultaneously with the execution of first graphics-related operation by the first graphics-processing resource if the potential-memory-utilization-information indicates that the second graphics-related operation may be executed by the second graphics-processing resource without conflicting with the execution of the first graphics-related operation; and
determining whether execution of the second graphics-related operation by the second graphics-processing resource, simultaneously with the execution of the first graphics-related operation by the first graphics-processing resource, effectuates an execution of the second graphics-related operation at a faster rate than if the second graphics-related operation were executed by the first graphics-processing resource after the first graphics-processing resource executed the first graphics-related operation.
2. The method of claim 1 , wherein the determining includes determining whether the first graphics-processing resource is saturated with a backlog of requests for operations that require more than a threshold amount of time to complete.
3. The method of claim 1 , including executing, if power usage is more critical than performance, the second graphics-related operation with one of the first or second graphics-processing resource that utilizes a least amount of power regardless of whether the second graphics-related operation may be executed by the second graphics-processing resource without conflicting with the execution of the first graphics-related operation.
4. The method of claim 1 , wherein the potential-memory-utilization-information indicates that the second graphics-related operation may be executed by the second graphics-processing resource without conflicting with the execution of the first graphics-related operation when a memory destination of the second graphics-related operation neither intersects with a memory source of the first graphics-related operation nor a memory destination of the second graphics-related operation.
5. The method of claim 1 , including:
querying a driver for the first graphics-processing resource so as to determine when execution of the first graphics-related operation will complete.
6. The method of claim 5 , including:
accessing the driver for the first graphics-processing resource and removing at least one yet-to-be-completed graphics-related operation that is scheduled for the first graphics-processing resource; and
rescheduling the at least one graphics-related operation for execution by another graphics-processing resource.
7. The method of claim 5 , including:
scanning a schedule of requested operations in the driver for the first graphics-processing resource that has not yet been completed; and
removing requested operations in the schedule that are redundant to earlier scheduled operations.
8. The method of claim 1 , including:
executing, simultaneously with execution of the first graphics-related operation and the second graphics-related operation, one or more other graphics-related operations with corresponding one or more other graphics-processing resources.
9. The method of claim 1 , including:
receiving the plurality of requests via an API selected from the group consisting of Skia, C2D, OpenVG, and Xorg.
10. The method of claim 1 , including executing two or more graphics-related operations with two or more threads simultaneously with the execution of the first graphics-related operation.
11. The method of claim 1 , including:
executing at least a portion of a 3D-graphics-related operation utilizing a 2D-graphics-processing resource; and
executing at least a portion of a 2D-graphics-related operation utilizing a 3D-graphics-processing resource.
12. The method of claim 1 , including transforming a single request for a graphics-related operation into two or more operations; and
executing the two or more operations on two or more separate and corresponding graphics-processing resources.
13. A mobile computing apparatus including:
physical memory;
at least two distinct graphics-processing devices;
a bus coupled to the physical memory and the at least two distinct graphics-processing devices;
a virtual graphics processing component that is adapted to enable each of a first and a second graphics-processing operations to be executed, in parallel, by a corresponding one of the at least two distinct graphics-processing devices, each of the at least two distinct graphics-processing devices operating in the same memory surface at the same time, wherein the virtual graphics processing component is adapted to determine whether execution of the second graphics-processing operation by the second graphics-processing resource, simultaneously with the execution of the first graphics-processing operation by the first graphics-processing resource, effectuates an execution of the second graphics-processing operation at a faster rate than if the second graphics-processing operation were executed by the first graphics-processing resource after the first graphics-processing resource executed the first graphics-processing operation.
14. The mobile computing apparatus of claim 13 , wherein the virtual graphics processing component is configured to store a list of graphics-processing operations and determine whether a subsequent graphics processing operation would create a conflict with a prior graphics-processing operation before executing the subsequent graphics processing operation in parallel with the prior graphics-processing operation.
15. The mobile computing apparatus of claim 13 , wherein the graphics-processing devices are graphics-processing devices selected from the group consisting of MDP, z180, and CPU devices.
16. A computing apparatus, comprising:
physical memory;
at least two graphics-processing resources;
a bus coupled to the physical memory and the at least two graphics-processing resources;
means for receiving a plurality of requests for graphics-related operations, the plurality of requests including a prior request for a first graphics-related operation and a subsequent request for a second graphics-related operation;
means for creating a time-ordered list of the plurality of requests for graphics-related operations, the time-ordered list including the prior request and the subsequent request;
means for initiating execution of the first graphics-related operation with a first graphics-processing resource;
means for receiving potential-memory-utilization-information that provides an indication of potential memory usage by a second graphics-processing resource if the second graphics-related operation were executed by the second graphics-processing resource; and
means for executing, at least in part, the second graphics-related operation with the second graphics-processing resource simultaneously with the execution of first graphics-related operation by the first graphics-processing resource if the potential-memory-utilization-information indicates that the second graphics-related operation may be executed by the second graphics-processing resource without conflicting with the execution of the first graphics-related operation; and
means for determining whether execution of the second graphics-related operation by the second graphics-processing resource, simultaneously with the execution of the first graphics-related operation by the first graphics-processing resource, effectuates an execution of the second graphics-related operation at a faster rate than if the second graphics-related operation were executed by the first graphics-processing resource after the first graphics-processing resource executed the first graphics-related operation.
17. The computing apparatus of claim 16 , wherein the means for determining includes means for determining whether the first graphics-processing resource is saturated with a backlog of requests for operations that require more than a threshold amount of time to complete.
18. The computing apparatus of claim 17 , including means for executing, if power usage is more critical than performance, the second graphics-related operation with one of the first or second graphics-processing resource that utilizes a least amount of power regardless of whether the second graphics-related operation may be executed by the second graphics-processing resource without conflicting with the execution of the first graphics-related operation.
19. The computing apparatus of claim 16 , wherein the potential-memory-utilization-information indicates that the second graphics-related operation may be executed by the second graphics-processing resource without conflicting with the execution of the first graphics-related operation when a memory destination of the second graphics-related operation neither intersects with a memory source of the first graphics-related operation nor a memory destination of the second graphics-related operation.
20. The computing apparatus of claim 16 , including:
means for querying a driver for the first graphics-processing resource so as to determine when execution of the prior request will complete.
21. The computing apparatus of claim 20 , including:
means for accessing the driver for the first graphics-processing resource and means for removing at least one yet-to-be-completed graphics-related operation that is scheduled for the first graphics-processing resource; and
means for rescheduling the at least one graphics-related operation for execution by another graphics-processing resource.
22. The computing apparatus of claim 20 , including:
means for scanning a schedule of requested operations in the driver for the first graphics-processing resource that have not yet been completed; and
means for removing requested operations in the schedule that are redundant to earlier scheduled operations.
23. The computing apparatus of claim 16 , including:
means for executing, simultaneously with execution of the first graphics-related operation and the second graphics-related operation, one or more other graphics-related operations with corresponding one or more other graphics-processing resources.
24. The computing apparatus of claim 16 , including:
means for receiving the plurality of requests via an API selected from the group consisting of Skia, C2D, OpenVG, and Xorg.
25. The computing apparatus of claim 16 , including means for executing two or more graphics-related operations with two or more threads simultaneously with the execution of the first graphics-related operation.
26. The computing apparatus of claim 16 , including:
means for executing at least a portion of a 3D-graphics-related operation utilizing a 2D-graphics-processing resource; and
means for executing at least a portion of a 2D-graphics-related operation utilizing a 3D-graphics-processing resource.
27. The computing apparatus of claim 16 , including:
means for transforming a single request for a graphics-related operation into two or more operations; and
means for executing the two or more operations on two or more separate and corresponding graphics-processing resources.
28. A non-transitory, tangible computer readable storage medium, encoded with processor readable instructions to perform a method for managing memory of a computing device, the method comprising:
receiving a plurality of requests for graphics-related operations, the plurality of requests including a prior request for a first graphics-related operation and a subsequent request for a second graphics-related operation;
creating a time-ordered list of the plurality of requests for graphics-related operations, the time-ordered list including the prior request and the subsequent request;
initiating execution of the first graphics-related operation with a first graphics-processing resource;
receiving potential-memory-utilization-information that provides an indication of potential memory usage by a second graphics-processing resource if the second graphics-related operation were executed by the second graphics-processing resource; and
executing, at least in part, the second graphics-related operation with the second graphics-processing resource simultaneously with the execution of first graphics-related operation by the first graphics-processing resource if the potential-memory-utilization-information indicates that the second graphics-related operation may be executed by the second graphics-processing resource without conflicting with the execution of the first graphics-related operation; and
determining whether execution of the second graphics-related operation by the second graphics-processing resource, simultaneously with the execution of the first graphics-related operation by the first graphics-processing resource, effectuates an execution of the second graphics-related operation at a faster rate than if the second graphics-related operation were executed by the first graphics-processing resource after the first graphics-processing resource executed the first graphics-related operation.
29. The non-transitory, tangible computer readable storage medium of claim 28 , wherein the determining includes determining whether the first graphics-processing resource is saturated with a backlog of requests for operations that require more than a threshold amount of time to complete.
30. The non-transitory, tangible computer readable storage medium of claim 28 , the method including executing, if power usage is more critical than performance, the second graphics-related operation with one of the first or second graphics-processing resource that utilizes a least amount of power regardless of whether the second graphics-related operation may be executed by the second graphics-processing resource without conflicting with the execution of the first graphics-related operation.
31. The non-transitory, tangible computer readable storage medium of claim 28 , wherein the potential-memory-utilization-information indicates that the second graphics-related operation may be executed by the second graphics-processing resource without conflicting with the execution of the first graphics-related operation when a memory destination of the second graphics-related operation neither intersects with a memory source of the first graphics-related operation nor a memory destination of the second graphics-related operation.
32. The non-transitory, tangible computer readable storage medium of claim 28 , the method including:
querying a driver for the first graphics-processing resource so as to determine when execution of the first request will complete.
33. The non-transitory, tangible computer readable storage medium of claim 32 , the method including:
accessing the driver for the first graphics-processing resource and removing at least one yet-to-be-completed graphics-related operation that is scheduled for the first graphics-processing resource; and
rescheduling the at least one graphics-related operation for execution by another graphics-processing resource.
34. The non-transitory, tangible computer readable storage medium of claim 32 , the method including:
scanning a schedule of requested operations in the driver for the first graphics-processing resource that have not yet been completed; and
removing requested operations in the schedule that are redundant to earlier scheduled operations.
35. The non-transitory, tangible computer readable storage medium of claim 28 , the method including:
executing, simultaneously with execution of the first graphics-related operation and the second graphics-related operation, one or more other graphics-related operations with corresponding one or more other graphics-processing resources.
36. The non-transitory, tangible computer readable storage medium of claim 28 , the method including:
receiving the plurality of requests via an API selected from the group consisting of Skia, C2D, OpenVG, and Xorg.
37. The non-transitory, tangible computer readable storage medium of claim 28 , the method including:
executing two or more graphics-related operations with two or more threads simultaneously with the execution of the first graphics-related operation.
38. The non-transitory, tangible computer readable storage medium of claim 28 , the method including:
executing at least a portion of a 3D-graphics-related operation utilizing a 2D-graphics-processing resource; and
executing at least a portion of a 2D-graphics-related operation utilizing a 3D-graphics-processing resource.
39. The non-transitory, tangible computer readable storage medium of claim 28 , the method including transforming a single request for a graphics-related operation into two or more operations; and
executing the two or more operations on two or more separate and corresponding graphics-processing resources.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.