Editing a post from
another thread, it just struck me OpenCore might me helpful.
An interesting issue with an AMD R9 280X with 2x MiniDP and 1x HDMI running multiple 4K screens in Big Sur.
I run two Samsung UR59C 4K monitors and additionally a Toshiba 4K TV off this computer just to make sure the GPU dies a dignified death before I switch to some modern AMD GPU in the near future. It is a Powercolor R9 280X with latest Powercolor BIOS (I run it switched to stock, although I do have this same BIOS with UEFI for native boot screens, not really useful nowadays as Big Sur is only available through OpenCore anyway).
My initial setup was monitors only via DP ports (#1, #2, the default DP mode is v1.2 as set through the OSD menu). On startup, they gave me a strange kind of mirroring on login screen: DP #2 displayed the login screen in 2560x1440 and DP #1 showed the same content, but brutally downscaled to 1280x720 with only the width expanded to full screen, black bars above and below the content. Once logged in, they switch to expanded desktops and I was able to set #2 to 2560x1440, however in 30 Hz only. #1 stays in 1280x720.
Rebooted with the TV connected via HDMI and - lo an behold - while there is still mirroring and DP #1 stays at 1280x720, suddenly DP #2 and HDMI are 2560x1440@60 Hz. I log in and push all screens to 4K, which resulted in the TV (HDMI) in 4K30, DP #2 in 4K60 and DP#1 still at 1280x720 no matter how I played with the display settings prefpane.
Rebooted again and back to login screen, now the DP#1 is still fugly 1280*720 with black bars, DP#2 is 4K60, HDMI is 4K30, all screens are mirrored. I compared the OSD settings of both monitors and started to change them one by one. Surprise! Once the DP#1 was downgraded to DisplayPort ver 1.1, it displayed a nice 2560x1440@60 Hz and the other displays mirrored no more.
And then I switched DP#1 back to DisplayPort ver 1.2 and... 4K60 on both MiniDP-connected displays and 4K30 on the TV.
So now my procedure on every startup is to wait for login screen, enter the menu of the left (my DP#1) monitor to downgrade to DisplayPort ver 1.1, click again to switch back to DisplayPort ver 1.2 and I have my triple-4K setup running.
That's in MacOS.
The point is, I do not need to do anything like this in Windows I run from the other SSD on the same computer, using the same GPU with the same BIOS. The three screens go double 4K60 + 4K30 just by themselves. I want it in MacOS.
Now - the display that has the wrong resolution (DP#1) is the same display that shows the OC boot picker and Apple logo on startup. As I started digging through the Internet to find some information, I started to suspect it may have something
to do with the EDID and incorrect data passed between the display and computer in the early stage of boot
in this particular scenario. I've found how to extract EDID from a running system using
sudo ioreg -l | grep IODisplayEDID
and a
hint to put it into OC config.plist. I am not sure this would help. Asking does not harm, however - how do I edit my config to include EDID information for all three displays attached? Or perhaps there is another way to hardcode the initial resolution into a config file so Mac OS displays properly on login screen (an subsequently)?
P.s.: the unexpected result of my tinkering is that the displays themselves do not play any audio anymore. Two DisplayPort audio devices are detected by MacOS, however the analog audio connectors on both displays are silent, no matter how loud I crank them up. HDMI audio works no problem.