Contribute
Register

Adding/Using HiDPI custom resolutions

Joined
Feb 27, 2019
Messages
15
Motherboard
MacBook Pro 15" Mid-2015
CPU
i7-4770HQ
Graphics
Iris Pro 5200
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
4:2:0 shouldn't be bad for greyscale text. It's only bad for colored text.

Hard to take pictures, but I can't tell a difference between 4:2:0 (60Hz), and 4:4:4 (30Hz). Also, here's an example of how Mac OS is blurry compared to Windows.

EDIT: I messed up and didn't take the chroma pics at 100% scaling so I deleted them. I also found a way to turn on 4:4:4 in my TV and it works on Windows, but not Mac with my old settings. Will mess around and see what happens.
 

Attachments

  • MacOS.jpeg
    MacOS.jpeg
    7.1 MB · Views: 50
  • Windows.jpeg
    Windows.jpeg
    6.2 MB · Views: 48
Last edited:
Joined
Apr 5, 2016
Messages
915
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
Hard to take pictures, but I can't tell a difference between 4:2:0 (60Hz), and 4:4:4 (30Hz). Also, here's an example of how Mac OS is blurry compared to Windows.

EDIT: I messed up and didn't take the chroma pics at 100% scaling so I deleted them. I also found a way to turn on 4:4:4 in my TV and it works on Windows, but not Mac with my old settings. Will mess around and see what happens.
You haven't shown what settings you are using in Windows (or macOS).

Are you using the 1440x720 HiDPI mode in macOS? You know that's only using 2560x1440 scaled up to 3840x2160.
If Windows is using 3840x2160 then of course it's going to look better.

What you want is a 1440x720 HiDPI mode in macOS with a x3 or x4 scale but macOS only lets you use x2 for HiDPI modes.
 
Joined
Feb 27, 2019
Messages
15
Motherboard
MacBook Pro 15" Mid-2015
CPU
i7-4770HQ
Graphics
Iris Pro 5200
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
You haven't shown what settings you are using in Windows (or macOS).

Are you using the 1440x720 HiDPI mode in macOS? You know that's only using 2560x1440 scaled up to 3840x2160.
If Windows is using 3840x2160 then of course it's going to look better.

What you want is a 1440x720 HiDPI mode in macOS with a x3 or x4 scale but macOS only lets you use x2 for HiDPI modes.

Running 1280x720p HiDPI, but x2 scaling isn't going to work for me so I will give up on MacOS. Windows works great now and HDR is finally enabled. Youtube HDR is lagging terribly tho (but that's a seperate issue). Thanks for your help :)
 
Joined
Apr 5, 2016
Messages
915
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
Running 1280x720p HiDPI, but x2 scaling isn't going to work for me so I will give up on MacOS. Windows works great now and HDR is finally enabled. Youtube HDR is lagging terribly tho (but that's a seperate issue).
Text was too small for you in 1920x1080 HiDPI mode?

I think with iOS Apple must be pretty good at arbitrary scaling.
macOS did have a scale that developers could change with an older version of Quartz Debug.app. Then Apple settled on x2 scale.
The ability to use other scaling factors probably still exists in the macOS but developers have tested their software only with x2 so it might not work well even if you can figure out how to enable it.
 
Last edited:
Joined
Apr 5, 2016
Messages
915
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
macOS did have a scale that developers could change with an older version of Quartz Debug.app. Then Apple settled on x2 scale.

The ability to use other scaling factors probably still exists in the macOS but developers have tested their software only with x2 so it might not work well even if you can figure out how to enable it.
Quartz Debug.app v3.0 from Leopard (10.5.8) developer tools (Performance Tools) works on my Power Mac G5 (Quad). It supports arbitrary scale factor from x1 to x3. Here's a screenshot of x3 on a 1920x1200 display:
HiDPI x3.png


My Mac Pro (Early 2008) (MacPro3,1) has 64 GB of RAM and an EVGA Nvidia GeForce GTX 680 Mac Edition.

To boot Leopard (10.5.8), I have to use maxmem=32768 because the kernel is only 32-bit. I also have to remove NVDAResman.kext otherwise a kernel panic occurs with the GTX 680. Leopard doesn't have support for the GTX 680, so there's only the one boot resolution but I can enable x3 scaling. I can't take screenshots though.

