RDM icon indicating copy to clipboard operation
RDM copied to clipboard

M1 cannot activate HiDPI

Open dubefab opened this issue 4 years ago • 36 comments
trafficstars

If you find the way please tell us ... sudo defaults write /Library/Preferences/com.apple.windowserver.plist DisplayResolutionEnabled -bool true does nothing. ioreg -lw0 | grep -i "IODisplayEDID" displays nothing.

dubefab avatar Dec 02 '20 20:12 dubefab

Have you tried disabling SIP?

JonnyTech avatar Dec 02 '20 21:12 JonnyTech

Yes.

dubefab avatar Dec 02 '20 21:12 dubefab

Try to clone this repository and install the HEAD version. If that does not work, then it could take more time because I only have an intel mac.

jnooree avatar Dec 07 '20 08:12 jnooree

Still no luck, any update on this?

pinpins avatar Dec 27 '20 20:12 pinpins

I saw this: https://www.iphoneincanada.ca/news/fix-m1-mac-wide-display-issue/

dubefab avatar Dec 27 '20 20:12 dubefab

I think this would be the fix. Please wait for the next Big Sur update, and check if it works (hopefully).

jnooree avatar Dec 30 '20 04:12 jnooree

try 2.5

usr-sse2 avatar Dec 31 '20 20:12 usr-sse2

unfortunately, it still doesn't work on Mac mini M1 with monitor Philips 245E1 in my case at least. No lightning indicator shows in any resolutions.

turiguiliano88 avatar Jan 04 '21 21:01 turiguiliano88

@turiguiliano88 Please show what it has generated in /Library/Displays/Contents/Resources/Overrides folder

usr-sse2 avatar Jan 05 '21 14:01 usr-sse2

I'm on the MacBook Air w/ Big Sur, latest updates. I've also downloaded the latest Quartz Debug and made sure that the HiDPI setting is turned on.

ls -lah /Library/Displays/Contents/Resources/Overrides
total 8
drwxr-xr-x  4 root  wheel   128B Jan  6 11:27 .
drwxr-xr-x  3 root  wheel    96B Jan  6 11:20 ..
drwxr-xr-x  3 root  wheel    96B Jan  6 11:20 DisplayVendorID-610
-rw-r--r--  1 aj    staff   861B Jan  6 11:27 Icons.plist

I've added these settings for my Thunderbolt Display:

Screen Shot 2021-01-06 at 11 27 28 AM

And I get no Lightning bolts in the menu:

Screen Shot 2021-01-06 at 11 23 17 AM

I am using v25.0

Screen Shot 2021-01-15 at 4 30 19 PM

I also did a full reboot, just to be sure. No dice.

coolaj86 avatar Jan 06 '21 18:01 coolaj86

Hi, I am having the exact same issue on the M1 Mac. I have the newest version 2.5 and added a custom resolution. Disabled SIP and did several reboots. The custom resolution does not show up. However, interestingly the name and icon changes are in effect.

Bildschirmfoto 2021-01-07 um 17 42 45

Bildschirmfoto 2021-01-07 um 17 43 21

phipz avatar Jan 07 '21 16:01 phipz

@coolaj86 @phipz Please attach the generated plists here.

usr-sse2 avatar Jan 08 '21 17:01 usr-sse2

@usr-sse2 Could you give me the path of the specific plist you'd like?

coolaj86 avatar Jan 08 '21 17:01 coolaj86

/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-<your display vendor ID>/DisplayProductID-<your display product ID>

usr-sse2 avatar Jan 08 '21 17:01 usr-sse2

@usr-sse2 There you go Overrides.zip

phipz avatar Jan 08 '21 17:01 phipz

DisplayProductID-9227.gz

