32

I have a 27" screen which is connected to my mid-2012 MacBook Pro retina through a HDMI/DVI-D (HDMI on the MacBook Pro, DVI-D on the screen).

Before I was using a adapter DisplayPort+USB/DVI-D and I was able to get 60Hz refresh rate.

Now with the HDMI/DVI-D I have only 30Hz.

Is there any way to change (by forcing?) refresh rate to 60Hz?

Or is it a hardware limitation?

NOTE: I can't change the Refresh Rate value from System Prefs, the menu is disabled and the value is set to 30Hz.

EDIT: Here's the System Prefs window enter image description here

3
  • Did you check System > Monitors or Displays already?
    – Rob
    Commented Mar 5, 2014 at 9:48
  • Does it changing back to DisplayPort changes back to 60Hz?
    – Ruskes
    Commented Mar 5, 2014 at 10:02
  • 1
    Robuust: yes, but the select menu is disabled (can't set anything else but 30Hz) Buscar웃: yes, it changes back to 60Hz. Commented Mar 5, 2014 at 10:31

8 Answers 8

31

cscreen

You can use the freely available Terminal app cscreen to force display settings. The app is pretty self explanatory.

brew install --cask cscreen
cscreen -h
Usage: cscreen [-d <depth>] [-x <width>] [-y <height>] [-r <refresh>] [-s <display>] [-v] [-m] [-f] [-l] [-h]
           [-d <depth>]    : specifies the bit depth (bits per pixel)
           [-x <width>]    : specifies the width in pixels
           [-y <height>]   : specifies the height in pixels
           [-r <refresh>]  : specifies the refresh rate in Hz
           [-s <display>]  : specifies which display to use (defaults to main display)
           use a as the option to -s to specify the action on all displays
           [-i <displayID>]: picks a display based on CGDirectDisplayID (permanent per display)
           continue to use '-s a' for "all displays"
           [-v]            : display valid modes (use -s to specify display or nothing for the default)
           [-m]            : require an exact match
           [-f]            : forces settings (ignores safety mechanisms; USE AT YOUR OWN RISK)
           [-l]            : lists the current displays and modes
           [-p]            : sets the requested display to have the menu bar
           [-h]            : displays the usage
           
           Note: Using -p will change the display index so you will likely want to use -l again to show the current
           displays if you wish to use -p a second time.
3
  • I tried to set the external display to 60Hz with cscreen -r 60 -s 2 but it does not seem to work (macOS Sierra). Same display runs fine at 60Hz on macOS Monterey. Commented Jan 26, 2022 at 19:32
  • 1
    This doesn't work (anymore?) in macOS Ventura, unfortunately. Commented Feb 15, 2023 at 13:20
  • also doesn't seem to work for Sonoma
    – Brian
    Commented Apr 15 at 11:58
31

When you're on the new Macbook Pro (post 2017), and you've connected your external display to one of the ports on the right side of your MacBook, the refresh rate settings dropdown may be disabled.

This will also happen with a display that you've previously connected to the left side and later connected to the right side.

That is due to the limitations of the MacBook:

The two ports on the right side of the machine have Thunderbolt 3 functionality but with reduced PCI Express bandwidth. For that reason, Apple recommends plugging higher-performance devices into the left-hand ports on that machine.

After you've connected your external display to the left side of your MacBook, you can set it back to 60 Hz by doing the following:

  • Open System Preferences » Display
  • Hold the option key
  • Click the Scaled button
  • Check the "Show low resolution modes" box
  • Set the Refresh rate to 60 Hz

See the example here:

8
  • Hello, I'm not used to macs. What is options and what is scaled. Maybe a stupid question, sorry. Commented Dec 1, 2019 at 11:26
  • 3
    Oh, I found: options is the key written alt on it, and Scaled is the second option of Resolution. The problem is, this brings more options for resolution settings, but the frequency settings are still not shown. Commented Dec 1, 2019 at 11:40
  • @LorenzMeyer Make sure your monitor/external display offers high refresh rates, some lower end monitors don't have that option
    – mxdi9i7
    Commented Dec 6, 2019 at 2:50
  • Thanks, I understand now: this shows two windows, one on each monitor, and each with the options applicable to that monitor. And yes, not all monitors have the choice for the refresh rates. Commented Dec 6, 2019 at 10:30
  • 2
    I needed to click on the Scaled option while holding the Option key, then check Show low resolution modes then the refresh rate selector appears
    – rpecka
    Commented Feb 2, 2021 at 19:22
11

I can only change the refresh rate for the 4K TV connected to my MacBook Pro (15-inch, 2016, Big Sur) by following these steps:

  1. Open System Preferences, then click Displays.
  2. option+click the Scaled radio button.
  3. Click the "Show low resolution modes" checkbox.

If steps 1-3 above are not completed, the refresh rates are not visible.

Display preferences

4
  • This did it for me. When I connected my external 4K display, it seemed choppy. After doing these steps, I found that it was set at 30Hz refresh rate. Set it to 60Hz and was relieved with the refresh rate. There was no problem with the Macbook, adapter, or monitor. Whew.
    – radj
    Commented Jan 9, 2021 at 7:13
  • 3
    Even following that, I still can't see the refresh rate menu ;'( Commented Jan 11, 2021 at 19:01
  • 1
    This is such an unbelievably bad UI design. I can't even believe it.
    – cs01
    Commented Sep 2, 2021 at 17:19
  • unfortunately this does not seem to work in macOS Sierra Commented Jan 26, 2022 at 19:24
4

If you are using a USB-C adapter (or any other adapter such as older thunderbolt), check to see if the adapter supports 60Hz. Had a similar issue with INSIGNIA Slim Profile 7-Port USB-C HUB, read the paper inside the adapter box and found that it supports 30Hz max only.

2
  • 4
    The OP is using a MBP 2012. USB-C hadn't been invented yet Commented Aug 27, 2020 at 1:11
  • 1
    @MatthewBarclay While this is true, people with newer MacBook also have this issue and will find the answers useful nonetheless.
    – slhck
    Commented Oct 6, 2021 at 8:48
3

I came here searching for the answer myself because I've done it before but I installed an update and lost the settings. csreen and switchresx can both set the resolution for you, but there's a limit in OSX that needs to be bypassed in order to accomplish this. Additionally with the latest versions of OSX there's some sort of "system file protection" that prevents you from patching the relevant file. First, you have to disable that file protection (which I think gets turned on after each update) and then you have to patch the relevant file in OSX. If I find the answer for the latest version then I'll come back here and update the answer but you should google something to the effect to osx (your version) pixel clock unlock patch. Once you patched the relevant files you should be able to use utilities like switchresx (which is what I use) to set custom resolutions. I've found a patch for one version of osx here: https://github.com/Floris497/mac-pixel-clock-patch good luck!

1

You should be able to change the refresh rate in System preferences- Monitor.

This is an example of my HDMI to HDMI connection.

enter image description here

You can try using the SwitchResX app to see if that will work.

FYI: Something is happening with Mavericks and external display (similar to yours) but I am not qualified to talk about what.

10
  • I can't change it from the System Prefs. The Refresh Rate menu is disabled. Commented Mar 5, 2014 at 10:31
  • What does it say? does it show the correct monitor type in the above window? ie Sharp LCD?
    – Ruskes
    Commented Mar 5, 2014 at 10:40
  • I edited the question (put a screenshot). Commented Mar 5, 2014 at 10:49
  • Your system is not correctly identifying the Monitor with HDMI cable, it should name it by its name in Optimized for:. Also Try changing the resolution to 1920x1200.
    – Ruskes
    Commented Mar 5, 2014 at 11:03
  • Then how can I fix that? I tried changing resolution, but still can't change value to anything else but 30Hz. Commented Mar 5, 2014 at 11:23
0

After much googling and trials, I have come to the conclusion that if your hardware (both computer/screen) doesn't support higher frequency, well, you can't force it.

As for my own case, it was the both not available (old MacBook Pro + Dell cheap 27" "fake 4K")

5
  • 6
    I actually believe this is a software issue. My monitor can be overclocked. My displayport interface has plenty of bandwidth for the higher refresh rates. The problem is Apple's restricted software drivers. Also, works fine in Windows. Commented Feb 9, 2016 at 3:13
  • @avetis.kazarian What model is your Dell 27" and what makes you think it's "fake" 4K?
    – philfreo
    Commented Sep 30, 2016 at 15:28
  • 2
    I find it hard to believe my hardware can't drive this monitor at full resolution and 60 hz, since it has no problem doing so when it's rotated 90, 180, or 270 degrees - only when I have it in normal orientation does it drop down to 30 for some reason. Commented Mar 27, 2017 at 21:55
  • @childofsoong: thanks for the information, this might be helpful resolving this issue. Commented Mar 29, 2017 at 6:57
  • @childofsoong hard to believe, but I had the same issue on my MacBook Pro M1 (Monterey)! The USB-C connection could not work 4k@60hz, then I put the 180° rotation and it worked!! Then, back to normal, and problem solved!
    – Gabrer
    Commented Feb 16, 2022 at 17:05
0

RDM screen management is a simple menu bar tool that does this well. https://github.com/avibrazil/RDM

You must log in to answer this question.

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