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.

5
  • why do you want to run Chrome on the AMD GPU? do you have perf issues? Commented Jan 15, 2017 at 17:37
  • @magicandre1981: Yes I do, e.g. on the Intel GPU this demo runs at a low fps when in fullscreen. Commented Jan 17, 2017 at 12:55
  • this looks like a Chrome Bug. In Firefox the Demo runs at 60fps on my old Intel HD4000, so your faster 55xx should also work. Commented Jan 17, 2017 at 16:51
  • @magicandre1981: I just tried again in Chrome and now it says "No WebGL available :(" for some reason. Also tried in firefox and the demo has low fps there as well, when in fullscreen. Are you sure you clicked the button I circled in red here? Commented Jan 18, 2017 at 9:55
  • ok, in fullscreen it is also slower in Firefox, but not that slow compared to Chrome. But I also can't activate high performance for Firefox in the AMD drivers settings Commented Jan 18, 2017 at 17:20

4 Answers 4

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 :)

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.

4
  • When I do that, and I close the browser before running gpu-chrome (so not only the subprocesses but the main process is launched that way), all my tabs and extensions are crashed (the tabs are empty). That happens no matter whether I've set gpu-chrome to "High performance" or "Power saving" in AMD's settings. Commented Jan 19, 2017 at 13:42
  • I tried doing the same for firefox. Then Firefox's tabs don't crash, but SeaScape is still choppy in fullscreen, and about:support says that the Intel GPu is "active" and the AMD one is not. Commented Jan 19, 2017 at 13:50
  • I tried running gpu-chrome while regular chrome was already running, with the idea that maybe it would create just one AMD-using window and leave the rest as they are. But I still get this problem, just like I do when launching chrome in the regular way. Commented Jan 19, 2017 at 14:03
  • I have no real idea. do some searches and look which other workaround some users posted. Commented Jan 19, 2017 at 16:15
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.

1
  • You can get the instructions with the -hiddenhelp parameter. But the problem is they are quite borked at least for BLB-to-XML (and not because there's such a thing as an "in-memory" database, at least with respect to this application). Where most people have difficulties is probably that -sys, -user and -oem each serve for a different kind of blb, and they all take hardcoded paths. In order, these are %WINDIR%\SysWOW64\atiapfxx.blb, %LOCALAPPDATA%\ATI\ACE\APL\User.blb and whatever the string OemBlobFile in HKLM\SOFTWARE\Wow6432Node\ATI\AppProfiles says (the exe is always IA32).
    – mirh
    Commented May 16, 2020 at 2:17

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .