I had a MacBook Pro 2017, using a USB-C to HDMI which can support 4K@60Hz.

I ran CoreDisplay patcher to enable 60Hz for 4K resolution:

enter image description here

But Refresh Rate is still locked at 30Hz for other resolutions. Is there a way to unlock 60Hz for 2560x1440?

enter image description here

  • Note: I also tried SwitchResX, but there is no detected HiDpi scaled resolution for 2560x1440 @ 60Hz. There is a non-HiDpi 2560x1440 @ 60Hz but the text is blurry on my 4K monitor
    – Dio Phung
    Sep 11, 2017 at 0:36
  • 2560x1440 will always be blurry on a display with a native 4K resolution. HiDPI means 1920 x 1080 @'2x (HiDPI) = 3840 x 2160 @'1x = 1280 x 720 @'3x (HiDPI). ## You will not be able to chose 2560 x 1440 with this display as this is a physical limitation. For this you need a display with a native resolution of 5120 x 2880.
    – oa-
    Sep 18, 2017 at 9:24
  • @oa: With the same monitor (QNIX 32", 4K 3840x2160), I was able to have scaled 2560x1440 @ 60Hz using HDMI 2.0 on MacBook Pro 2014 (without Touchbar). Note that my current MacBook Pro 2017 CAN output to this monitor at a scaled 2560x1440 resolution but refresh rate is limited at 30Hz. I'm using this adapter which support 4K@60Hz goo.gl/2YNEyf,
    – Dio Phung
    Sep 18, 2017 at 22:05
  • Scaled resolution @60Hz on HDMI 2.0 is a big headache. I switched to use USB-C to DisplayPort and voila, it works beautifully: imgur.com/a/p4JdC 2560x1440 HiDPI at 60Hz
    – Dio Phung
    Sep 25, 2017 at 23:05
  • Found out my monitor QNIX 32" have a mix of both HDMI 1.1 and 2.0. Be sure to use HDMI 2.0 to achieve 60Hz at 4K
    – Dio Phung
    Jul 22, 2018 at 0:41

1 Answer 1


HDMI 2.0 4K60Hz might use chroma subsampling (YCbCr422 10bpc) https://www.rtings.com/tv/learn/chroma-subsampling

You can force RGB by overriding the EDID (limits you to 8bpc) https://www.mathewinkson.com/2013/03/force-rgb-mode-in-mac-os-x-to-fix-the-picture-quality-of-an-external-monitor

DisplayPort 1.2 is preferred because it has slightly more bandwidth and will allow RGB 10bpc without requiring workarounds.

2560x1440@60Hz HiDPI uses a scaled resolution of 5120x2880. This means macOS draws into a frame buffer that is 5120x2880 and the graphics card scales the frame buffer to the scaled resolutions base which is 3840x2160 in your case (SwitchResX can change the scaled resolutions base). By default, scaled resolutions are created with only one refresh rate/timing. I think the timing used for the base resolution is the last built-in timing having the same resolution as the scaled resolutions base. This is why 3840x2160 30Hz is chosen for the timing.

macOS 10.14.6 has a new hidden preference to enable multiple refresh rates for scaled resolutions (including HiDPI resolutions).

sudo defaults write /Library/Preferences/com.apple.CoreDisplay multiRefreshRateScaledModes -bool true

Each scaled resolution (and its corresponding HiDPI resolution) will then have all the timings that the scaled resolutions base has. https://www.tonymacx86.com/threads/adding-using-hidpi-custom-resolutions.133254/post-1999528

For older macOS versions, I guess you'll need code to create scaled resolutions with specific timings, and patches to CoreDisplay to allow them. Code for some (but not all) versions of macOS that might do that is in IOGraphicsLib.c at opensource.apple.com

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .