BetterDisplay icon indicating copy to clipboard operation
BetterDisplay copied to clipboard

Bug: after waking up a mirrored display is dim and BetterDummy is not responding until force quit and start again

Open vheathen opened this issue 3 years ago • 19 comments

Quite often after a long sleep and waking up the external display is dim and BetterDummy is not responding. Scaling etc works though. After I force to quit it in the Process manager and start again everything returns to normal. I have this issue for quite long time already with different versions. Can't say when I found it the first time.

BetterDummy Pro v1.2.7 build 8076 MacOS 12.4 MacBook Pro M1 Max 14" Xiaomi Curved Gaming Monitor 34" connected through Satechi Thunderbolt 4 dock and GRWIBEOU USB-C -> DisplayPort 8K cable

vheathen avatar Jul 05 '22 06:07 vheathen

Hi there,

  • Does this only affect your external display or your internal display is doing the same?
  • Does changing the slider do something or nothing at all?
  • Only DDC is affected or software brightness control (if you use the default, combined control then the 0-50% part of the slider) is affected as well?

The answers to these will help figuring out what is going on. Thank you!

waydabber avatar Jul 05 '22 11:07 waydabber

Sorry for a long pause. Its weird but recent few days sleep didn't lead to the dimmed display. May be because I rebooted my Mac (I don't do it often).

But the app is still not responding and shows a rainbow spinner when I put the mouse pointer on the app icon after every sleep. Mirroring works but it is not possible to open or change options. Right now I woke the laptop up and BetterDummy is not responding as well.

Also I found a weird bug with geometry detection on the mirrored display. The launch bar didn't show even after several (10+) minutes so I started to experiment and found interesting positioning, please check an album with screenshots: https://photos.app.goo.gl/N9frsqebQKCjMCxC7 I wasn't able to "show desktop" with a trackpad gesture, and it seems that the screenshots mentioned above are from the "All windows" screen even though there are not any windows on the screen available and many windows\apps are actually running. According to the gradient top menu colouring I would assume that it might join two screens into one? After a number of tries and BetterDummy restart the virtual screen geometry partially went back to its normal state. A number of seconds later it went back to a fully normal state. I honestly didn't expect this situation so didn't test it eventually: without restarting betterdummy and after it.

vheathen avatar Jul 08 '22 05:07 vheathen

Hi @vheathen - sorry about the delayed response!

When the spinning is happening, how does the icon look like? Do you see three dots in it? Enumerating a high number of resolution options (especially for a dummy with maybe 16K enabled or multiple dummies and displays with smooth scaling enables) takes a while but should be resolved within an acceptable timeframe.

Btw are you using dummy mirroring for HiDPI scaling and custom resolutions? Would not native smooth scaling work better with your setup?

waydabber avatar Jul 12 '22 09:07 waydabber

Hi @waydabber , thanks for the answer!

I've uploaded a screenshot with the icon to the same album . Yes, it has 3 dots. But it is not responding forever (until I restart the app).

Yesterday I got dimmed screen again. Sliders for the external display and dummy in the Control Center are disabled and it's not possible to access in-app sliders of BetterDummy.

Btw are you using dummy mirroring for HiDPI scaling and custom resolutions? Would not native smooth scaling work better with your setup? Do you mean native scaling by BetterDummy or original native scaling? If your question is about BetterDummy then yes, it does not make any difference as I'm using standard 1 step down scaling (84%).

I have Xiaomi Mi Curved Gaming Monitor 34" with 3440x1440@144 native resolution which is not supported by Apple, and in native resolution everything is too small for me.

vheathen avatar Jul 14 '22 08:07 vheathen

Hmm. The three dots means the app is enumerating display modes and configuring stuff. This should end within a few seconds - if it does not, then something is going horribly wrong. :)

Can you take a look at the Console while this is happening and filtering to BetterDisplay? This is how you can do it: https://github.com/waydabber/BetterDisplay/discussions/445

Thanks!

waydabber avatar Jul 14 '22 10:07 waydabber

✅ I have the exact same thing going on

alexmnps avatar Jul 15 '22 09:07 alexmnps

