UPDATE 11-20-17: It seems after a more recent Windows update this trick is invalidated. Though it worked great for awhile, I’ve noticed it no longer reliably forces the real GPU to be used in various apps. Thank you Alistair for reminding me to update this post.
I have no idea why Windows would have blocked users from getting the full benefit of the GPUs they paid for if this is indeed the case, but it’s a shame for anyone with a switchable graphics laptop.
For the solution, jump ahead. For information about switchable graphics in laptops and how that works, keep reading.
Switchable graphics is a technology used in various laptops, including the ThinkPad E550. These laptops are equipped with an integrated video chip (usually Intel) as well as a dedicated GPU. The integrated chip is meant to save battery power when the laptop is doing low-intensity things, only using the more powerful GPU when needed.
In the case of the ThinkPad E550 it’s the Intel HD 5500 and the AMD Radeon R7 M265.
As part of the driver suite on laptops with Switchable graphics, users can find an apps menu to control power settings of various apps. Sometimes, though, apps in that menu will be locked on “power saving” mode and cannot be changed traditionally.
Bummer, right? You paid for extra horsepower, but software isn’t letting you use it. There is, however, a way to trick the software into using your meatier GPU for apps of your choice.
Forcing “High Performance” in Browsers Like Chrome, Firefox, Etc.
Your switchable graphics application (part of your video driver package) will show a list of applications on your PC. To the right of each of them it’ll show the power scheme set for each when it opens (image above).
If you’re reading this it’s probably because you noticed settings for several apps, like your browser, are locked/grayed out and set to “power saving”. This annoyingly means your laptop will always use the integrated video chip (Intel) for all hardware acceleration in the browser rather than your meatier dedicated card.
A simple solution is to create a symlink. Symlinks are basically a shortcut to a folder or file in which the system sees the shortcut as the actual file it links to.
The idea is this: the Switchable software stupidly locks out certain system apps, but it doesn’t block other files it’s not programmed to. By creating a symlink to, say chrome.exe or firefox.exe, we can add the symlink exe to the apps list in the Switchable software. It will not be locked, so clicking on the symlink uses those settings but opens the actual chrome.exe or firefox.exe while doing so.
You can create symlinks manually using a command prompt, but you can also get a simple app to do it for you. In either case, it’s easiest to create the symlink file in the same folder as the source exe. I called my symlink of chrome “chromegpu.exe”.
By adding chromegpu.exe to the apps list in the Switchable settings, I could then toggle its power settings to either “based on power source” or “maximum performance”. I chose “based on power source” so that while plugged in it’d function at max performance, but would scale back on battery.
If you’d prefer to always use the GPU for an app regardless of whether you’re plugged in or not, select “maximum performance”. Note of course that this will use your battery faster when you’re not plugged in.
How Much Does Using Your Dedicated GPU Help?
Part of the answer is subjective. I can tell you that scrolling up and down pages with a lot of images or video elements is notably smoother and it seems to help render the pages quicker (by freeing up the CPU). But what is smoother?
Let’s test objectively.
There are two good ones where you can see the difference, the first test being this one at fishgl.com. It will render of bunch of 3D fish in a tank and allow you to monitor your FPS (frames per second) as you adjust the amount of fish rendered in the tank. Another test created by Microsoft is quite usable and does pretty much the same thing.
If you’re less familiar with FPS tests, aim for over 30. 40-60 is ideal.
In my own tests I launched the stock chrome.exe and confirmed roughly 35 fps with 20 fish and 17 fps with 60 fish. Going to the same test with my custom “chromegpu.exe” with dedicated video enabled, I averaged 50 fps with 20 fish and 35 fps with 60 fish. That’s a 42% increase with 20 fish and a 105% increase with 60 fish.
Your average web page obviously isn’t filled with 3D fish, but this gives a quick and usable benchmark to see the rendering difference on your browser using integrated video versus your dedicated GPU.