Contribute
Register

Adding/Using HiDPI custom resolutions

Status
Not open for further replies.
My laptop is an Asus UX31A running Sierra. HD4000 with AppleIntelFramebufferCapri, 1920x1080 screen, i7 3517u. The Mac UI is too small in the native 1920x1080 resolution, and all others are blurry.

I enabled HiDPI and I now have a few HiDPI resolutions: 960x600, 960x540, 840x525, 800x450, 800x600, 720x450 and 640x480. 960x540 gives me the most screen real estate, however everything is scaled 2x so it's all just too big.

Is there any way to get OS X to render the UI at 1.5x or 1.25x scale?
 
My laptop is an Asus UX31A running Sierra. HD4000 with AppleIntelFramebufferCapri, 1920x1080 screen, i7 3517u. The Mac UI is too small in the native 1920x1080 resolution, and all others are blurry.

I enabled HiDPI and I now have a few HiDPI resolutions: 960x600, 960x540, 840x525, 800x450, 800x600, 720x450 and 640x480. 960x540 gives me the most screen real estate, however everything is scaled 2x so it's all just too big.

Is there any way to get OS X to render the UI at 1.5x or 1.25x scale?

Read post #1.
Add a resolution to suit your screen size (maybe 1366x768 or 1600x900).
 
I tried that, but the resolution won't show up. Following instructions from #1, I:

1. Found my DisplayProductID and DisplayVendorID, 0x1343 and 0xdae:
users-Air:~ user$ ioreg -lw0 | grep IODisplayPrefsKey
| | | | | "IODisplayPrefsKey" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebuffer@0/display0/AppleBacklightDisplay-dae-1343"

I am only using the laptop's internal screen, which is detected correctly as far as I can tell. About this Mac/Displays says:
Built-in Retina Display, 12.9-inch (1920 x 1080), Intel HD Graphics 4000 1024MB. Also I have attached Clover's config.plist just in case.

2. Generated a plist using https://comsysto.github.io/Display-...or-with-HiDPI-Support-For-Scaled-Resolutions/ with my native resolution 1920x1080, the HiDPI resolution I want (1600x900), and another double that (3200x1800):

users-Air:~ user$ cat /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-dae/DisplayProductID-1343
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>DisplayProductName</key>
<string>UX31A Screen</string>
<key>DisplayProductID</key>
<integer>4931</integer>
<key>DisplayVendorID</key>
<integer>3502</integer>
<key>scale-resolutions</key>
<array>
<data>AAAHgAAABDg=</data>
<data>AAAGQAAAA4Q=</data>
<data>AAAMgAAABwg=</data>
</array>
</dict>
</plist>

3. Saved it to /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-dae/DisplayProductID-1343:
users-MacBook-Air:~ user$ ls -la /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-dae
total 8
drwxr-xr-x 3 user wheel 102 7 Jul 05:53 .
drwxr-xr-x 24 root wheel 816 4 Jul 23:00 ..
-rw-r--r-- 1 root wheel 505 7 Jul 05:53 DisplayProductID-1343

4. Rebooted.

But the resolution won't show up when I option-click on System Prefs/Display/Scaled, nor in RDM, nor in the Current Resolutions tab in SwitchResX. EDIT: If I look for it in the Custom Resolutions tab, I see:

1600x900, Type Scaled, Status System Only
1920x1080, Type Scaled, Status System Only - Invalid
3200x1800, Type Scaled, Status System Only - Invalid

However, I can tell OS X is reading the plist because the name of the display profile at the top of the list in System Prefs/Display/Color has changed to "UX31A Display"
 

Attachments

  • config.plist
    7 KB · Views: 246
Last edited:
I tried that, but the resolution won't show up. Following instructions from #1, I:

1. Found my DisplayProductID and DisplayVendorID, 0x1343 and 0xdae:
users-Air:~ user$ ioreg -lw0 | grep IODisplayPrefsKey
| | | | | "IODisplayPrefsKey" = "IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/IGPU@2/AppleIntelFramebuffer@0/display0/AppleBacklightDisplay-dae-1343"

I am only using the laptop's internal screen, which is detected correctly as far as I can tell. About this Mac/Displays says:
Built-in Retina Display, 12.9-inch (1920 x 1080), Intel HD Graphics 4000 1024MB. Also I have attached Clover's config.plist just in case.

2. Generated a plist using https://comsysto.github.io/Display-...or-with-HiDPI-Support-For-Scaled-Resolutions/ with my native resolution 1920x1080, the HiDPI resolution I want (1600x900), and another double that (3200x1800):

users-Air:~ user$ cat /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-dae/DisplayProductID-1343
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>DisplayProductName</key>
<string>UX31A Screen</string>
<key>DisplayProductID</key>
<integer>4931</integer>
<key>DisplayVendorID</key>
<integer>3502</integer>
<key>scale-resolutions</key>
<array>
<data>AAAHgAAABDg=</data>
<data>AAAGQAAAA4Q=</data>
<data>AAAMgAAABwg=</data>
</array>
</dict>
</plist>

3. Saved it to /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-dae/DisplayProductID-1343:
users-MacBook-Air:~ user$ ls -la /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-dae
total 8
drwxr-xr-x 3 user wheel 102 7 Jul 05:53 .
drwxr-xr-x 24 root wheel 816 4 Jul 23:00 ..
-rw-r--r-- 1 root wheel 505 7 Jul 05:53 DisplayProductID-1343

4. Rebooted.

But the resolution won't show up when I option-click on System Prefs/Display/Scaled, nor in RDM, nor in the Current Resolutions tab in SwitchResX. EDIT: If I look for it in the Custom Resolutions tab, I see:

