Contribute
Register

Adding/Using HiDPI custom resolutions

Joined
Apr 5, 2016
Messages
948
Motherboard
GIGABYTE Z170X-Gaming 7
CPU
i7-6700K
Graphics
GTX TITAN X
Mac
  1. iMac
  2. MacBook
  3. MacBook Air
  4. MacBook Pro
  5. Mac mini
  6. Mac Pro
Classic Mac
  1. Apple
  2. LC
  3. Power Mac
Mobile Phone
  1. iOS
How do you use the defaults command to modify /Library/Preferences instead of ~/Library/Preferences or /private/var/root/Library/Preferences?
The correct command is:
Code:
sudo defaults write /Library/Preferences/com.apple.CoreDisplay multiRefreshRateScaledModes -bool true
 
Joined
May 13, 2014
Messages
167
Motherboard
Gigabyte Z390 Designare
CPU
i9-9900K
Graphics
Radeon VII
Interesting. Looks like I have some experimentation to try this weekend.

Thanks joevt.
 
Joined
May 13, 2014
Messages
167
Motherboard
Gigabyte Z390 Designare
CPU
i9-9900K
Graphics
Radeon VII
Hey joevt, I appreciate the help!

I think I'm closer to than I was before. Strangely though, 2560x1440 scaled mode is now the only option missing in the list.

Here's some screenshots. There's several in there so just flick through them when you get a chance.

 
Joined
Apr 5, 2016
Messages
948
Motherboard
GIGABYTE Z170X-Gaming 7
CPU
i7-6700K
Graphics
GTX TITAN X
Mac
  1. iMac
  2. MacBook
  3. MacBook Air
  4. MacBook Pro
  5. Mac mini
  6. Mac Pro
Classic Mac
  1. Apple
  2. LC
  3. Power Mac
Mobile Phone
  1. iOS
I think I'm closer to than I was before. Strangely though, 2560x1440 scaled mode is now the only option missing in the list.

Here's some screenshots. There's several in there so just flick through them when you get a chance.
Can you show current resolutions and EDID?
It says 5120x2880 is active so it should be an option. Then there should also be a 2560x1440 HiDPI option.

I wonder why your System Preferences / Display screenshot doesn't have a "Show low resolution modes" option. Did you hold the Option key and click "Scaled"?

What version of macOS are you running?

When taking a screen shot, you can use Command-Shift-4 to select an area. Press Space bar to switch between selecting an area and selecting a window. Press Escape to cancel.
 
Joined
May 13, 2014
Messages
167
Motherboard
Gigabyte Z390 Designare
CPU
i9-9900K
Graphics
Radeon VII
Can you show current resolutions and EDID?

Sure, here's the EDID.

Here's some screenshots of the list of resolutions I have in SwitchResX.

It says 5120x2880 is active so it should be an option. Then there should also be a 2560x1440 HiDPI option.

That's what's weird. Every other resolution combination is there except 2560x1440 HiDPI. For 2560x1440 there's only the low-res option.

I wonder why your System Preferences / Display screenshot doesn't have a "Show low resolution modes" option. Did you hold the Option key and click "Scaled"?

I can get the full list of resolutions to show up if I hold Alt/Option and click Scaled.

What version of macOS are you running?
10.14.6[/QUOTE]
 
Joined
Apr 5, 2016
Messages
948
Motherboard
GIGABYTE Z170X-Gaming 7
CPU
i7-6700K
Graphics
GTX TITAN X
Mac
  1. iMac
  2. MacBook
  3. MacBook Air
  4. MacBook Pro
  5. Mac mini
  6. Mac Pro
Classic Mac
  1. Apple
  2. LC
  3. Power Mac
Mobile Phone
  1. iOS
The Current Resolutions list in SwitchResX might be easier to read if you sorted by Resolution instead of HiDPI.

SwitchResX shows all the 2560x1440 HiDPI resolutions (60Hz, 30Hz, 24Hz, 25Hz, 50Hz, 60Hz). Is there a difference between the two 60Hz options?

SwitchResX seems to be missing some resolutions. Displays preferences shows some low resolution modes but SwitchResX is only showing HiDPI modes. I wonder if there's a limit to the number of resolutions? Did you scroll the entire list in Displays preferences to find another 2560x1440 mode? Maybe there's a problem with the sorting. Maybe there's bugs in CoreDisplay framework.

Seems to be missing some refresh rates for higher resolutions. You have 120Hz up to 2160p and 144Hz up to 1440p. So why are all the scaled modes set to 60Hz or lower? Are GPU scalers unable to work at higher than 60Hz? Maybe this is a limit imposed by Apple. I would find the code with the limit and patch it to see what happens. The display scaler has no problem scaling 144Hz 1440p to 2160p. It looks like you have a 4320p mode scaling to 2160p at 60Hz so scaling 2880p to 2160p at 120Hz should work. Does Display Preferences show different refresh rates than SwitchResX for scaled HiDPI resolutions?

What is the "Scaled resolutions base" set to? I assume 3840x2160. If that's true, why would there be a 3840x2160 HiDPI mode? You wouldn't be able to see a difference except in screenshots. With 3840x2160 as the base resolution, you should be able to get scaled resolutions up to 120Hz but I don't see any in your SwitchResX screenshots.

This is with Radeon VII?

To verify DisplayPort connection, report output of the following command:
Code:
/System/Library/Extensions/AppleGraphicsControl.kext/Contents/MacOS/AGDCDiagnose -a > AGDCDiagnose_a.txt 2>&1
 
Joined
Apr 5, 2016
Messages
948
Motherboard
GIGABYTE Z170X-Gaming 7
CPU
i7-6700K
Graphics
GTX TITAN X
Mac
  1. iMac
  2. MacBook
  3. MacBook Air
  4. MacBook Pro
  5. Mac mini
  6. Mac Pro
