Contribute
Register

Adding/Using HiDPI custom resolutions

Joined
Apr 5, 2016
Messages
698
Motherboard
GIGABYTE Z170X-Gaming 7
CPU
i7-6700K
Graphics
GTX TITAN X
Mac
iMac, MacBook, MacBook Air, MacBook Pro, Mac mini, Mac Pro
Classic Mac
Apple, LC, Power Mac
Mobile Phone
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
698
Motherboard
GIGABYTE Z170X-Gaming 7
CPU
i7-6700K
Graphics
GTX TITAN X
Mac
iMac, MacBook, MacBook Air, MacBook Pro, Mac mini, Mac Pro
Classic Mac
Apple, LC, Power Mac
Mobile Phone
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
698
Motherboard
GIGABYTE Z170X-Gaming 7
CPU
i7-6700K
Graphics
GTX TITAN X
Mac
iMac, MacBook, MacBook Air, MacBook Pro, Mac mini, Mac Pro
Classic Mac
Apple, LC, Power Mac
Mobile Phone
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
698
Motherboard
GIGABYTE Z170X-Gaming 7
CPU
i7-6700K
Graphics
GTX TITAN X
Mac
iMac, MacBook, MacBook Air, MacBook Pro, Mac mini, Mac Pro
Classic Mac
Apple, LC, Power Mac
Mobile Phone
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
160
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:
Joined
Apr 5, 2016
Messages
698
Motherboard
GIGABYTE Z170X-Gaming 7
CPU
i7-6700K
Graphics
GTX TITAN X
Mac
iMac, MacBook, MacBook Air, MacBook Pro, Mac mini, Mac Pro
Classic Mac
Apple, LC, Power Mac
Mobile Phone
iOS
Sure thing, here's a screenshot of the full list sorted by resolution.

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.
The developer of SwitchResX has a fix which will be released soonish.

There doesn't appear to be any difference from what I can see. Both options don't appear to budge from 60Hz too.
Double click each to see the timing info (pixel clock, sync width, etc.).

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.
You might just have to use SwitchResX when the fix becomes available and ignore Display prefs.

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

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).
Interesting. As expected, it shows two DisplayPort 1.2 connections to the Dell and a single DisplayPort 1.4 connection for the Acer. Each connection of the Dell has a different EDID. The longer, main EDID has all the info and says it's for the right side of the display, the shorter EDID is there to identify itself as the left side of the display. Neither of these has a 5120x2880 resolution. Apple has a fake EDID in the overrides which is missing the tiling info (left/right side indicator) and it has only a 5120x2880 60Hz timing. SwitchResX only shows one of the EDIDs (the main one, maybe in the past it showed the faked one?)
 
Last edited:
Joined
May 13, 2014
Messages
160
Motherboard
Gigabyte Z390 Designare
CPU
i9-9900K
Graphics
Radeon VII
The developer of SwitchResX has a fix which will be released soonish.
Thanks for your help. I'll just wait until that's released and see how it goes. It's not absolutely imperative that I have 120Hz in macOS at 2560x1440 HiDPI, but it'd be nice to have. I mostly use the Acer Nitro monitor for gaming in Windows and as my secondary screen for design work in macOS. It's more of an annoying 'why isn't this working when it should?' kind of puzzle :)


Ah looks like there's a few minor differences in pixel clock and other specs.

1080p HiDPI #1

Pixel clock: 533.25 MHz Horizontal Vertical
Active 3840 pixels 2160 lines
Front porch 48 pixels 3 lines
Sync width 32 pixels 5 lines
Back porch 80 pixels 54 lines
Blanking 160 pixels 62 lines
Total 4000 pixels 2222 lines
Scan rate 133.312 kHz 59.997 Hz
Scale to N/A N/A
[✓] Positive sync. [ ] Positive sync.


1080p HiDPI #2

Pixel clock: 594.00 MHz Horizontal Vertical
Active 3840 pixels 2160 lines
Front porch 176 pixels 8 lines
Sync width 88 pixels 10 lines
Back porch 296 pixels 72 lines
Blanking 560 pixels 90 lines
Total 4400 pixels 2250 lines
Scan rate 135.000 kHz 60.000 Hz
Scale to N/A N/A
[✓] Positive sync. [✓] Positive sync.
 
Joined
Apr 5, 2016
Messages
698
Motherboard
GIGABYTE Z170X-Gaming 7
CPU
i7-6700K
Graphics
GTX TITAN X
Mac
iMac, MacBook, MacBook Air, MacBook Pro, Mac mini, Mac Pro
Classic Mac
Apple, LC, Power Mac
Mobile Phone
iOS
Thanks for your help. I'll just wait until that's released and see how it goes. It's not absolutely imperative that I have 120Hz in macOS at 2560x1440 HiDPI, but it'd be nice to have. I mostly use the Acer Nitro monitor for gaming in Windows and as my secondary screen for design work in macOS. It's more of an annoying 'why isn't this working when it should?' kind of puzzle :)
There is a public beta of SwitchResX 4.9.1a2 with the fix. It also has an option to set the "All refresh rates" option.

Ah looks like there's a few minor differences in pixel clock and other specs.
533 MHz is the CVT-RB timing. 594 MHz is the HDMI 2.0 timing. HDMI uses multiples of 247 MHz.
 
Joined
May 13, 2014
Messages
160
Motherboard
Gigabyte Z390 Designare
CPU
i9-9900K
Graphics
Radeon VII
Ah brilliant, the beta enabled a few more options and now I can get 2560x1440 HiDPI at 120Hz! All the other resolutions and the corresponding refresh rates are enabled too.

Thank you!



 
Joined
Jul 2, 2014
Messages
40
Motherboard
STRIX Z370-H GAMING
CPU
i7-8700k
Graphics
GTX 1080 Ti
Mac
iMac, MacBook Pro
Mobile Phone
Android
There is a public beta of SwitchResX 4.9.1a2 with the fix. It also has an option to set the "All refresh rates" option.
Hey joevt, you've been very helpful here! Could you please look at my similar issue posted in this thread, would be really appreciated. :shifty: - trying to get my 4k running at 120hz
 
Top