<?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>DisplayProductID</key>
	<integer>37415</integer>
	<key>DisplayProductName</key>
	<string>Thunderbolt Display</string>
	<key>scale-resolutions</key>
	<array>
		<data>
		AAAMgAAABwg=
		</data>
		<data>
		AAAKAAAABaA=
		</data>
		<data>
		AAAMgAAABwgAAAAJACAAAA==
		</data>
		<data>
		AAAKAAAABaAAAAAJACAAAA==
		</data>
	</array>
	<key>target-default-ppmm</key>
	<real>10.01</real>
</dict>
</plist>

coolaj86 avatar Jan 08 '21 18:01 coolaj86

@phipz I don't know if the GPU is capable of 6016x3384, it's rather large. Does something like 1680x945 (which becomes 3360x1890) work?

usr-sse2 avatar Jan 08 '21 18:01 usr-sse2

Here is mine. I can't use any tools to generate the plist file directly from Mac mini M1 so I plug it to Intel Mac to generate it and copy over Mac mini M1. /Library/Displays/Contents/Resources/Overrides/DisplayVendorID-410c

<?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>PHL 245E1</string>
  <key>DisplayProductID</key>
  <integer>49675</integer>
  <key>DisplayVendorID</key>
  <integer>16652</integer>
  <key>scale-resolutions</key>
  <array>
    <data>AAAKAAAABaAAAAABACAAAA==</data>
    <data>AAAFAAAAAtAAAAABACAAAA==</data>
    <data>AAAPAAAACHAAAAABACAAAA==</data>
    <data>AAAHgAAABDgAAAABACAAAA==</data>
    <data>AAAMgAAABwgAAAABACAAAA==</data>
    <data>AAAGQAAAA4QAAAABACAAAA==</data>
    <data>AAAKAgAABaAAAAABACAAAA==</data>
    <data>AAAKrAAABgAAAAABACAAAA==</data>
    <data>AAAFVgAAAwAAAAABACAAAA==</data>
  </array>
</dict>
</plist>

turiguiliano88 avatar Jan 08 '21 20:01 turiguiliano88

@phipz I don't know if the GPU is capable of 6016x3384, it's rather large. Does something like 1680x945 (which becomes 3360x1890) work?

The monitor is connected via a DisplayLink 6950 USB adaptor. Interestingly, the monitor natively supports full 4K resolution, which is offered by the system. Also 1080p HiDPI is offered. But the HiDPI resolutions in between are missing, that‘s the reason why I‘d like to add them manually.

The same monitor connected natively, supports all HiDPI resolutions in between without problem. So, adding the resolutions with the tool should generally not overwhelm the M1 chip.

2BDF372F-942F-4D69-A734-BE8A01677EEA BB17D67E-291C-4638-9AB2-3E8EA8D361FE

phipz avatar Jan 08 '21 21:01 phipz

@phipz I don't know if the GPU is capable of 6016x3384, it's rather large. Does something like 1680x945 (which becomes 3360x1890) work? ...

@phipz DisplayLink is a virtual GPU, so the adapter may be the problem because it should support 6016x3384 for this to work. Please check whether: • adding resolutions on a directly connected display works (add something that is not yet present), • adding lower resolutions on DisplayLink works (for example, 1680x945)

Sent with GitHawk

usr-sse2 avatar Jan 09 '21 08:01 usr-sse2

Please check whether: • adding resolutions on a directly connected display works (add something that is not yet present), • adding lower resolutions on DisplayLink works (for example, 1680x945)

@usr-sse2 Checked the two, with interesting results:

  1. The mac / RDM recognizes the external display as the same display, independent whether it is connected directly or via DisplayLink. That means, after saving RDM settings on the DisplayLink-connected display, the same settings appear if the display is then connected directly.
  2. The RDM edits lead to no effect when connected via DisplayLink.
  3. The RDM edits become available, if the Display is connected directly.
RDM Displaylink RDM Directly

phipz avatar Jan 12 '21 09:01 phipz

Please check whether: • adding resolutions on a directly connected display works (add something that is not yet present), • adding lower resolutions on DisplayLink works (for example, 1680x945)