Snow Leopard (10.6.8) is similar - I either need to set maxmem=32768 for 32-bit kernel or boot to 64-bit kernel maxmem=63488 arch=x86_64 (maxmem is set to 62 GB because the CPU doesn't like 64 GB - it slows things down for some reason). NVDAResman.kext does not need to be removed. Quartz Debug.app v4.0 from Snow Leopard developer tools works, but I prefer v3.0 because it honours the disabling of the "Restore scale factor to default (1.0) on quit" option better. With it disabled, you can log out and then log in to make the Finder use the x3 scaling (arbitrary scaling is per app in Leopard and Snow Leopard).

Lion (10.7.5) supports multiple resolutions with the GTX 680 even though real support for the GTX 680 is supposed to start with Mountain Lion (10.8.5). It supports HiDPI x2 modes. Lion does not support the arbitrary scale factor. Quartz Debug.app v4.2 has a new option "Enable HiDPI display modes" that replaces the arbitrary scale factor.

Anyway, the point is that the ability to use an arbitrary scale factor existed. I believe macOS today continues to have much of that code - an app is told to use a scale factor number - it's not a boolean that is on or off. It might be possible to change that number. macOS creates HiDPI display modes since Lion (10.7.5). The display mode includes a number for the scale factor. Perhaps that number can be changed. For example, when macOS adds an HiDPI x2 mode for each resolution, maybe we can patch it to add an x3 mode also. Maybe this can be done with a Lilu + WhateverGreen patch... With high resolution 8K displays, you might want to uses scale factors up to x4 and beyond.
 
Joined
Feb 27, 2019
Messages
15
Motherboard
MacBook Pro 15" Mid-2015
CPU
i7-4770HQ
Graphics
Iris Pro 5200
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
Text was too small for you in 1920x1080 HiDPI mode?

You know what... I could probably live with it. Maybe zoom in some applications if my eyes get strained.

YCbCr 4:4:4 at 3840x2160/60Hz seems to work from my Mac now, but 1920x1080 HiDPI does not. Timing is the same as in the resolution I just mentioned - and the same as in 'Descriptor #0' in EDID. Also tried making a custom scaling of 3840x2162. Not sure if that should affect the old HiDPI setting, or create a new one, but the old one still didn't work, and no new showed up even tho it says active.

Attaching new EDID as it changed a little bit (same timing) since enabling the UHD HDMI feature on my TV.
 

Attachments

  • Philips FTV_new.txt
    11.6 KB · Views: 22
Joined
Apr 5, 2016
Messages
915
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
You know what... I could probably live with it. Maybe zoom in some applications if my eyes get strained.

YCbCr 4:4:4 at 3840x2160/60Hz seems to work from my Mac now, but 1920x1080 HiDPI does not. Timing is the same as in the resolution I just mentioned - and the same as in 'Descriptor #0' in EDID.
What are you doing? To make a 1920x1080 HiDPI mode, you just need a 3840x2160 mode (either scaled or an actual timing). Then the macOS makes a HiDPI mode from that. You don't make HiDPI modes directly.

Descriptor #0 in the EDID is a 1920x1080 timing which macOS can use for a 960x540 HiDPI mode.
 
Joined
Feb 27, 2019
Messages
15
Motherboard
MacBook Pro 15" Mid-2015
CPU
i7-4770HQ
Graphics
Iris Pro 5200
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
To make a 1920x1080 HiDPI mode, you just need a 3840x2160 mode (either scaled or an actual timing).
Custom 3840x2160/60Hz with timing from 'Descriptor #0' works. Nothing happens when I try 1920x1080/60Hz HiDPI. Do you see a different timing I should be using?

EDIT: The 'scaled' box is not checked next to 1920x1080 HiDPI. If I double-click, it looks like 3840x2160 resolution without scaling. If I try to add a custom scaled resolution of 3840x2160, it just says 'Not activated - invalid'.
1920x1200 HiDPI works great (besides aspect ratio of course).

EDIT2: Got HiDPI working with custom scaled 3840x2162.

Should I care about YCbCr vs RGB?
 
Last edited:
Joined
Apr 5, 2016
Messages
915
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
Attaching new EDID as it changed a little bit (same timing) since enabling the UHD HDMI feature on my TV.
Oh. I just noticed the differences. The new EDID has a few changes for UHD support. I ignored the new EDID because it didn't come from AGDCDiagnose so I can't know if you modified it (it doesn't contain SwitchResX text so you probably didn't modify it, unless another method of editing it was used).

The monitor pixel clock range is increased from 300 MHz to 600 MHz. 4K 60 Hz uses 594 MHz so that's good. This can be overridden in the "Display Information" tab of SwitchResX so it's not usually a problem.

The new EDID has the 4K 60Hz and 50Hz CEA modes added (allows 4:4:4, 4:2:2, and 4:2:0). In the old EDID, these were only supported for 4:2:0.

In the new EDID, 10 and 12 bpc is supported for 4:2:0.

In the new EDID, HDR10+ data exists (Dolby).

The only think weird in the new EDID is that the horizontal range is limited to a max of 70 kHz instead of 135 kHz. Maybe consider overriding the Frequency Rage in SwitchResX to be sure.

Custom 3840x2160/60Hz with timing from 'Descriptor #0' works. Nothing happens when I try 1920x1080/60Hz HiDPI. Do you see a different timing I should be using?
I see nothing because you've shown nothing. What Descriptor #0 are you looking at? I see a timing for 1920x1080 there. Why would you use that for 3840x2160? Are you saying that you are editing the EDID manually and replacing Descriptor #0?
Code:
    Descriptor #0 - Timing definition:
    Mode = 1920 × 1080 @ 60.000Hz
        Pixel Clock............. 148.50 MHz        Not Interlaced

                                Horizontal        Vertical
        Active.................. 1920 pixels        1080 lines
        Front Porch.............   88 pixels           4 lines
        Sync Width..............   44 pixels           5 lines
        Back Porch..............  148 pixels          36 lines
        Blanking................  280 pixels          45 lines
        Total................... 2200 pixels        1125 lines
        Scan Rate...............  67.500 kHz         60.000 Hz
        Image Size.............. 1440 mm         810 mm
        Border..................    0 pixels           0 lines

            Sync: Digital separate with
                * Positive vertical polarity
                * Positive horizontal polarity

EDIT: The 'scaled' box is not checked next to 1920x1080 HiDPI. If I double-click, it looks like 3840x2160 resolution without scaling. If I try to add a custom scaled resolution of 3840x2160, it just says 'Not activated - invalid'.
1920x1200 HiDPI works great (besides aspect ratio of course).
A mode does not need to be scaled for it to be used by the macOS to make a HiDPI mode. Your display has a 3840x2160 timing, so it is not scaled from some other timing.
There is no point creating a 3840x2160 scaled mode if that is the actual resolution of the display.

EDIT2: Got HiDPI working with custom scaled 3840x2162.
Weird. What version of macOS are you running? Show the "Display Information" tab of SwitchResX.
You're using Intel Iris Pro 5200 graphics from a 2.2 GHz MacBook Pro, so I don't know if that has limits that are causing this issue. Maybe a previous post in this thread mentions an issue that I forgot. I did a search. Yup, I did forget that this was discussed before (I don't remember if the code that caused the issue was inspected)
#905 #910 #911 #921 #922
#925 - #930

Should I care about YCbCr vs RGB?
Not if you can't figure out what is wrong with YCbCr.
 
Last edited:
Joined
Feb 27, 2019
Messages
15
Motherboard
MacBook Pro 15" Mid-2015
CPU
i7-4770HQ
Graphics
Iris Pro 5200
Mac
  1. MacBook Pro
Mobile Phone
  1. iOS
I see a timing for 1920x1080 there. Why would you use that for 3840x2160?
Because it's the only timing that works for 3840x2160/60Hz. The standard timing is double, which is fine for 30Hz, but 3840x2160/60Hz displays just a green line at the top of the screen.

Note: That 'standard' timing works on my PC with Windows.

Are you saying that you are editing the EDID manually and replacing Descriptor #0?
No. I'm referencing the timing that works and exported the EDID from SwitchResX.

A mode does not need to be scaled for it to be used by the macOS to make a HiDPI mode. Your display has a 3840x2160 timing, so it is not scaled from some other timing.
There is no point creating a 3840x2160 scaled mode if that is the actual resolution of the display.
Standard resolution (timing) does not work, so I had to create a custom one. Standard HiDPI mode does not work, so I had to create a custom one (with additional 2 vertical pixels as mentioned in this thread before).

Weird. What version of macOS are you running?
10.15.6

Show the "Display Information" tab of SwitchResX.
Attached.
 

Attachments

  • DisplayInformation.png
    DisplayInformation.png
    744.8 KB · Views: 88
Top