1600x900, Type Scaled, Status System Only
1920x1080, Type Scaled, Status System Only - Invalid
3200x1800, Type Scaled, Status System Only - Invalid

However, I can tell OS X is reading the plist because the name of the display profile at the top of the list in System Prefs/Display/Color has changed to "UX31A Display"

Read FAQ, "Problem Reporting"
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
 
I have attached my EFI/CLOVER folder and the output of patchmatic, IOReg, kextstat and kextcache as explained in the FAQ.
 

Attachments

  • IOReg.zip
    513.1 KB · Views: 100
  • CLOVER.zip
    4.7 MB · Views: 84
  • kextcache.zip
    627 bytes · Views: 77
  • kextstat.zip
    548 bytes · Views: 86
  • patchmatic.zip
    37.3 KB · Views: 81
I have attached my EFI/CLOVER folder and the output of patchmatic, IOReg, kextstat and kextcache as explained in the FAQ.

It may have something to do with the ig-platform-id you're using.
I'm using 0x01660004 on my Probook (have used 1600x900 HiDPI in the past).
Or maybe you didn't enable HiDPI?

Another difference... I'm using MacBookPro9,1.

Also, something is wrong with your backlight control implementation. If you look in ioreg, you'll see two PNLF entries... (ACPI must have two PNLF devices...)

Also, you did not implement CPU PM correctly.

Also, backlight control not ideal... Use IntelBacklight.kext or AppleBacklightInjector.kext (see sticky in 10.12 forum).

Other unrelated:
- USB not implemented correctly (renaming XHC->XHC1 is a bad idea)
- USB WiFi not recommended
- Why not 10.12.5?

From where did you download macOS?
On what hardware did you create your USB installer?
 
I ended up successfully installing 10.12.5 from scratch and cleanly. As in, not based off of someone else's attempt. I edited the vanilla config.plist from Clover, patched my laptop's DSDT, didn't use any kexts I didn't understand, etc. Everything works great except CPU PM, and I have instant wake on sleep. But I think I can fix all that. I have put together a (WIP) guide here for my UX31A. Most of it consists of doing everything RehabMan says.

1600x900 HiDPI works perfectly now. Thank you so much.

For reference, I have attached the "Problem Reporting" files for my current install. Also, though it may be off-topic:

- I'm now using AppleBacklightInjector which works fine. I still have just one PNLF entry though.
- I'm still trying to get CPU PM to work. I had to use the old script to generate my SSDT (not the beta) with workaround 2 (-w 2) or I'd crash with a P-State error on boot. And the laptop is stuck at 800Mhz even while running GeekBench. I suspect my SMBIOS settings (especially the board id) are wrong or unset and this breaks PM. I will reply to the appropriate thread later if I can't work out what I'm doing wrong.As per https://www.tonymacx86.com/threads/...-and-stepping-woes.202421/page-2#post-1329421, I used the beta version of ssdtPRgen with -c 2 and now have working PM, as in:

CPU P-States [ 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 (28) 30 ] iGPU P-States [ 7 (8) 9 11 12 17 18 19 20 21 22 23 ]

- I looked in origin/DSDT.aml and it seems it already uses XHC1, i.e. I didn't rename it myself. Should I patch it to rename it back to XHC? I wonder if that'd fix the hangs (as in graphics won't come on) I get every 1 out of 10 boots when anything is plugged in (e.g. just my iPhone).
- Have to use USB WiFi (D-Link DWA 131) as my Centrino card is not supported and I'm too much of a wuss to mess with the internals of the laptop to replace it.
- I know I should put my kexts into S/L/E instead of having Clover load them. I'll fix that once everything works.
 

Attachments

  • CLOVER.zip
    2.6 MB · Views: 96
  • IOReg.ioreg
    3.8 MB · Views: 169
  • kextcache.zip
    394 bytes · Views: 98
  • kextstat.zip
    651 bytes · Views: 82
  • patchmatic.zip
    38.8 KB · Views: 85
Last edited:
I ended up successfully installing 10.12.5 from scratch and cleanly. As in, not based off of someone else's attempt. I edited the vanilla config.plist from Clover, patched my laptop's DSDT, didn't use any kexts I didn't understand, etc. Everything works great except CPU PM, and I have instant wake on sleep. But I think I can fix all that. I have put together a (WIP) guide here for my UX31A. Most of it consists of doing everything RehabMan says.

1600x900 HiDPI works perfectly now. Thank you so much.

For reference, I have attached the "Problem Reporting" files for my current install. Also, though it may be off-topic:

- I'm now using AppleBacklightInjector which works fine. I still have just one PNLF entry though.
- I'm still trying to get CPU PM to work. I had to use the old script to generate my SSDT (not the beta) with workaround 2 (-w 2) or I'd crash with a P-State error on boot. And the laptop is stuck at 800Mhz even while running GeekBench. I suspect my SMBIOS settings (especially the board id) are wrong or unset and this breaks PM. I will reply to the appropriate thread later if I can't work out what I'm doing wrong.
- I looked in origin/DSDT.aml and it seems it already uses XHC1, i.e. I didn't rename it myself. Should I patch it to rename it back to XHC? I wonder if that'd fix the hangs (as in graphics won't come on) I get every 1 out of 10 boots when anything is plugged in (e.g. just my iPhone).
- Have to use USB WiFi (D-Link DWA 131) as my Centrino card is not supported and I'm too much of a wuss to mess with the internals of the laptop to replace it.
- I know I should put my kexts into S/L/E instead of having Clover load them. I'll fix that once everything works.

Actually, you have both XHC and XHC1. The XHC1 device should be removed. Change references (there is only one) for XHC1 to XHC.
 
Status
Not open for further replies.
Back
Top