Mac OS resetting monitors to 40-60Hz variable refresh rate after reboot or sleep, sometimes also swaps left/right display.
I have two BenQ EW3270U monitors connected to my Mac Mini (Late 2018) via an eGPU (Razor Core X eGPU with AMD RX 6600 XT) using DisplayPort cables from the eGPU to the monitors.
Every time I reboot my computer or wake it from sleep, the monitor refresh rate changes to 40-60Hz variable refresh rate. I want to use the supported 60Hz, as variable causes flickering when I move things around in Finder or Photoshop. I would also like the right monitor to always be the right monitor, but Mac OS often swaps them around on wake/reboot, so I have to move the cursor out of the right edge to get to the left monitor and vice-versa. I then have to spend time arranging them and setting the refresh rate in system prefs.
I realize there are several factors that can cause this:
- The monitors are the same model, so Mac OS confuses left and right on wake. However, Mac OS can actually see the serial numbers in the System Information panel, so my Mac could easily tell which is which, if Apple had just programmed Displays Preferences so it identified each monitor using their unique serial numbers instead of the brand/model.
- My monitors are set to turn off after 10 minutes, not just sleep. Why? I'm conscious of my electricity bill and the environment.
- The monitors support AMD Freesync and the AMD eGPU seems to think I want to use this. It's easy enough to blame the monitor manufacturer, or bad AMD-drivers (Apple no longer cares about eGPUs since they are not compatible with Apple Silicon) or even claim that a slightly off-spec GPU card is the problem, but if Mac OS simply saved my settings, and sent the "Monitor with SN#A is left, Monitor with SN#B is right, use 60Hz" signal on wake or startup, this issue would be moot. So that's a lazy excuse. If it can be adjusted via Mac OS prefs, then it can also be saved and sent on wake or startup.
- I've been digging into this issue a lot, and it also affects Apple Silicon computers using two identical monitors, especially if both are using USB-C and none re using HDMI. The reason users don't want use one HDMI and one USB-C port, is the color output is different on each display port. And with a powerful eGPU, I don't want one monitor to run on the internal GPU, as it's very weak compared to the Radeon RX 6600 XT.
In conclusion, the one-size-fits-all solution would be if Mac OS identifies each unique monitor correctly using the transmitted serial numbers, and actually saved and applied the user's preferred Hz settings.
I have even tried using "Displaycer" and while it solves the left/right settings by identifying each monitor by serial number (see? it can be done) it fails to set the Hz.
Mac mini