ThinkPad Switchable Graphics Toggle Utility

A Windows utility for ThinkPads circa 2008 for switching between discrete and integrated GPUs. Last modified 2023-10-20.

Some models of the 2008 generation of ThinkPads (W500, T500, R500, etc...) have been blessed with a feature called switchable graphics or hybrid graphics. This means that they have two graphics cards:

Under Windows with the appropriate drivers, the system and switch between these two graphics cards on the fly, without restarting the computer.

In the case of my W500, using the integrated graphics card more than doubles the battery life over the discrete graphics card, at some points giving 5 hours of runtime. To play games, run certain CAD packages, or use the DVI output of the Lenovo Advanced Dock, I can use the discrete graphics instead.

It's a convenient feature, and one that was ahead of its time. However, controlling this functionality with something other than the Lenovo Power Manager has been less than straightforward.

At some point I got the idea to rebind the otherwise unused ThinkVantage key on the laptop's keyboard to toggle between the graphics cards, since clicking two menu items in the battery monitor menu was such a chore.

Legacy project

This project was brought forward from my old website. It was completed in 2012, last updated in 2013, and probably won't be touched again.

Development

Poking around in Process Monitor to watch PWMUI.exe (Lenovo Power Manager) revealed that it merely called another, external program to perform the switch when a graphics card was selected:

These commands appear to tell the lower-level drivers to set the MUX to use the desired graphics processor, and switch power to them. Nothing appears to happen if the requested graphics card is already in use.

With that figured out, all I needed to do was determine which card was currently in use, and, as an added bonus, show an overlay not unlike the stock Lenovo on-screen display.

Screenshot of screen brightness OSD Screenshot of volume OSD Screenshot of GPU OSD

A Registry file and installer Batch file are included in the tools directory of this project's repository and source code archives, which copy the executable to C:\Windows and create the ThinkVantage key binding.

Prerequisites

This utility is merely a wrapper for Lenovo Power Manager, which actually communicates with the system board driver and controls the graphics MUX. It was developed specifically for a W500 running Windows 7 x86-64, but may work for other models or operating systems as long as the use of PWMUIAux.exe is the same.

Resources

TypeName + Description
Gitlab Project iconGitlab Project
tpgraphics-toggle-win Git Repository

Downloads

TypeFilename + DescriptionDateSizeSHA256
Windows Executable iconWindows Executable
Switchable graphics toggle utility
2021-12-18431.6 KiB
ZIP Archive iconZIP Archive
Switchable graphics toggle utility source code, v1.0.0
2021-12-23119.6 KiB