Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mini-led setting doesn't appear to be re-applied after reboot #2802

Closed
2 tasks done
BillyONeal opened this issue Jul 3, 2024 · 25 comments
Closed
2 tasks done

Mini-led setting doesn't appear to be re-applied after reboot #2802

BillyONeal opened this issue Jul 3, 2024 · 25 comments
Labels
question Further information is requested

Comments

@BillyONeal
Copy link

Rules

  • I made myself familiar with the Readme, FAQ and Troubleshooting.
  • I understand that, if insufficient information or no app logs will be provided, my issue will be closed without an answer.

What's wrong?

When my machine boots, it appears to have 'forgotten' to disable the multi-zone backlight. If I cycle the backlight setting 3 times, everything seems to work perfectly afterwards.

How to reproduce the bug?

  1. Set G-Helper to autostart
  2. Select 'One Zone' backlighting
  3. Reboot the system
  4. On reboot one of the multizone modes is clearly in use; I'm not sure if it's "Multi Zone" or "Multi Zone Strong" that it gets on reboot.
  5. Change the backlight setting 3 times (to wrap back around to 'One Zone') and things work fine again.

Logs

log.txt
config.json

Device and Model

Strix SCAR 18 G843JYR

Additional information.

I also tried this on a 2023 Zepherus G14 which only has multi zone on or off and G-Helper seems to work perfectly there, so I'm not sure if this is a firmware problem or G-Helper not behaving the same way given that this model has multiple multi zone backlight modes.

Armoury Crate

Uninstalled

Asus Services

0

Version

0.176.0

OS

Windows 11 Version 23H2 (OS Build 22631.3737)

@BillyONeal
Copy link
Author

