6

I run Windows 10.

I have an "AMD Radeon R5 M330" GPU and an "Intel HD Graphics 5500" GPU on the laptop I just bought. I want to use the former for as many apps as possible, including Chrome.

I downloaded the generic AMD driver installer from here, and used it successfully to install Radeon drivers.

I looked in the AMD settings in the following place:

screenshot

And as you see for Chrome there's a lock icon. When I hover the "power saving" combobox, a tooltip is shown, saying "To ensure compatibility, this application is locked". Here "Power saving" is a code phrase for "Use the Intel GPU" and "High performance" is a code phrase for "Use the AMD GPU".

I was not happy with being prevented from using the better GPU in Chrome (I want to run e.g. shadertoy demos), so I tried installing other drivers, this time coming from HP:

AMD/Intel Switchable High-Definition (HD) Graphics Driver, for product HP Notebook - 15-ac107nu.

This didn't fix the problem.

Any idea why Chrome seems unsupported by my AMD GPU? Both Chrome and AMD Radeon R5 M330 are reasonably standard and widely used products... why would there be incompatibility between them?

And is there a fix for the problem?

Note: This question is very related but doesn't mention having the relevant Chrome setting locked. Instead it says that he successfully Chrome to "High performance" but it still used the Intel GPU.

Stefan Monov
  • 1,711

4 Answers4

2

This is only half a solution, as it's not "free", but I'm really happy I found it, and it never occurred to me until today, so I'm going to share it. I bought a new laptop, one with a nVidia GPU (namely GeForce 940MX). It also uses the Intel GPU for webbrowsers by default, but, unlike with AMD, this setting is not locked, so you can change it easily. So, nVidia FTW :)

Stefan Monov
  • 1,711
1

Doing a google search for shows this reddit topic. Now open a cmd.exe as admin in C:\Program Files (x86)\Google\Chrome\Application and run this command:

mklink /H gpu-chrome.exe chrome.exe

Now add the gpu-chrome.exe to the apps that use the GPU

enter image description here

and run Chrome via the gpu-chrome.exe all the time.

1

I found a potential solution which avoids having to rename/hardlink the file (since renaming chrome.exe into anything else gave me an M7121-1331 error on Netflix). This fix worked for my Radeon RX Vega M GL (Radeon Settings Version 2018.0911.1425.25970) and hopefully works for other cards/versions as well.

  1. Do not rename or hardlink chrome.exe. Browse for the original file and add it in the Switchable Graphics settings as if it were a new executable. This will not add a new item in the Installed Profile Applications list, but in my case this changed the profile of the locked chrome.exe from "Power Saving" to "Not Assigned" (though still locked).
  2. Make sure that your power options (under "Advanced Power Settings") have Switchable Dynamic Graphics set to "Maximize performance" (and not e.g. "Optimize Performance"). Screenshot
  3. Relaunch chrome.exe. The Radeon settings now displays chrome.exe as "High Performance" when the application is running (and switches back to "Not Assigned" when not running). Screenshot

Hope this helps.

1

The solution above didn't work for me so I found another one. Checked on the system with AMD Radeon HD 6620G + AMD Radeon HD 6600M and 6700M Series and Crimson driver v16.2.1b.

First of all, the "locking" info is stored in atiapfxx.blb which is part of the driver package. AMD also supplies atiapfxx.exe (placed to %windir%\system32) that allows to convert a database to xml and xml to blb. Seems to be pretty easy - let's convert atiapfxx.blb to atiapfxx.xml, remove the restrictions, convert atiapfxx.xml to atiapfxx.blb and replace the old atiapfxx.blb with the new one, right? Unfortunately not. Note a few things:

  1. atiapfxx.exe cannot convert a blb to xml, only the current in-memory database. You have to perform database-to-xml operations on the target system.
  2. atiapfxx.exe produces invalid XMLs - it doesn't replace & with &. You have to do that manually.
  3. atiapfxx.exe cannot create a valid system database file: if you convert the system database by atiapfxx -r -sys -s atiapfxx.xml, make some corrections to the atiapfxx.xml, convert it back by atiapfxx -b atiapfxx.blb -s atiapfxx.xml (with or without -k option, it doesn't matter) and replace the native atiapfxx.blb with the new one then Switchable Graphics settings in Radeon Additional Settings applet will be broken.

So all we can do is to edit user-defined profiles:

  1. Execute atiapfxx -r -user -s User.xml. It will create User.xml. If it returns ADL_ApplicationProfiles_GetCustomization failed. error instead this means that the user database isn't initialized. You may fix this by changing GPU setting for some exe file in Radeon Additional Settings applet. Or just use this XML template: <?xml version="1.0" encoding="utf-16"?> <customisations Format="1" Release=""> <applications> <application Title="app_name" File="app_exe_file"> <use Area="PXDynamic">HighPerfGPUAffinity</use> </application> </applications> </customisations>
  2. Open User.xml in the editor. Add <application Title="app_name" File="app_exe_file"> <use Area="PXDynamic">HighPerfGPUAffinity</use> </application> to applications tag (just as in the template) replacing app_name and app_exe_file with the actual values. Don't forget to escape & as said above. Save the file.
  3. Convert xml to blb: atiapfxx -u -s User.xml -b "%LocalAppData%\ATI\ACE\APL\User.blb".
  4. Log off and log on again.

You may check if the new setting is applied: open Radeon Additional Settings applet, go to Switchable Graphics Application Settings, clear Show only applications found on this system checkbox and look for your application.

As regards atiapfxx switches: I didn't find the way to display help in a normal way. Open atiapfxx.exe in a text viewer/editor and search for "Usage" string.