1. Field of the Invention
The present invention relates generally to the field of graphics processing and more specifically to a system and method for switching between graphical processing units.
2. Description of the Related Art
A typical computing system includes a central processing unit (CPU), a graphics processing unit (GPU), a system memory, a display device, and an input device. A variety of software applications may run on the computing system. The CPU usually executes the overall structure of the software application and configures the GPU to perform specific tasks in the graphics pipeline (the collection of processing steps performed to transform 3-D images into 2-D images). Some software applications, such as web browsers and word processors, perform well on most computing systems. Other software applications, such as modern 3-D games and video processors, are more graphics-intensive and may perform better on computing systems which include a relatively high performance GPU with a rich graphics feature set.
GPUs typically exhibit a trade-off between graphics performance and power consumption; GPUs with higher performance usually consume more power than GPUs with lower performance. This trade-off is exemplified by two types of GPUs: discrete GPUs (DGPUs) and integrated GPUs (IGPUs). A DGPU is often part of a discrete graphics card that includes dedicated memory and is plugged into a slot in the computing system. An IGPU is part of the main chipset that is wired into the motherboard of the computing system and may share the system memory with the CPU. Typically, a DGPU has higher performance, but consumes more power than an IGPU. For running graphics-intensive software applications, a DPGU may be preferred. However, for running less demanding software applications on a laptop, an IGPU may provide adequate performance while maximizing the battery life.
Some computing systems include both a DGPU and an IGPU, allowing the user to tune the graphics performance and the power consumption of the computing system based on the situation. In such a computing system, the user may choose to maximize graphics performance by using the DGPU or to minimize power consumption by using the IGPU. In one approach to setting the desired graphics performance, the user attaches the display to the desired GPU. In such an approach, to switch from the high-performance DGPU to the power-saving IGPU, the user manually unplugs the display device from the video connector for the DGPU and subsequently the user plugs the display device into the video connector for the IGPU. One drawback to this approach, however, is that it is manually intensive and time consuming. In addition, the display will be blank during the GPU transition. In another approach, a manual switch is used to select between the DGPU and the IGPU, then the computing system is rebooted to effect the GPU change. This solution reduces the manual effort, but such a solution does not necessarily reduce the time required to switch between the GPUs. Furthermore, any running applications will terminate when the computing system is rebooted.
As the foregoing illustrates, what is needed in the art is a more flexible technique for switching between an IGPU and a DGPU in a computing system.