@usr-sse2 Checked the two, with interesting results:

  1. The mac / RDM recognizes the external display as the same display, independent whether it is connected directly or via DisplayLink. That means, after saving RDM settings on the DisplayLink-connected display, the same settings appear if the display is then connected directly.

Yes, it's the expected behavior, because the vendor and device ID of display characterize the display itself, not the GPU it's attached to.

  1. The RDM edits lead to no effect when connected via DisplayLink.
  2. The RDM edits become available, if the Display is connected directly.

So RDM is working on M1, but DisplayLink driver ignores the override plists and uses only what it gets from the display EDID.

usr-sse2 avatar Jan 13 '21 15:01 usr-sse2

Here is mine. I can't use any tools to generate the plist file directly from Mac mini M1

Why can't you use RDM 2.5 to generate the plist file directly on Mac mini M1?

so I plug it to Intel Mac to generate it and copy over Mac mini M1. /Library/Displays/Contents/Resources/Overrides/DisplayVendorID-410c

<?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>PHL 245E1</string>
  <key>DisplayProductID</key>
  <integer>49675</integer>
  <key>DisplayVendorID</key>
  <integer>16652</integer>
  <key>scale-resolutions</key>
  <array>
    <data>AAAKAAAABaAAAAABACAAAA==</data>
    <data>AAAFAAAAAtAAAAABACAAAA==</data>
    <data>AAAPAAAACHAAAAABACAAAA==</data>
    <data>AAAHgAAABDgAAAABACAAAA==</data>
    <data>AAAMgAAABwgAAAABACAAAA==</data>
    <data>AAAGQAAAA4QAAAABACAAAA==</data>
    <data>AAAKAgAABaAAAAABACAAAA==</data>
    <data>AAAKrAAABgAAAAABACAAAA==</data>
    <data>AAAFVgAAAwAAAAABACAAAA==</data>
  </array>
</dict>
</plist>

The plist looks like what RDM 2.4 generates without manually duplicating resolutions, which is necessary. To get 1280x720 HiDPI, for example, you need to specify 2560x1440 (non-HiDPI) and 1280x720 HiDPI. RDM 2.5 does it automatically, so that each HiDPI resolution gets its counterpart in the plist.

usr-sse2 avatar Jan 13 '21 16:01 usr-sse2

Here is mine. I can't use any tools to generate the plist file directly from Mac mini M1

Why can't you use RDM 2.5 to generate the plist file directly on Mac mini M1?

so I plug it to Intel Mac to generate it and copy over Mac mini M1. /Library/Displays/Contents/Resources/Overrides/DisplayVendorID-410c

<?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>PHL 245E1</string>
  <key>DisplayProductID</key>
  <integer>49675</integer>
  <key>DisplayVendorID</key>
  <integer>16652</integer>
  <key>scale-resolutions</key>
  <array>
    <data>AAAKAAAABaAAAAABACAAAA==</data>
    <data>AAAFAAAAAtAAAAABACAAAA==</data>
    <data>AAAPAAAACHAAAAABACAAAA==</data>
    <data>AAAHgAAABDgAAAABACAAAA==</data>
    <data>AAAMgAAABwgAAAABACAAAA==</data>
    <data>AAAGQAAAA4QAAAABACAAAA==</data>
    <data>AAAKAgAABaAAAAABACAAAA==</data>
    <data>AAAKrAAABgAAAAABACAAAA==</data>
    <data>AAAFVgAAAwAAAAABACAAAA==</data>
  </array>
</dict>
</plist>

The plist looks like what RDM 2.4 generates without manually duplicating resolutions, which is necessary. To get 1280x720 HiDPI, for example, you need to specify 2560x1440 (non-HiDPI) and 1280x720 HiDPI. RDM 2.5 does it automatically, so that each HiDPI resolution gets its counterpart in the plist.

