How to force Chrome to use integrated GPU for decoding?
I want Chrome to utilize iGPU (GT630 on i7-8700k) for video decoding, especially VP9 decoding on YouTube. My discrete GPU is GTX970 and it is not capable of decoding VP9. Currently, VP9 is software decoded on my system, putting load on CPU and occasionally skipping frames.
Both GPUs are detected by the system (Windows 10): GT630 as GPU0 and GTX970 as GPU1. I use 2 screens. I don't care where they need to be connected (970 or Motherboard) as long as Chrome uses iGPU and I can keep using Nvidia for gaming. One of the screens is 144Hz. The motherboard is ASUS ROG Hero.
I've tried different settings, but nothing seems to work as intended, and usually people look for a solution to the exactly opposite problem...
Update (command switches):
Running chrome with --gpu-active-vendor-id=0x8086 --gpu-active-device-id=0x3E92
or --gpu-vendor-id=0x8086 --gpu-device-id=0x3E92
or --gpu-testing-vendor-id=0x8086 --gpu-testing-device-id=0x3E92
results in:
GPU0 VENDOR = 0x10de, DEVICE= 0x13c2 ACTIVE
GPU1 VENDOR = 0x8086, DEVICE= 0x3e92
GL_RENDERER ANGLE (NVIDIA GeForce GTX 970 Direct3D11 vs_5_0 ps_5_0)`
Vivaldi browser seems to accept --gpu-testing-vendor-id=0x8086 --gpu-testing-device-id=0x3E92
which results in:
GPU0 VENDOR = 0x8086, DEVICE= 0x3e92 ACTIVE
GL_RENDERER ANGLE (NVIDIA GeForce GTX 970 Direct3D11 vs_5_0 ps_5_0)`
However it still uses Nvidia for renderer and doesn't utilize GT630 igfx.
The only method that works so far is disabling Nvidia card in Device Manager, launching Chrome, and re-enabling Nvidia card. When Chrome is launched without the discrete card present in the system, it runs with the following configuration and it's the only one that uses HW decoding from GT630:
GPU0 VENDOR = 0x8086, DEVICE= 0x3e92 ACTIVE
GPU1 VENDOR = 0x10de, DEVICE= 0x13c2
GL_RENDERER ANGLE (Intel(R) UHD Graphics 630 Direct3D11 vs_5_0 ps_5_0)
I had this problem for a few months now and yesterday I found a solution to the problem:
Display settings -> Graphic settings -> Choose an app to set preference: Classic App -> Browse -> Firefox.exe (Chrome in your case) -> Firefox (Button that appears below the browse button) -> Options. I then chose Power Saving which makes my browser use the iGPU. High Performance would make the browser use my dedicated GPU.
Screenshot:
If you wish to automate the task of disabling the Nvidia adapter, launching Chrome and re-enabling the adapter, you may use a batch script (.bat file) that you can put on the desktop as an icon.
Using the Microsoft command line tool Devcon.exe :
devcon.exe disable "NVIDIA GeForce GTX 970"
start "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
timeout 5
devcon.exe enable "NVIDIA GeForce GTX 970"
Check in Device Manager, section Display adapters, that the above name of the adapter is correct.
Other utilities that can be used instead of Devcon are DevManView and MultiMonitorTool.