Contribute
Register

macOS High Sierra (10.13.6) 4k at 120hz is it possible?

Status
Not open for further replies.
Can you post a screenshot of the Display Information tab of SwitchResX?

For log stream, add the " --source --signpost" parameters. Change "Nvidia" to "nvidia". Probably won't be any useful differences.

You could try the patches at https://github.com/Floris497/mac-pixel-clock-patch-V2
CoreDisplay-patcher.command
NVIDIA-WEB-PASCAL-patcher.command
 
Ok, I just brought my other hackintosh (cube) from my office to home to test it with AMD RX580, 120hz wasn't naitivly there either, but installed the beta SwitchResX and 120hz was available in the list there - got it working right away. So there's something fishy with the Nvidia driver for sure now.
 
Ok, I just brought my other hackintosh (cube) from my office to home to test it with AMD RX580, 120hz wasn't naitivly there either, but installed the beta SwitchResX and 120hz was available in the list there - got it working right away. So there's something fishy with the Nvidia driver for sure now.
As suspected. Can you generate and post the info files for the AMD? (log stream, AGDCDiagnose, SwitchResX Display Information screenshot, SwithResX 4K120 timing info screenshot). And the missing screenshot for Nvidia.

If your cube is running Mojave, then the SwitchResX beta should also have added multiple refresh rates for all your other scaled resolutions (after enabling the "All refresh rates" option and restarting).
 
Can you post a screenshot of the Display Information tab of SwitchResX?

For log stream, add the " --source --signpost" parameters. Change "Nvidia" to "nvidia". Probably won't be any useful differences.

You could try the patches at https://github.com/Floris497/mac-pixel-clock-patch-V2
CoreDisplay-patcher.command
NVIDIA-WEB-PASCAL-patcher.command


nvidia-switchresx.png

nvidia - display information


switchresx-rx580.png

AMD - display information

switchresx-rx580-2.png


AMD - custom resolution (automatically prefilled)

" --source --signpost" parameters < these parameters are not valid on High Sierra (atleast)
PS! cube is also on High Sierra (just with AMD RX580)

I did disabled SIP, applied `CoreDisplay-patcher.command` and `NVIDIA-WEB-PASCAL-patcher.command`

Code:
➜  tmp ./CoreDisplay-patcher.command
SIP looks to be disabled, all good!

Unknown version of CoreDisplay found.
---- BEGINNING MD5 HASH SUMS ---- version: 10.13.6 build:17G8030

     otool CoreDisplay: 20f0d2491e9370d3d74d25740aa855ba
otool CoreDisplay.bak: NO FILE (this is okay)
           CoreDisplay: 24349340f35fb931216e0ccdab2ad3c1
       CoreDisplay.bak: NO FILE (this is okay)

---- ENDING MD5 HASH SUMS -------

➜  tmp ./NVIDIA-WEB-PASCAL-patcher.command
md5: /System/Library/Extensions/NVDAGP100HalWeb.kext/Contents/MacOS/NVDAGP100HalWeb: No such file or directory
SIP looks to be disabled, all good!
Keep SIP disabled, if enabled again SIP prevent the Nvidia Driver from loading

Unknown version of the Nvidia driver found..
---- BEGINNING MD5 HASH SUMS ---- version: 10.13.6 build:17G8030

md5: /System/Library/Extensions/NVDAGP100HalWeb.kext/Contents/MacOS/NVDAGP100HalWeb: No such file or directory
     NVDAGP100HalWeb:
NVDAGP100HalWeb.bak: NO FILE (this is okay)

---- ENDING MD5 HASH SUMS -------


I tried to add a custom resolution with same values to the nVidia machine, but it just stays "Not activated - invalid?"
 
Last edited:
nvidia - display information

AMD - display information
The pixel clock max for Nvidia should be 1080 MHz like it is for the AMD.

" --source --signpost" parameters < these parameters are not valid on High Sierra (atleast)
--source should work. I haven't ever run across a signpost so I guess we can do without.

I did disabled SIP, applied `CoreDisplay-patcher.command` and `NVIDIA-WEB-PASCAL-patcher.command`

Code:
➜  tmp ./CoreDisplay-patcher.command
SIP looks to be disabled, all good!

Unknown version of CoreDisplay found.
It says the version of CoreDisplay is unknown. So you have to force the patch. Since you are running 10.13, you should try to force the v4 patch like this:
Code:
./CoreDisplay-patcher.command patch v4

➜ tmp ./NVIDIA-WEB-PASCAL-patcher.command
md5: /System/Library/Extensions/NVDAGP100HalWeb.kext/Contents/MacOS/NVDAGP100HalWeb: No such file or directory
SIP looks to be disabled, all good!
Keep SIP disabled, if enabled again SIP prevent the Nvidia Driver from loading