Can you guys copy a console log about this? If the three dots are never done, the app is locked up somehow in a configuration phase - this happens when the OS itself lazily enumerates the resolutions endlessly for some reason (in an undocumented API which is used to get some resolution details and manage HDR). I added a cut-off point for that in the app for this eventuality but it might not work as intended. A console log would help figuring out what is happening exactly.

waydabber avatar Jul 15 '22 09:07 waydabber

I'll give it a go next time it occurs. Keep you posted.

alexmnps avatar Jul 15 '22 09:07 alexmnps

I've tried to do it yesterday but without success - no messages (which is quite understandable because it is not responding so the process probably just freeze). And after that I had to reboot my mac cause it started to freeze as well :)

But was going to try again next time I get BetterDummy stuck, which is actually right now (just checked) :)

vheathen avatar Jul 15 '22 09:07 vheathen

Oh right, you should start logging before the reconfiguration is taking place, not when everything is locked up already - sorry for not mentioning this.

waydabber avatar Jul 15 '22 09:07 waydabber

Sadly I still can't get anything in the Console except overall freezes until I stop streaming there. Its empty, the pic is in the same album. I've tried to start it then send Mac to sleep then wake it up - BetterDummy freeze, console is empty

vheathen avatar Jul 15 '22 10:07 vheathen

I was able to captured the following logs, after locking, sleeping and waking my Mac Mini M1. The BetterDummy app will be frozen consistently after this sequence. Not sure if it helps.

info	13:21:58.589683+0200	BetterDummy	Wake intercepted, removed temporary display if present
info	13:21:58.589792+0200	BetterDummy	Configure request received
info	13:21:58.589987+0200	BetterDummy	Destroying overlay for display 100
info	13:21:58.590684+0200	BetterDummy	Configured with token 7
info	13:21:59.056329+0200	BetterDummy	Configure request received
info	13:21:59.060950+0200	BetterDummy	Configured with token 8
info	13:21:59.061125+0200	BetterDummy	Configure request received
info	13:21:59.062442+0200	BetterDummy	Configured with token 9
info	13:21:59.063317+0200	BetterDummy	Configure request received
info	13:21:59.064413+0200	BetterDummy	Configured with token 10
info	13:22:00.871973+0200	BetterDummy	Display found - ID: 100, UUID: EFA4F276-8BE7-4CD1-9C29-C47E3DFC44DF, name: Main Hidpi, vendor: 61680, model: 7944, s/n: 3000399455, virtual, dummy
info	13:22:00.872060+0200	BetterDummy	- Display is already in the display list, updating configuration counter, resolutions, name.
info	13:22:00.872572+0200	BetterDummy	Updating resolutions for display 100
info	13:22:00.872627+0200	BetterDummy	- Display has a current pixel size of 5120 by 1440 with mode id 0
info	13:22:00.872709+0200	BetterDummy	Attempting MP configuration for display 100
info	13:22:02.197194+0200	BetterDummy	Configure request received
info	13:22:02.204602+0200	BetterDummy	Configured with token 1
info	13:22:02.205352+0200	BetterDummy	Configure request received
info	13:22:02.250752+0200	BetterDummy	Configured with token 2
info	13:22:02.250962+0200	BetterDummy	Configure request received
info	13:22:02.251693+0200	BetterDummy	Configured with token 3
info	13:22:03.971641+0200	BetterDummy	Service port update completed
info	13:22:03.971719+0200	BetterDummy	Updating resolutions for display 2
info	13:22:03.971901+0200	BetterDummy	- Display has a current pixel size of 6144 by 1728 with mode id 104
info	13:22:03.972043+0200	BetterDummy	Attempting MP configuration for display 2
info	13:22:03.972074+0200	BetterDummy	MP not found for display 2
info	13:22:04.973989+0200	BetterDummy	Updating MPDisplays...
info	13:22:05.976502+0200	BetterDummy	...done
info	13:22:05.976547+0200	BetterDummy	Retry attempt 3 of MP configuration for display 2
info	13:22:06.977659+0200	BetterDummy	Attempting MP configuration for display 2
info	13:22:07.021037+0200	BetterDummy	- Display has a native resolution of 5120 by 1440 with mode id 170
info	13:22:07.021146+0200	BetterDummy	- Display has a default resolution of 5120 by 1440 with mode id 170
info	13:22:07.021311+0200	BetterDummy	MP config attempt succeeded for display 2
info	13:22:07.021490+0200	BetterDummy	Resolution update done for display 2
info	13:22:07.021733+0200	BetterDummy	Display 2 has HDR but is not in HDR mode, upscale cannot be enabled
info	13:22:07.022239+0200	BetterDummy	- EDR max: 1.0 potential: 1.0 reference: 1.0
info	13:22:07.022313+0200	BetterDummy	Display not found - VIRTUAL DUMMY id: 100, name: Main Hidpi, vendor: 61680, model: 7944, s/n: 3000399455
info	13:22:07.022392+0200	BetterDummy	- Removing display.
info	13:22:07.027127+0200	BetterDummy	Color enforcer window created
info	13:22:07.027313+0200	BetterDummy	Update of online display list completed.
info	13:22:07.027394+0200	BetterDummy	Updating global display coordinate space size to 4000.0x1125.0
info	13:22:07.027895+0200	BetterDummy	Service port update initiated for DDC communication
info	13:22:07.043584+0200	BetterDummy	- Service match found for display 2
info	13:22:07.043689+0200	BetterDummy	- Display seems to be suitable for DDC
info	13:22:07.043812+0200	BetterDummy	Service port update completed
info	13:22:07.045473+0200	BetterDummy	Connecting associated dummy Main HiDPI for display @1:BetterDummy.Display:33D59505-6D5C-432B-A047-AA1877AA4463-
info	13:22:07.045792+0200	BetterDummy	Connecting dummy Main HiDPI
info	13:22:07.047189+0200	BetterDummy	Creating virtual display: Main HiDPI
info	13:22:07.059570+0200	BetterDummy	- Creating display, preparing modes
info	13:22:07.059655+0200	BetterDummy	- Preparing settings for display
info	13:22:07.528122+0200	BetterDummy	- Settings are successfully applied. Dummy Display ID is 103
info	13:22:07.529896+0200	BetterDummy	- Connected with display ID 103 and UUID UNKNOWN
info	13:22:07.530915+0200	BetterDummy	- Virtual display successfully connected
info	13:22:07.531619+0200	BetterDummy	Auto setting mirror for Main HiDPI to associated display 2

alexmnps avatar Jul 15 '22 11:07 alexmnps

And that's it? I see that you are using an associated dummy. This fails somewhere completely different than what I assumed.

Why not use native smooth scaling instead of dummy mirroring? Or the resolution is not appropriate for that?

waydabber avatar Jul 15 '22 13:07 waydabber

Can you please try what happens if you disassociate this dummy and try mirroring it manually to the associated display 2 (I assume that is Xiaomi Curved Gaming Monitor 34")? Does it hang then as well?

waydabber avatar Jul 15 '22 14:07 waydabber

Why not use native smooth scaling instead of dummy mirroring? Or the resolution is not appropriate for that?

I tried that, but the resolution doesn't go high enough. I have a 49" ultra wide Samsung display. With smooth scaling it only goes up to 3072x864.

alexmnps avatar Jul 15 '22 14:07 alexmnps

Can you please try what happens if you disassociate this dummy and try mirroring it manually to the associated display 2 (I assume that is Xiaomi Curved Gaming Monitor 34")? Does it hang then as well?

Indeed! When I disable auto-association, the hanging stops after sleep-wake cycles!

alexmnps avatar Jul 15 '22 14:07 alexmnps

With smooth scaling it only goes up to 3072x864.

4000pt wide would make it a usable resolution btw.

alexmnps avatar Jul 15 '22 14:07 alexmnps

Thanks for the info! I'll try to reproduce the wake freeze when associated issue!

Yes, 3072 is a limit for the entry level m1. With m1 pro you can go up to approx 3840 horizontally.

waydabber avatar Jul 15 '22 14:07 waydabber

Yes, 3072 is a limit for the entry level m1. With m1 pro you can go up to approx 3840 horizontally.

Interesting. Good to know. I really like your product! Thanks for all the good work.

alexmnps avatar Jul 15 '22 14:07 alexmnps

I seem to be unable to reproduce this issue so far. I'll keep it around for a while but close if no other reports like this surface.

waydabber avatar Aug 14 '22 11:08 waydabber