I've just had the same problem on High Sierra on native Mac Pro 5.1 and want to write the solution here in case anybody has the same. I had NVIDIA card and Sony 4K screen connected to HDMI running in 1080p, 60Hz.
I've tried to switch resolution to 4K, but NVIDIA driver is stupid enough to not automatically change RR to 30Hz when switching to 4K res, given that my Sony TV doesn't support 60Hz in 4K.
So, I've got an incurable black screen.
And, yes: apparently the refresh rate is stored in NVIDIA driver preferences, so just deleting
com.apple.windowserver.plist will not help. Reseting NVRAM and SMC will not help either. Completely uninstalling and reinstalling NVIDIA driver doesn't help. Without knowing where exactly NVIDIA driver stores its refresh rate settings, it's not easy to fix.
Here is the solution that worked for me using the second DVI non-4K screen. I was lucky to have it somewhere in my storage:
1) In terminal:
sudo rm /Library/Preferences/com.apple.windowserver.plist
rm ~/Library/Preferences/ByHost/com.apple.windowserver.*.plist
This step is needed to reset mirroring settings of the screens, so the mirroring will be used by default.
2) Reboot the machine and see the black screen.
3) Now connect the second screen to DVI (maybe the second HDMI screen would work too)
4) Now the screens are mirrored and my 4K screen switched back to 1080p automatically. The picture finally appeared on the Sony screen.
5) In the display settings change the refresh rate to 30Hz.
6) Now the second screen can be disconnected. Make sure the resolution on your main display is remained to 1080p. If not, set it to it. Now the RR can be set safely back to 60Hz
P.S => in this scenario if you need to switch to 4K again, do it
ONLY in the following order
: first change RR to 30Hz. Then change resolution in 4K. Switching back:
first set resolution to 1080p, then change RR to 60Hz.
IMPORTANT: If you screen doesn't support 4K 60Hz
, then
NEVER EVER set RR to 60Hz in 4K,
nor switch to 4K while having 60Hz in resolution setting
(!!!)