Unknown version of the Nvidia driver found..
[/CODE]
It says the web driver couldn't be found. The location has moved from /System/Library to /Library, so edit the script with the new location at the top. Save it. And try the command again. If it can output MD5s but they don't match, then you can try to force the patch:
Code:
./NVIDIA-WEB-PASCAL-patcher.command patch 1
I tried to add a custom resolution with same values to the nVidia machine, but it just stays "Not activated - invalid?"
I don't think this is necessary because the timing is in the edid, and we saw in the log stream output that macOS tried to install that timing. Actually, it tried to install two different versions of the timing:
Code:
Attempting to install timing 3840 x 2160 @ 119.994377 Hz for IOConnect: 0xf2001c00
Attempting to install timing 3840 x 2160 @ 120.005463 Hz for IOConnect: 0xf2001c00
I think the first one is in the EDID. Did you make that second one?

One question I have is, what is the origin of the max pixel clock of 716.4 MHz? This might be a DisplayPort 1.2 limit? Hardcoded in the Nvidia driver? An incorrect calculation in the Nvidia driver? Might need to start looking at disassembly...
 
One question I have is, what is the origin of the max pixel clock of 716.4 MHz? This might be a DisplayPort 1.2 limit? Hardcoded in the Nvidia driver? An incorrect calculation in the Nvidia driver? Might need to start looking at disassembly...
My calculation for limit for DisplayPort 1.2 using 8bpc RGB is 720 MHz. Maybe their calculation uses a hard coded 3.6Mhz overhead. Or maybe my calculation is missing overhead.

The AMD max pixel clock of 1080MHz is the same as my calculation for the limit of DisplayPort 1.4 using 8bpc RGB. No overhead in this calculation.

If we enabled 8bpc YCrCb422 in the EDID, then the limit for DisplayPort 1.2 would be 1080 MHz but do you want to sacrifice picture quality for more refresh rate?
 
So we are pretty much stuck with 60hz at 4k with DP1.2 with nVidia cards - that's really really sad news, not just that we cant upgrade from High Sierra now we can't even upgrade to 4k with fast refresh rate :banghead:

I took my RX580 from work (cube) and I'll probably stick it to my home main rig (with that 120hz 4k screen) as secondary card... so I can swap the DP cable for MacOS usage, I simply can't stand the 60hz.. even for work and occasional gaming.

I hope we will find another (proper) solution for that problem. I even bought the SwitchResX for that purpose (I'll probably use it for screen app positioning as well then)
 
I hope we will find another (proper) solution for that problem. I even bought the SwitchResX for that purpose (I'll probably use it for screen app positioning as well then)
Probably need a patch. 2 ways to go about it:
1) Find the 716.4 MHz constant or calculation. Find why that is the number calculated.
2) Find the code that reads the dpcd registers for the max link width and speed and see what happens when you override the HBR2 link speed with the HBR3 link speed.
In either case, you have to hope that only the registers required to set HBR2 speed are enough to set HBR3 speed.
 
Probably need a patch. 2 ways to go about it:
1) Find the 716.4 MHz constant or calculation. Find why that is the number calculated.
2) Find the code that reads the dpcd registers for the max link width and speed and see what happens when you override the HBR2 link speed with the HBR3 link speed.
In either case, you have to hope that only the registers required to set HBR2 speed are enough to set HBR3 speed.

Hey, I've been away from this topic for awhile.. Dropped the idea of putting my RX580 into the case (it simply don't fit, because my 1080Ti is cooled with NZXT x62 kraken - takes too much space to fit 2 cards)

What do you mean by patching, could you please guide me for either 1 or 2 approach? Thanks!
 
I bought an Acer Nitro XV273K monitor to test DisplayPort 1.4 4K 120Hz.

In High Sierra, with GTX 1070, I can see 120 Hz refresh rate and 1000+ MHz max pixel clock frequency range in SwitchResX, but the display goes black when I try to select that option. The Nvidia driver doesn't want to set HBR3 mode. I think it's strange that I can see the resolution and max refresh rate but ch3m1c could not.

XV273K is interesting because it supports single cable DisplayPort 1.4 4K 120Hz 8bpc RGB and dual cable DisplayPort 1.4 4K 144Hz 10bpc RGB when you switch the display to 4K 144Hz mode (it changes the EDIDs of the two DisplayPorts, adding tiling info). Of course, macOS Nvidia drivers don't support dual cable displays (only the UP2715K - a patch was created to support that for the LG UltraFine 5K).
 
Status
Not open for further replies.
Back
Top