Looks like a firmware bug to me :(

7/2/2024 9:49:26 PM: App launched: ROG Strix SCAR 18 G834JYR_G834JYR :0.176.0.0en-US
7/2/2024 9:49:28 PM: Matrix control device was not found on your machine.
7/2/2024 9:49:28 PM: NVIDIA GeForce RTX 4090 Laptop GPU
7/2/2024 9:49:29 PM: CPU: -1 - Intel(R) Core(TM) i9-14900HX - Intel64 Family 6 Model 183 Stepping 1
7/2/2024 9:49:29 PM: AutoSetting for Online
7/2/2024 9:49:29 PM: BatteryLimit = 80 : OK
7/2/2024 9:49:29 PM: Eco flag : 0
7/2/2024 9:49:29 PM: Mux flag : 1
7/2/2024 9:49:29 PM: \\?\DISPLAY#BOE0C58#4&30553daa&0&UID8388688#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL
7/2/2024 9:49:29 PM: \\?\DISPLAY#BOE0C58#4&30553daa&0&UID8388688#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} \\.\DISPLAY1\Monitor0
7/2/2024 9:49:29 PM: Miniled: -65536 2

OK based on

Logger.WriteLine($"Miniled: {miniled1} {miniled2}");
that's why G-Helper thinks 'One Zone'

7/2/2024 9:49:29 PM: NE180QDM-NM1 HDR: False 8 1 False
7/2/2024 9:49:29 PM: Mode = 0 : OK
7/2/2024 9:49:29 PM: USB 19B6|64: 5A-41-53-55-53-20-54-65-63-68-2E-49-6E-63-2E
7/2/2024 9:49:30 PM: Input: \\?\hid#vid_0b05&pid_19b6&mi_00&col03#7&8bfce01&0&0002#{4d1e55b2-f16f-11cf-88cb-001111000030}
7/2/2024 9:49:30 PM: Init 19B6: 5D-B9
7/2/2024 9:49:30 PM: Init 19B6: 5D-41-53-55-53-20-54-65-63-68-2E-49-6E-63-2E
7/2/2024 9:49:30 PM: Init 19B6: 5D-05-20-31-00-1A
7/2/2024 9:49:30 PM: USB 19B6: 5D-BD-01-AB-02-11-11-FF
7/2/2024 9:49:30 PM: AuraMode: AuraStatic
7/2/2024 9:49:30 PM: USB 19B6: 5D-B3-00-00-FF-FF-FF-EB-00-00-FF-FF-FF-00-00-00-00
7/2/2024 9:49:30 PM: USB 19B6: 5D-B5-00-00-00
7/2/2024 9:49:30 PM: USB 19B6: 5D-B4
7/2/2024 9:49:30 PM: Monitor Power On
7/2/2024 9:49:30 PM: Lid Open
7/2/2024 9:49:30 PM: Lid 19B6: 5D-BA-C5-C4-01
7/2/2024 9:49:31 PM: Auto 19B6: 5D-BA-C5-C4-01
7/2/2024 9:49:37 PM: HID Device Event: Checking for new ASUS Mice
7/2/2024 9:49:53 PM: Miniled: -65536 2

Hmmm interesting that that happened again...

7/2/2024 9:49:53 PM: NE180QDM-NM1 HDR: False 8 1 False
7/2/2024 9:49:54 PM: Design Capacity: 90001mWh, Full Charge Capacity: 89937mWh, Health: 0.9992888967900356662703747736%
7/2/2024 9:49:55 PM: Latest version 0.176.0.0

OK this is the first mode change to 'Multi Zone':

7/2/2024 9:49:58 PM: MiniledToggle: -65536 2
7/2/2024 9:49:58 PM: \\?\DISPLAY#BOE0C58#4&30553daa&0&UID8388688#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL
7/2/2024 9:49:58 PM: \\?\DISPLAY#BOE0C58#4&30553daa&0&UID8388688#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} \\.\DISPLAY1\Monitor0
7/2/2024 9:49:58 PM: Miniled2 = 0 : OK
7/2/2024 9:49:58 PM: Miniled: -65536 0
7/2/2024 9:49:58 PM: NE180QDM-NM1 HDR: False 8 1 False

And the second to 'Multi Zone Strong':

7/2/2024 9:50:00 PM: MiniledToggle: -65536 0
7/2/2024 9:50:00 PM: \\?\DISPLAY#BOE0C58#4&30553daa&0&UID8388688#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL
7/2/2024 9:50:00 PM: \\?\DISPLAY#BOE0C58#4&30553daa&0&UID8388688#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} \\.\DISPLAY1\Monitor0
7/2/2024 9:50:00 PM: Miniled2 = 1 : OK
7/2/2024 9:50:00 PM: Miniled: -65536 1
7/2/2024 9:50:00 PM: NE180QDM-NM1 HDR: False 8 1 False

And the third back to 'Single Zone'. Which is back to 2 which is what we started at, but the display is actually behaving correctly now.

7/2/2024 9:50:02 PM: MiniledToggle: -65536 1
7/2/2024 9:50:02 PM: \\?\DISPLAY#BOE0C58#4&30553daa&0&UID8388688#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL
7/2/2024 9:50:02 PM: \\?\DISPLAY#BOE0C58#4&30553daa&0&UID8388688#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} \\.\DISPLAY1\Monitor0
7/2/2024 9:50:02 PM: Miniled2 = 2 : OK
7/2/2024 9:50:02 PM: Miniled: -65536 2
7/2/2024 9:50:02 PM: NE180QDM-NM1 HDR: False 8 1 False

Perhaps I should try Armory Crate and see if it has the same funny behavior

BillyONeal added a commit to BillyONeal/g-helper that referenced this issue Jul 3, 2024
Appears to workaround firmware bug as described in seerge#2802
@seerge
Copy link
Owner

seerge commented Jul 3, 2024

@BillyONeal hello, I'm replying here (instead of PR comments), cause I want to figure out reasons first

So on Scar 18 - system doesn't remember last used Multi/single zone toggle, and always forces Multizone, right ? Cause form log i see that app reads status on start and it's actually 2 (i.e. single-zone). So it shows that in the UI.

7/2/2024 9:49:53 PM: Miniled: -65536 2

And on G14 2023 - everything is working correctly in all cases ?


Can you check how it behaves with AC, i.e. if it also resets on reboot? Or does AC somehow force last used mode on start (then you would probably notice a switch at some moment during windows boot

@BillyONeal
Copy link
Author

So on Scar 18 - system doesn't remember last used Multi/single zone toggle, and always forces Multizone, right ? Cause form log i see that app reads status on start and it's actually 2 (i.e. single-zone). So it shows that in the UI

Correct, the UI shows single zone but the actual backlight behavior is multi zone.

And on G14 2023 - everything is working correctly in all cases ?

I believe so.

Can you check how it behaves with AC, i.e. if it also resets on reboot?

I'm not sure I understand the question: that the setting is reset on reboot is the bug.

Or does AC somehow force last used mode on start (then you would probably notice a switch at some moment during windows boot

I don't see any change in behavior during Windows boot. I wouldn't be surprised if the UEFI is changing this to show the boot logo but not updating some firmware bits. Let me try turning the logo off and see if that changes anything....

@seerge
Copy link
Owner

seerge commented Jul 3, 2024

@BillyONeal

I'm not sure I understand the question: that the setting is reset on reboot is the bug.

Well, I was wondering if you would install Armoury - would it "force" last used single/multizone setting when it or it's services start ? (Pretty much what you suggest to do in G-Helper)

@BillyONeal
Copy link
Author

Well, I was wondering if you would install Armoury - would it "force" last used single/multizone setting when it or it's services start ? (Pretty much what you suggest to do in G-Helper)

I'll give this a shot, I pretty much never used Armory Crate so I don't know what it does. (G-Helper is why I bought this machine and the first thing I did out the box was throw out Armory Create and install G-Helper instead)

@BillyONeal
Copy link
Author

I can confirm Armory Crate appears to suffer the same problem; the system is clearly not in single backlight mode on boot, then eventually Armory Crate wakes up and switches it to single backlight mode.

@BillyONeal
Copy link
Author

Armory Crate also suffers from the bug I wrote in #2803 where when the system doesn't boot to the internal monitor it doesn't reset the setting

@seerge
Copy link
Owner

seerge commented Jul 4, 2024

@BillyONeal just out of curiosity, can you try CMOS / Hardware reset?

I just wonder if it's an individual hiccup of your specific device or is it behavior of the BIOS on all G843JYR ?

@seerge seerge changed the title Backlight setting doesn't appear to be applied after reboot Mini-led setting doesn't appear to be re-applied after reboot Jul 4, 2024
@seerge seerge added the question Further information is requested label Jul 4, 2024
@BillyONeal
Copy link
Author

BillyONeal commented Jul 5, 2024

@BillyONeal just out of curiosity, can you try CMOS / Hardware reset?

CMOS / Hardware reset caused G-Helper to display 'Multi Zone' on the next reboot but didn't otherwise fix the problem. Selecting 'One Zone' and rebooting still reboots with the physical display clearly in 'Multi Zone' but G-Helper's UI says 'Single Zone'.

You can see when the display mode switches to multizone while showing the boot logo. I tried to take video to show you but sadly the backlight difference didn't show up all that well in the video :(

@BillyONeal
Copy link
Author

I just wonder if it's an individual hiccup of your specific device or is it behavior of the BIOS on all G843JYR ?

Unfortunately I don't have another one to test 😅

@seerge
Copy link
Owner

seerge commented Jul 5, 2024

@BillyONeal Ok, great. I guess it's safe to assume that it's specific behavior of your model (not your device only)

I don't think it makes sense to overload UI with extra checkboxes that 99% of users don't need. I usually just do such things this via optional config params.

Also forcing AutoScreen every time display configuration changes for all users on all models may be too much as well :)

Please try this build.

It should force miniled command only for your model (G843JYR) or if "force_miniled" : 1, is set in config on app start and on display configuration change.

GHelper.zip

@BillyONeal
Copy link
Author

I don't think it makes sense to overload UI with extra checkboxes that 99% of users don't need. I usually just do such things this via optional config params.

That's fair

Also forcing AutoScreen every time display configuration changes for all users on all models may be too much as well :)

This one I don't think is specific to my model, I'll have to try with the other one when I get access to it again, but admittedly it's a different bug than this one. I just noticed it because I was paying attention while trying to author #2803 . It's fair to close this and I'll open a different one if I still experience the problem.

(That is, I think if the built-in display is off because an external display is in use when G-Helper tries to apply refresh rate, overdrive, or other screen changes, that doesn't stick)

Trying the build you supplied now (I have to post before trying because testing that it's fixed requires a reboot)

@seerge
Copy link
Owner

seerge commented Jul 5, 2024

@BillyONeal

This one I don't think is specific to my model, I'll have to try with the other one when I get access to it again, but admittedly it's a different bug than this one. I just noticed it because I was paying attention while trying to author #2803 . It's fair to close this and I'll open a different one if I still experience the problem.

If other modes are affected, we can always extend the list :)

public static bool IsForceMiniled()

And btw, sorry for offering own solution, I didn't mean to offend you anyhow.

I'm just trying not to set any settings / send any commands in the app unless user explicitly chooses so. Except it's some unique cases, like fixing firmware behavior.

@BillyONeal
Copy link
Author

Please try this build.

This did not fix it, I think just the model detection didn't work. I tried manually adding that to config.json but apparently did a syntax error.... cursed trailing commas. Trying again after I post this comment...

log.txt

And btw, sorry for offering own solution, I didn't mean to offend you anyhow.

No offense taken! I certainly respond with different solutions to contributors so I get it. Like I said, the only reason I tried at all is that I didn't want to just complain about a problem without attempting to fix it, particularly since I have the device in hand and can test in-situ and you don't.

I'm just trying not to set any settings / send any commands in the app unless user explicitly chooses so. Except it's some unique cases, like fixing firmware behavior.

That makes sense!

@BillyONeal
Copy link
Author

OK when Bill is not a dum dum editing config.json, adding "force_miniled": 1 worked.

seerge added a commit that referenced this issue Jul 5, 2024
@BillyONeal
Copy link
Author

I think it needs:

diff --git a/app/AppConfig.cs b/app/AppConfig.cs
index d0da418..b3419b7 100644
--- a/app/AppConfig.cs
+++ b/app/AppConfig.cs
@@ -659,7 +659,7 @@ public static class AppConfig
 
     public static bool IsForceMiniled()
     {
-        return ContainsModel("G843JYR") || Is("force_miniled");
+        return ContainsModel("G834JYR") || Is("force_miniled");
     }
 
 }

@BillyONeal
Copy link
Author

I realize that I made this typo in the initial report, sorry!

@seerge
Copy link
Owner

seerge commented Jul 5, 2024

@BillyONeal I just copied model name from what you have typed, apparently it's G834JYR :)

I assume it's resolved now.

GHelper.zip

@seerge seerge closed this as completed Jul 5, 2024
@BillyONeal
Copy link
Author

Thanks 👍

@BillyONeal
Copy link
Author

I confirm the other problem (things not sticking when internal display is off) remains, I'll see if it repros on the other machine and file a new bug with more complete information. Thanks again!

@seerge
Copy link
Owner

seerge commented Jul 5, 2024

@BillyONeal do you mean that it remains on G834JYR or on other model ?

@BillyONeal
Copy link
Author

It remains on the G834JYR; I want to check if it does the same thing on my 2023 G14 so that I understand what's going on better before bothering you again, but I don't have that machine with me at the moment. (This was why I made it listen to WM_DISPLAYCHANGE in my PR, but since G-Helper is correctly making the buttons appear and not maybe there's a better mechanism)

  1. Have an external monitor plugged into the laptop, and the machine plugged in.
  2. Use Win+P and select 'PC Screen Only'
  3. Open G-Helper and make sure 'Auto' is selected for the laptop screen. This should make G-Helper set the screen to high refresh rate and overdrive.
  4. Press Win+P 4 times (to select 'Second Screen Only'). Observe that all laptop screen settings in G-Helper become disabled. (This is good!)
  5. Unplug the machine. This is when 'Auto' should have switched to 60Hz, but it can't do that because the built in screen is off.
  6. Press Win+P 2 times (to select 'PC Screen Only' again). Observe that the display control buttons in G-Helper become available. But the screen is still in high refresh rate mode when it should have been set to 60 Hz.

@seerge
Copy link
Owner

seerge commented Jul 5, 2024

@BillyONeal ah, i see. But setting refresh rate every time display config changes is also not an option.

I literally had a guy here, who's display was starting flicker if you would set same refresh rate as it had before ...

@BillyONeal
Copy link
Author

BillyONeal commented Jul 5, 2024

And I just checked the similar repro with the miniled setting: If the internal display is off when G-Helper turns on I still experience the out of sync miniled bug. (G-Helper is now matching Armory Crate's behavior.)

That is, on the G834JYR:

  1. Win+P to select 'PC Screen Only'
  2. Pick 'One Zone' in G-Helper
  3. Win+P to select 'Second Screen Only'
  4. Reboot
  5. Login
  6. Win+P to select 'PC Screen Only'
  7. G-Helper says 'One Zone' but actual monitor is in 'Multi Zone'

If you do the same thing with Armory Crate the same bug happens 😭. But this edge case is much less frequent than every reboot so I don't care much

@BillyONeal ah, i see. But setting refresh rate every time display config changes is also not an option.

Sure, please don't take my 'I spent 10 minutes on this and it kinda works' guess attempt as 'this is the exact change I think should be' :)

Given that G-Helper is enabling and disabling the buttons in the UI at the right time without listening to WM_DISPLAYCHANGE there's almost certainly a better way to do what I attempted; I just didn't find where that is done yet.

I literally had a guy here, who's display was starting flicker if you would set same refresh rate as it had before ...

😭

@seerge
Copy link
Owner

seerge commented Jul 6, 2024

@BillyONeal oh, ok.

Can you check app log for what happens on that moment ?
Cause when app detects display configuration change it should write

7/6/2024 10:20:55 AM: Display configuration changed.

And after that run init miniled command (for your model)

if (AppConfig.IsForceMiniled())

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants