5 ms·
Looks like displayplacer uses the standard `CGDisplayCreateUUIDFromDisplayID` which the system also uses internally: https://github.com/jakehilborn/displayplace
by alin23 4y ago
Looks like displayplacer uses the standard `CGDisplayCreateUUIDFromDisplayID` which the system also uses internally: https://github.com/jakehilborn/displayplacer/blob/master/displayplacer.c#L159 https://github.com/jakehilborn/displayplacer/blob/master/dis...
This should be prone to the same issue.
Your problem might actually be caused by a timing bug, where the EDID is not fully available in the first few milliseconds of the reconnection, and the system doesn't reconcile after it becomes available.
displayplacer will get the full picture because it's always run a long time after the connection has stabilized.
I can't be certain, but I noticed some slow monitors/hubs do have that timing issue by observing the zero/null values for UUID in The Monitor Database: https://db.lunar.fyi https://db.lunar.fyi
- kitsunesoba 4y agoIt’s crazy how many aspects of the electronics in monitors are seemingly phoned in, even on models exceeding $1000 in price. Problems like non-unique IDs and EDID not being available right away are such trivial issues to solve and probably wouldn’t even cost that much in the long run and yet here we are. I wish a company like Framework or system76 would get into monitors and open source their monitors’ electronics and firmware so at the very least, these issues could be fixed by the community.
- p_l 4y agoAnother bit that is phoned in is macOS handling of the displays, which makes certain things like KVM switches problematic...
- smilespray 4y agoIt also seems like it's getting worse? Apple's new high-end screens are a travesty, and $1000 Samsungs are no better.
- deleted 4y ago[deleted]
- klausa 4y agoHuh, thanks for elaborating! I'm surprised that the OS doesn't have a safeguards for this and isn't retrying the read the EDID after it sees a "blank" one after wake-up, but the display controllers in Mx chips are stupid complicated already it seems.
- alin23 4y agoI’m sure there must be a retry with a backoff somewhere. But most of the times I noticed that the EDID is incomplete, not blank. I don’t think there’s any way for the OS to know that there’s a more complete EDID if it tries again later. That’s also my theory on why the Intel/AMD/NVidia GPUs feel more stable than the Apple Silicon ones: they had years of dealing with these edge cases and probably adding all the workarounds they could think of, while Apple is still catching up.