Closed Thrakios closed 1 year ago
@Thrakios hello, i indeed see
5/9/2023 11:32:06 PM: GPUEco = 1 : 0
in a log, app sends command and gets 0 as response (i.e. asus bios refuses to switch)
Can you try to run following in powershell (As admin), it should do same thing (disable GPU)
(Get-WmiObject -Namespace Root/WMI -Class AsusAtkWmi_WMNB).DEVS(0x00090020, 1)
What is your current nvidia optimus setting?
Inputing the command, I get the following output:
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 1
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
result : 0
PSComputerName :
My optimus setting is on "automatically select"
Oke, result : 0
is pretty much same thing (bios refuses)
@Thrakios also (next to question above) - do you by any chance have external screen connected as well?
Oddly enough, it seem that after a reboot, G-Helper manages to disable the dGPU once, and only once. You can see it at the very bottom of the log: log.txt
@Thrakios
Under optimus I meant this :
From log i indeed see few times (i assume after restarts?) when eco command succeeds (in both directions even):
5/10/2023 11:57:47 AM: GPUEco = 1 : OK
...
5/10/2023 11:57:52 AM: GPUEco = 0 : OK
So the goal is to find what app (or driver) is blocking GPU from disabling after.
@Thrakios Another thought, you can "reload" GPU driver in windows by pressing Ctr+Shift+WinKey+B . You screen will blink black for a second. Can you try that and disable gpu after?
I've tried Eco Mode both after enabling Optimus and Nvidia GPU only mode. It worked. However from there, when I return to Standard Mode, then try to get back into Eco Mode it doesn't work properly:
I have tried the shortcut, and my screen blinked but it still didn't manage to enable Mode. So far it seems only rebooting allows me to enable Eco Mode, and just once.
@Thrakios oke, clear.
Can you try to disable and then enable 4080 in device manager (that should theoretically kill ALL possible processes using GPU) ? And then try Eco again?
If doesn't help - I wonder if uninstallling nvida drivers (using https://www.guru3d.com/files-details/display-driver-uninstaller-download.html ) and reinstalling fresh ones would help ? :|
@Thrakios P.S. I have noticed you have AMD Adrenaline running (in tray), can you remove it from startup completely (from task manager)? May be amd is messing that ...
So : 1 - Disabling just AMD Adrenaline did not fix the issue. 2 - Disabling then enabling the dGPU and then quickly enabling GPU Eco Mode works ! Finally there's something that works.
Yet Nvidia GPU activity (which started working) said there are no processes running, and still I couldn't switch without disabling and enabling it.
I'll try to uninstall-reinstall drivers now!
@Thrakios ok, that's cool :) let me know if driver reinstall helps
@seerge Unfortunately the driver reinstall didn't help :(
Further I've tried an Nvidia Driver rollback, from the newest Nvidia-provided one to the slightly older ASUS-recommended (Version V31.0.15.2892) one. It also didn't resolve the issue.
I have adedd a "workaround" to the app.
It will try to disable GPU in a normal way, and if it fails will restart GPU in device manager and try to disable again. Only for case when you click "Eco" mode manually (i.e. not in Optimized mode switching)
Try this build, and post a log : GHelper.zip
:)
Thanks! Unfortunately it didn't work. I tried twice, the second time running it with administrator privileges but it didn't fix it. log.txt
@Thrakios and now : GHelper.zip
Oke
5/10/2023 8:24:43 PM: GPUEco = 1 : 0
5/10/2023 8:24:43 PM: Trying to disable GPU in a hard way
5/10/2023 8:24:43 PM: Device ID:PCI\VEN_10DE&DEV_27E0&SUBSYS_182D1043&REV_A1
5/10/2023 8:24:46 PM: Microsoft PnP Utility
Restarting device: PCI\VEN_10DE&DEV_27E0&SUBSYS_182D1043&REV_A1\4&2b5a5da1&0&0009
Device restarted successfully.
5/10/2023 8:25:36 PM: GPUEco = 1 : 0
So it actually managed to restart device , but eco is still refused.
Can you try to run manually in powershell as admin
pnputil /restart-device /device-id "PCI\VEN_10DE&DEV_27E0&SUBSYS_182D1043&REV_A1\4&2b5a5da1&0&0009"
And then try to set Eco mode in app again ?
It could be that it needs to be disabled -> enabled (as you did manually), instead of restarting
For that you can try : GHelper.zip
I manually tried the powershell command, unfortunately it didn't work. I also tried the new release, here's the log. Still did not work :/
@Thrakios does manually disabling / enabling GPU in device manager (visually, as you originally did) and then setting Eco still work for you ? Or it worked only once ? :|
I'm asking cause may be it needs some delay between actions, to actually succeeed ....
@Thrakios and if manual disabling doesn't work anymore, I thought about 2 other general things to check/try
Rest that I suggested to Avacado_I_Guess from reddit : You may want to do a reset : turn off laptop normally, press and hold power button for like 30-40 seconds, then boot it again (it will take a bit slower to boot). This will reset all hardware settings
Check if fast boot is ON or OFF in bios settings (F2 on boot). And try to set opposite (i.e. if it's ON turn it OFF)
Manually disabling / enabling GPU does still allow to enable Eco mode. I guess both disabling, and enabling takes a bit of time. Trying to time it, I had 3:30 seconds to disable, and 2:15 seconds to enable. Then I set Eco Mode almost immediately (within 2 seconds).
@Thrakios oke, try version with 2 second delays GHelper.zip
/me keeping fingers crossed
Still did not work unfortunately. It did work twice in a row at first so I was quite excited, but it seems it was a fluke. When I tried again it didn't work. log.txt
You can try to find appropriate delays by running 3 commands (with delays inbetween) in powershell as admin :
pnputil /disable-device /deviceid "PCI\VEN_10DE&DEV_27E0&SUBSYS_182D1043&REV_A1\4&2b5a5da1&0&0009"
pnputil /enable-device /deviceid "PCI\VEN_10DE&DEV_27E0&SUBSYS_182D1043&REV_A1\4&2b5a5da1&0&0009"
(Get-WmiObject -Namespace Root/WMI -Class AsusAtkWmi_WMNB).DEVS(0x00090020, 1)
@Thrakios or try build with 4 second delays between each : GHelper.zip
The commands, when I input them manually to powershell in Admin Mode don't seem to disable the dGPU. 😅
Here's a screen recording where I do the steps manually, hoping it may help. (The recording tool bugs a bit, don't mind it)
https://github.com/seerge/g-helper/assets/133026331/dabb5b4f-7816-4f96-9a21-86ab24c00064
@Thrakios then i can only blame his majesty windows, as pnputil is supposed (and actually seem) to do exactly same as you do manually in device manager.
Do you run powershell commands with delay? Try to run them with big delays, like 10 seconds or so. If it doesn't work, i can't help here . At least there is some workaround.
Did you had a chance to try bios reset / fast boot things i mentioned before ?
Here's a screenshot following the first command, with device manager on the side. It doesn't seem to have disabled the dGPU. Did I do something wrong?
PS : I did try with disabling fast boot, and had done a reset yesterday
Here's a screenshot following the first command, with device manager on the side. It doesn't seem to have disabled the dGPU. Did I do something wrong?
Oke, i have accidentaly put extra - in the param name (but not in the app code tho)
Try this (with delays)
pnputil /disable-device /deviceid "PCI\VEN_10DE&DEV_27E0&SUBSYS_182D1043&REV_A1\4&2b5a5da1&0&0009"
pnputil /enable-device /deviceid "PCI\VEN_10DE&DEV_27E0&SUBSYS_182D1043&REV_A1\4&2b5a5da1&0&0009"
(Get-WmiObject -Namespace Root/WMI -Class AsusAtkWmi_WMNB).DEVS(0x00090020, 1)
@Thrakios or just try this build (i have extended timings delays even more) : GHelper.zip
I've experienced this same issue from original post on a 2023 G14 with RTX 4070. I wrote this powershell script:
$device = Get-PnpDevice | Where-Object { $_.FriendlyName -imatch 'NVIDIA' -and $_.Class -eq 'Display' }
Disable-PnpDevice $device.InstanceId -Confirm:$true
Enable-PnpDevice $device.InstanceId -Confirm:$true
I assume the drivers are buggy and don't seem to properly "release" when programs are done, and g-helper hangs as discussed. My workaround is to leave the device on Eco mode except when I'm actively using the GPU. When I'm done using the GPU, I quit all relevant programs, run my script, and then enable Eco mode in G-helper. It's far from ideal but a suitable workaround while we wait for better drivers from bleeding edge hardware.
Related, I have a bug where the device bugchecks (BSOD) when trying to sleep while an external display is connected to the NVIDIA GPU. I was able to capture a memory dump and NVIDIA confirmed they can reproduce the issue, so it's a matter of time until they triage & fix it.
@pettijohn Your powershell script worked! Whereas I didn't manage to get the other one disabling my GPU for some reason I don't quite understand
@Thrakios @pettijohn did you try build from my last post, and if so can you post logs from it after trying eco?
As if pnputil doesn’t do the thing i can try powershells analog.
Just in case I have pushed 0.60 https://github.com/seerge/g-helper/releases/tag/v0.60 (with pnputil enable / disable) to collect more feedback.
Tried to switch to Eco mode at about 2:15. Tried twice in the app, never succeeded. Then I ran my above powershell script, started g-helper, and successfully switched to Eco mode. I also included a few exceptions from the logs.
@pettijohn i see that nvidia API is completely turned off in your case. Looks like driver in windows is acting in aftermath from switching eco / standard ? So app didn't even try to restart GPU via device manager, as it didn't get device id :) I can try to add a workaround using powershell functions
@pettijohn @Thrakios you can try powershell way of restarting :
I have also removed immediate attempt to set Eco after for safety (as in one of such testing after disabling/enabling device in device manager it just crashed). So it will restart GPU, but you need to click Eco by hand.
Don't want to clutter the issue report too much. Just providing some more infos (maybe).
This whole issue is awfully reminding me of the troubles I currently have with eco mode (6900HS, 3070Ti), even with armoury crates installed. My feedback is kinda out of scope since I'm using an Insider version of Windows. But it might maybe help ?
I tried numerous tricks to enable it, including disabling manually the nvidia dGPU... and when I successfully trick windows enough to be able to turn eco mode on.. I get a 100% chance of a BSOD mentioning : POWER_STATE_FAILURE from the nvidia driver.
Sometimes rebooting from this BSOD will have eco mode activated, but the dGPU would be invisible in device manager, no nvidia control panel... and re-bsod quickly after loading the user session... until I turn on standard mode (if I have the time during before the BSOD).
This might very well be a Windows/Nvidia issue (i checked old nvidia drivers, didn't change much... so probably a windows issue).
Maybe a question for @Thrakios :
Does your dGPU tab/area in Armoury Crates looks Orange like mine ?
It seems that Windows is somehow considering the (my ?) dGPU to be connected to an external display (which is not the case) and that it messes around with the ECO mode.
PS : I'm trying the GHelper build you provided here Seerge, and it seems to be able to activate ECO mode on my Laptop after asking me to restart the dGPU ! Hopefully no bsod will follow...
I'll follow this thread closely. :)
@Neristee if you can 100% create a BSOD, submit the memory dump to NVIDIA, see here: https://nvidia.custhelp.com/app/answers/detail/a_id/4842
@Neristee changes from that build are live in 0.61 already @pettijohn / @Thrakios did you had chance to try it ? Does it also work for you same as it does for @Neristee ? I will close this issue then :)
Still using ECO mode through GHelper. No BSOD. And battery discharge numbers I haven't seen in a long time.
EDIT : Oh well. Can't wake up the dGPU from its deep sleep, even when toggling standard mode. At least it can sleep now.
@Neristee if you can 100% create a BSOD, submit the memory dump to NVIDIA, see here: https://nvidia.custhelp.com/app/answers/detail/a_id/4842
I can't reproduce the bsod on the current windows insider canary build. I was able to reproduce it on last week's build though. I didn't even try tbh because I just got used to use "Standard" at the expense of battery life. To be fair, there seems to have a lot of USB related work under the hood (xbox controller wasn't working last build for example) so it might be a me issue on that one.
Yes the dGPU area in my AC looks the same. Though I've now uninstalled it. As for GHelper, here's a log. I didn't manage to get it working unfortunately :(
@Thrakios that's sad, but i see that it seem to restart gpu (and uses powershell way now with 2 seconds pause inbetween disabling and enabling) :) then i don't know what to do in your case
Btw, i hope no one here uses ASUS Smart Display Control , as this issue has reminded me that in certain cituations it can also interfere https://github.com/seerge/g-helper/issues/377
@seerge I have uninstalled ASUS Smart Display Control, and now GHelper does successfully get into Eco Mode, after the automatic GPU restart.
The bug is very simple. Selecting Eco Mode does nothing other than freeze the UI for a few moments, then later return to Standard mode.
The log is attached. log.txt