Thank you, I wasn't aware that I can generate plist file directly from RDM. Btw I did it and here is the plist file /Library/Displays/Contents/Resources/Overrides/DisplayVendorID-410c:

<?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>SM</string>
        <key>scale-resolutions</key>
        <array>
                <data>
                AAAPAAAACHA=
                </data>
                <data>
                AAAPAAAACHAAAAALAKAAAA==
                </data>
        </array>
        <key>target-default-ppmm</key>
        <real>10.01</real>
</dict>
</plist>

I want only 1920x1080 hidpi so I generate only that resolution. However RDM shows different resolutions. Is there anything wrong here? I tried to restart, check/uncheck those Unknown 1, Unknown 2, Unknown 3 options in RDM though. Screenshot 2021-01-13 at 18 15 15

turiguiliano88 avatar Jan 13 '21 17:01 turiguiliano88

@usr-sse2 Did you see my reply with my config file? Do you have any thoughts as to why I'm not seeing any HiDPI options?

  • https://github.com/usr-sse2/RDM/issues/26#issuecomment-756917418
  • https://github.com/usr-sse2/RDM/issues/26#issuecomment-755492257

coolaj86 avatar Jan 15 '21 23:01 coolaj86

Hi everyone, just wanted to also add that I'm experiencing this same issue with my MacBook Air M1 with using a DisplayLink Adapter with a 4K monitor. No lightening icon (HiDPI) for the resolution I want, which is 2560x1440. I'm getting the same exact results as @phipz has posted earlier.

Screen Shot 2021-01-26 at 10 26 09 AM

paulktemple avatar Jan 26 '21 15:01 paulktemple

I've gone back and forth with Apple support [email protected] for a couple of weeks and they've escalated me up the chain from Support to Senior Engineer to guys-you-dont-talk-to-directly-but-your-senior-engieer-talks-to-for-you and what I got back is that the OS-level support for Apple Thunderbolt Displays lacks HiDPI (it sounded like you can't just hack the plist file to do what you want).

The same probably applies to other displays mentioned here.

SwitchResX, which is a paid alternative to RDM, also supports these on Catalina on a Intel Mac but doesn't support them on Big Sur on an M1.

Call Apple Support

Since everyone here has a new computer that still has the complementary Apple support, I'd say give them a call and let them escalate it for you. I imagine that if enough people make noise about this, it'll get patched, or added to macOS 12.

coolaj86 avatar Feb 13 '21 20:02 coolaj86

SwitchResX, which is a paid alternative to RDM, also supports these on Catalina on a Intel Mac but doesn't support them on Big Sur on an M1.

I contacted the developer behind SwitchResX and he explained to me that Apple with the M1 chip applies the following constraints:

  • You can define a custom scaled resolutions for external displays, though this is limited to resolutions smaller than native (native meaning your external display native resolution)
  • HiDPI will not enable on external monitors that aren't 4K

In other words, if you are like me and have a 1440p screen you are basically screwed, since 1080p HiDPI = 4k resolution, which is well above the 1440p native resolution of the screen.

If you have an external 4k screen you should have ways to tweak the scaling to your needs.

This is pretty sad, especially considering that both Windows and Linux handle the scaling pretty well.

mbeaudru avatar Mar 03 '21 18:03 mbeaudru

I contacted the developer behind SwitchResX and he explained to me that Apple with the M1 chip applies the following constraints:

  • You can define a custom scaled resolutions for external displays, though this is limited to resolutions smaller than native (native meaning your external display native resolution)
  • HiDPI will not enable on external monitors that aren't 4K

Apple, again? So disappointing.

jnooree avatar Mar 06 '21 06:03 jnooree

This is pretty sad, especially considering that both Windows and Linux handle the scaling pretty well.

What? Linux doesn't handle the scaling 'pretty well': it applies the scaling to all displays, so it's impossible to work on a FullHD or less laptop with an external 4K monitor.

usr-sse2 avatar Mar 18 '21 10:03 usr-sse2