Classic Mac
  1. Apple
  2. LC
  3. Power Mac
Mobile Phone
  1. iOS
I've been doing some tests to answer some of my questions and maybe recreate your situation.

I don't have a high refresh rate flat panel display, but I do have a CRT which can have a refresh up to 170 Hz.

I think there might be a bug in SwitchResX:

I have a base resolution of 2048x1536 with refresh rates 50, 60, 73, 74, 74.999 (displayed as 75), 75.
Display preferences shows scaled modes (and the base resolution) have refresh rates 50, 60, 73, 74, 75.
SwitchResX shows only scaled modes with refresh rates 50, 60, 73. Something strange is going on.
 
Joined
Apr 5, 2016
Messages
948
Motherboard
GIGABYTE Z170X-Gaming 7
CPU
i7-6700K
Graphics
GTX TITAN X
Mac
  1. iMac
  2. MacBook
  3. MacBook Air
  4. MacBook Pro
  5. Mac mini
  6. Mac Pro
Classic Mac
  1. Apple
  2. LC
  3. Power Mac
Mobile Phone
  1. iOS
The following may help show why a timing or scaled mode is rejected:
Code:
log stream --predicate 'sender contains "Thunderbolt" or sender contains "Graphics" or sender contains "Display"' --style compact --info --source --signpost
"Graphics" is for intel graphics. It should be replaced with something else for AMD and Nvidia.

Run the command in Terminal.app. Press Command-K to clear the window when you are going to start your test. Perform your test (connect a display or click "Activate immediately" in SwitchResX, or whatever). After the test is complete, Command-A to select all, Command-C to copy, Command-V to paste into a new text file.

Control-C to stop streaming the log.
 
Joined
Apr 5, 2016
Messages
948
Motherboard
GIGABYTE Z170X-Gaming 7
CPU
i7-6700K
Graphics
GTX TITAN X
Mac
  1. iMac
  2. MacBook
  3. MacBook Air
  4. MacBook Pro
  5. Mac mini
  6. Mac Pro
Classic Mac
  1. Apple
  2. LC
  3. Power Mac
Mobile Phone
  1. iOS
If both Display preferences and SwitchResX don't show the resolution, then displayplacer might be able to, and it can probably change refresh rate to.
 
Joined
May 13, 2014
Messages
167
Motherboard
Gigabyte Z390 Designare
CPU
i9-9900K
Graphics
Radeon VII
The Current Resolutions list in SwitchResX might be easier to read if you sorted by Resolution instead of HiDPI.

Sure thing, here's a screenshot of the full list sorted by resolution.


SwitchResX shows all the 2560x1440 HiDPI resolutions (60Hz, 30Hz, 24Hz, 25Hz, 50Hz, 60Hz). Is there a difference between the two 60Hz options?

There doesn't appear to be any difference from what I can see. Both options don't appear to budge from 60Hz too.

SwitchResX seems to be missing some resolutions. Displays preferences shows some low resolution modes but SwitchResX is only showing HiDPI modes. I wonder if there's a limit to the number of resolutions? Did you scroll the entire list in Displays preferences to find another 2560x1440 mode? Maybe there's a problem with the sorting. Maybe there's bugs in CoreDisplay framework.

After holding Alt/Option and clicking Scaled to show the list in Display Prefs, it only shows '2560x1440 (low resolution)' among others and not HiDPI 2560x1440 weirdly enough. The closest alternatives are 3008x1692 HiDPI and 2304x1296 HiDPI which both work at 120Hz.

Seems to be missing some refresh rates for higher resolutions. You have 120Hz up to 2160p and 144Hz up to 1440p. So why are all the scaled modes set to 60Hz or lower? Are GPU scalers unable to work at higher than 60Hz? Maybe this is a limit imposed by Apple. I would find the code with the limit and patch it to see what happens. The display scaler has no problem scaling 144Hz 1440p to 2160p. It looks like you have a 4320p mode scaling to 2160p at 60Hz so scaling 2880p to 2160p at 120Hz should work. Does Display Preferences show different refresh rates than SwitchResX for scaled HiDPI resolutions?

Display Prefs seems to show the same list of resolutions, but the difference is that SwitchResX doesn't seem to list the resolutions that are capable of 120Hz and only shows them as 60Hz or below. 1920x1080 and 1280x720 seem to be the exceptions to that as they're listed properly.

What is the "Scaled resolutions base" set to? I assume 3840x2160. If that's true, why would there be a 3840x2160 HiDPI mode? You wouldn't be able to see a difference except in screenshots. With 3840x2160 as the base resolution, you should be able to get scaled resolutions up to 120Hz but I don't see any in your SwitchResX screenshots.

Yep, 3840x2160 for scaled resolutions base.

This is with Radeon VII?

Yep, Radeon VII. I use Lilu+WhateverGreen too. Not sure if that'd affect anything.

To verify DisplayPort connection, report output of the following command:
Code:
/System/Library/Extensions/AppleGraphicsControl.kext/Contents/MacOS/AGDCDiagnose -a > AGDCDiagnose_a.txt 2>&1

Here's the full output.

My Radeon VII is connected to a Dell UP2715K (primary display - MST DisplayPort - 2x DP) and the Acer Nitro XV273KP (SST 1x DP 1.4).

If both Display preferences and SwitchResX don't show the resolution, then displayplacer might be able to, and it can probably change refresh rate to.

Thanks, I'll try using displayplacer and see what happens. I'll run the log stream filter too while I give that a try tomorrow :)
 
Last edited:
Top