brave / brave-browser

Brave browser for Android, iOS, Linux, macOS, Windows.
https://brave.com
Mozilla Public License 2.0
17.43k stars 2.26k forks source link

Brave Hardware Acceleration Overrides Nvidia and Windows power plan settings, wastes power #14120

Open austinksmith opened 3 years ago

austinksmith commented 3 years ago

Description

When Brave is opened, and hardware acceleration is enabled within the brave settings. Brave is overriding all power plan settings on Windows and overriding the Nvidia control panel settings as well and forcing the dedicated GPU to be enabled instead of making use of the Integrated GPU as set using Nvidia settings.

Steps to Reproduce

  1. Use a laptop or desktop computer with Optimus or a dedicated and integrated gpu
  2. Set your nvidia control panel settings to force Brave to use the integrated GPU
  3. Set windows power plan to power save or balanced mode
  4. Open brave browser
  5. You'll now see Brave is using the dedicated GPU and overriding the settings you set previously

Actual result:

Brave is using the dedicated GPU and overriding the settings you set previously

Expected result:

Brave should not use the dedicated GPU if its been told not to use that. If there is an integrated GPU available, hardware acceleration should make use of that.

Reproduces how often:

Easily reproduced

Desktop Brave version:

V1.20.103 (Feb 10, 2021)

Android Device details:

Unsure how big of a power impact this has on android devices, has a major power impact on laptop devices running on battery.

Other info

CPU is I5-8300H which has an Intel® UHD Graphics 630 GPU built in, this GPU has plenty of hardware acceleration capabilities, no need to activate the dedicated GTX 10 series card to render videos etc.

https://ark.intel.com/content/www/us/en/ark/products/134876/intel-core-i5-8300h-processor-8m-cache-up-to-4-00-ghz.html

timse201 commented 3 years ago

I can confirm this issue. I'm using an 8750H + gtx 1050 ti. Both GPUs are used while only Brave is running. A workaround is to force brave to use the internal GPU by setting an Windows setting like described here:

https://www.nextofwindows.com/windows-10-tip-how-to-set-gpu-preferences-per-app

cc: @rebron @bsclifton

Nac110 commented 2 years ago

I also experience this issue in a laptop with an 8750H and gtx 1050. Brave doesn't follows Windows automatic GPU selection properly. When Brave should be exclusevely using the iGPU it uses the nvidia one even when on battery, this makes the browser unusable in the laptop when not plugged in. Firefox and other chromium browser do follow the Windows rules for GPU selecton so I only have a problem with Brave. It's possible to tell Brave to use only the iGPU following the instructions in the guide provided by @timse201, but this makes using an external monitor sluggish and not appropiate for intensive tasks. I hope seeing some kind of response as this issue has been persistent for a while now.

adolson commented 2 years ago

Brave is using a TON of my battery, still. I love the browser, do not want to switch to something else, but if there's no solution in sight to this, I really don't have a choice.

Look at the screenshots from just the past week to see the ridiculousness of this.

Screenshot_20220710-230330 Screenshot_20220704-193234 Screenshot_20220706-200436

22% of my battery for 3 minutes? That is NUTS. If you compare it to the other apps, it's especially crazy: 45 minutes of YouTube, 3%; 15 minutes of Brave, over ten times as much battery drain!?

I even closed all my tabs, restarted my phone, tried restricting Brave in the battery settings on my phone, etc. and it still sucks the power right down. Nothing helps...

OculiViridi commented 2 years ago

Actual result:

Brave is using the dedicated GPU and overriding the settings you set previously

Desktop Brave version:

V1.20.103 (Feb 10, 2021)

I confirm that the same issue still exists on Brave v1.41.96 (Jul 20, 2022). Brave ignores/overrides the system settings set on NVIDIA Control Panel, to let the driver choose which GPU to use (default: integrated).

But, disabling the discrete GPU both from NVIDIA Control panel and Windows Settings/Graphics, by selecting the option for brave.exe`, it's a workaround.

System info

DELL notebook with Intel Core i7-10850H 6 core Intel UHD Graphics integrated GPU NVIDIA Quadro P620 discrete GPU

Windows 10 v21H2 build 19044.1766 NVIDIA Driver v512.36

Side note

Google Chrome is not affected by the same issue and I've been using it for years without ever having any problems.

dejvizelo commented 10 months ago

I believe this issue is related to #4858

timse201 commented 10 months ago

can a dev please have a look. my coding skills are not the best. could be that the following will end up in strange behavior and is related to this issue.

we include content/browser/gpu/gpu_process_host.h here: https://github.com/brave/brave-core/blob/95bc15049f5a9c6cd5a0a2e4d452a4f9a265f2bd/chromium_src/content/browser/gpu/gpu_process_host.cc#L6

and we include the source gpu_process_host.h here: https://github.com/brave/brave-core/blob/95bc15049f5a9c6cd5a0a2e4d452a4f9a265f2bd/chromium_src/content/browser/gpu/gpu_process_host.h#L28

the source gpu_process_host.h is also included here: https://github.com/brave/brave-core/blob/95bc15049f5a9c6cd5a0a2e4d452a4f9a265f2bd/chromium_src/content/browser/gpu/gpu_process_host.cc#L20

because on chromium source it is included, too: https://chromium.googlesource.com/chromium/src/+/refs/heads/main/content/browser/gpu/gpu_process_host.cc#5

if i'm correct the source gpu_process_host.h is included twice.

cc: @rebron @bsclifton @boocmp @goodov

boocmp commented 10 months ago

Header files can be included in various source files as many times as needed. I believe that this issue is not related to the code you pointed to.

sreekanthedayar commented 3 months ago

The issue is very much still exist. Environment Lenovo Ideapad with Ryzen 5 7535HS 6 core 12 Threads Integrated Radeon NVIDIA RTX 2050 GPU

To check i had set the default graphic to use power saving mode by selecting the integrated Radeon graphics for both chrome and Brave instead of using NVIDIA Graphics processor from windows settings. But still when i check 50% of the battery usage is by brave vs 10 % usage in case of Chrome. This is compared with same set of extensions and tabs opened. couple of reddit forums, 1 YouTube with a Video song played all along, and a lenovo support channel website.

austinksmith commented 3 months ago

I am bumping this, the only solution right now is to disable hardware acceleration which hurts performance and increases cpu work (wastes power).