Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dummy mirroring method for HiDPI scaling (native smooth scaling not affected) - High refresh displays (refresh rates above 60Hz) are not supported #140

Closed
waydabber opened this issue Nov 24, 2021 · 31 comments
Assignees
Labels
information Issue contains some important information known issue Known issue that currently has no fix
Milestone

Comments

@waydabber
Copy link
Owner

Issue description

Creating high refresh rate dummies in order to mirror them to high refresh rate displays is not possible.

Root cause

This is an inherent limitation of the macOS CGVirtualDisplay API used by the app therefore cannot be fixed at this time.

Resolution

The situation might change once Apple introduces ProMotion for AirPlay or Sidecar.

@waydabber waydabber added the known issue Known issue that currently has no fix label Nov 24, 2021
@Branchenprimus
Copy link

Branchenprimus commented Mar 4, 2022

Is it possible to estimate, when Apple will introduce ProMotion for AirPlay or Sidecar?

However great afford so far!

@Atemu
Copy link

Atemu commented Mar 4, 2022

Here's the best we have: https://www.m8ball.com/en/answer-8955120.html

@waydabber
Copy link
Owner Author

lol

@Branchenprimus
Copy link

LOL, thats hilarious. How about asking the magic shell? https://deconimus.github.io/magic-conch-shell/#

@waydabber
Copy link
Owner Author

If you have this issue and are using the app only to mirror a dummy screen to a real display on Apple Silicon in order to have flexible HiDPI resolutions, please check out the latest beta which includes a new smooth scaling feature for native displays (no dummy required).

The feature requires macOS Monterey 12.4, 12.5 beta or Ventura and requires a Pro license.

Thank you!

@waydabber waydabber added enhancement New feature or request pre-release available Released as beta version labels Jun 11, 2022
@waydabber waydabber self-assigned this Jun 11, 2022
@waydabber waydabber added this to the v1.2.5 milestone Jun 11, 2022
@MrMage
Copy link

MrMage commented Jun 13, 2022

There is now an option in the app to enable a smooth HiDPI resolution scale on Apple Silicon for internal displays and natively connected external displays.

I have a 2560x1440 165Hz display connected via USB-C. Does the new feature mean that I could now have my M1 Max MBP render 1920x1080@2x (i.e. 4k total resolution), then output that scaled-down to the 2560x1440 display, all at high refresh rates?

@waydabber
Copy link
Owner Author

waydabber commented Jun 13, 2022

Yes, theoreticaly it should work but there might be a limit if the MBP cannot handle the internal 5K framebuffer resolution at 165Hz. It works fine for 120Hz on the MBP for a framebuffer almost twice the native resolution though (so this is about 6K) so I think it will probably work.

@pmalek
Copy link

pmalek commented Jun 13, 2022

If that works (I'm also on 1440p but I'm fine with 144Hz or 120Hz) then I'm definitely interested in using this tool on a daily basis.

Sadly I've installed it 2 weeks ago and realized that high refresh rates didn't work at that time and wasn't interested in using it.

Now my trial is over and I have no way of testing whether that works on my setup since that's a Pro feature 😞

@waydabber waydabber added released Released and removed pre-release available Released as beta version labels Jun 28, 2022
@waydabber waydabber changed the title High refresh displays (refresh rates above 60Hz) are not supported Dummy mirroring method for HiDPI scaling (native smooth scaling not affected) - High refresh displays (refresh rates above 60Hz) are not supported Jun 28, 2022
@waydabber waydabber added information Issue contains some important information and removed enhancement New feature or request done All tasks are completed released Released labels Jun 28, 2022
@waydabber waydabber reopened this Jun 28, 2022
@amroc-dev
Copy link

Just wondering what the current state is on getting an external monitor with >60z HiDPI running with a macbook that has a 60hz in built display, such as the M1 Air. I have the pro version of BetterDisplay but no luck. Is this issue still subject to the requirements outlined in the top level comment (possibly after Apple introduces ProMotion for AirPlay or Sidecar). Thanks :)

@waydabber
Copy link
Owner Author

Native smooth scaling should allow high refresh rate displays. However high refresh rate over HDMI does not work in macOS as far as I know, so you need to use USB-C.

@amroc-dev
Copy link

Native smooth scaling should allow high refresh rate displays. However high refresh rate over HDMI does not work in macOS as far as I know, so you need to use USB-C.

Ah, well I'm using a USB-C to Displayport cable as my monitor doesn't have USB-C, so perhaps that's a problem, but the monitor supports 2560x1440p at 144hz (Asus PG279Q) and does work at 144hz over this cable fine with no HiDPI enabled. I don't get a black screen or anything when I try to use BetterDisplay with it, I get the higher refresh rate options in BetterDisplay, just nothing happens when I click them.

@waydabber
Copy link
Owner Author

USB-C to DisplayPort should be fine.

Unfortunately I don't have a high-refresh rate display, but you should try lower resolutions or lower refresh rates to see if there is a point that is working. Running 2560x1440p HiDPI at 144Hz might be taxing the system too much (?) as that would mean an equivalent of approx. 10K@60Hz pixel rate in terms of framebuffer size, so there might be a system induced cut-off point somewhere that does not let you switch to that resolution - but I am not entirely sure if this is the issue to be honest as I had no chance to experiment with it. :(

Try using the resolution menu and let all resolution slow and experiment with what works and what not.

Screenshot 2022-07-02 at 12 15 41

If even lower HiDPI resolutions with slightly above 60Hz do not work, then something else must be the problem.

@amroc-dev
Copy link

Thanks for all the help :) Yeah it seems something else is the issue, as opposed to bandwidth (although I get why that might be an issue anyway).

Basically whenever I'm in HiDPI mode for my external monitor, no matter how low the resolution is, selecting any other refresh rate (including 24hz) never actually switches it from 60.

image

@MrMage
Copy link

MrMage commented Jul 2, 2022

I might have a related issue: from my M1 Max MBP, I can drive my WQHD monitor at 170 Hz with full picture quality when connected without BetterDisplay. However, when using BetterDisplay's HiDPI upscaling, any refresh rate higher than 120 Hz leads to chroma subsampling (4:2:2). Note that I am "only" using ~2048x1152px @2x, ie. slightly more than 4K resolution. I believe the MBP should still be able to handle that.

For what it's worth, I used to have the same issue even without BetterDisplay, but it seems like some macOS update (12.3 or 12.4, I guess), seems to have fixed that when connected "natively".

@waydabber
Copy link
Owner Author

@amroc-dev - you seem to be mirroring the internal display to the external display. The refresh rate will be fixed to best match the internal display in this scenario imho.

@MrMage - Chroma subsampling on/off should depend more on the available bandwidth and connection type for the given display/connection (also the display EDID and various other factors influence this). MacOS has various rules that are rather obscure regarding choosing the right mode (it is also changing for version to version as Apple is tweaking things). These issues are generally super-difficult to influence and fix (and it should be attempted on a case-by-case basis). You can try overriding com.apple.windowserver.displays.plist for the given display layout to force RGB mode. On some displays you can change stuff or change the connection mode that might trigger macOS to switch to a different encoding scheme.

@unsalkorkmaz
Copy link

unsalkorkmaz commented Jul 2, 2022

Screen Shot 2022-07-02 at 16 27 41

Screen Shot 2022-07-02 at 16 32 38

Monitor: https://www.mi.com/global/monitor34/
Computer: mac mini m1 16gb/256gb
Cable: url

3440 x 1440px fullscreen screenshot is 6124x2564px so its not 6880x2880.

And this is default for display with low resolution mode: 3440x1440
Screen Shot 2022-07-02 at 16 39 43

I bought pro version so I have time. I can do tests if needed

@amroc-dev
Copy link

@amroc-dev - you seem to be mirroring the internal display to the external display. The refresh rate will be fixed to best match the internal display in this scenario imho.

Hmm, I'm unclear how I should be setting this up. If I don't use the mirroring option (either to my internal or the dummy), then I don't get any HiDPI options on my external monitor at all.

@waydabber
Copy link
Owner Author

hey @unsalkorkmaz - take a look at this: #735 (comment)

@amroc-dev - if you are on apple silicon and running Montery 12.4 or newer, you should follow this guide: https://github.com/waydabber/BetterDisplay#how-to-unlock-scaling-and-hidpi-for-my-display

If this still does not work, there might be other factors at play. In this case, please go to Settings/Displays, click on the Display Name so more info could be revealed and create a screenshot of everything under the display (including the settings) so I may see how things are configured. Also please create a screenshot of the Set Resolution submenu so I can see what is there. Thank you!

@amroc-dev
Copy link

amroc-dev commented Jul 3, 2022

@amroc-dev - if you are on apple silicon and running Montery 12.4 or newer, you should follow this guide: https://github.com/waydabber/BetterDisplay#how-to-unlock-scaling-and-hidpi-for-my-display

Oh man, thanks so much. I followed these instructions and it does indeed work, have my external 1440p monitor running with smooth resolution scale HiDPI, and 144hz! Thanks once more for your help, hugely appreciated!

@Automage
Copy link

Automage commented Aug 7, 2022

HiDPI on 1440p @ 144hz – working for me too!

@zyks
Copy link

zyks commented Aug 15, 2022

Oh man, thanks so much. I followed these instructions and it does indeed work, have my external 1440p monitor running with smooth resolution scale HiDPI, and 144hz! Thanks once more for your help, hugely appreciated!

HiDPI on 1440p @ 144hz – working for me too!

Hey guys, how did you configure the smooth scaling to work on 3440x1440 @ 144Hz? I bought Pro and all I can do is scale the UI from 50% (huge) to 100%, where 100% is 3440x1440 low DPI and I can't go higher. Did you add any specific resolution manually?

@waydabber is this even possible to have HiDPI on a 3440x1440 screen and normal UI without dummy mirroring? On 12.5 dummies are unusable to me

@Atemu
Copy link

Atemu commented Aug 15, 2022

@zyks on my display, I was able to set 2560x1080. Also check the System Preferences Display settings' scaled resolutions, IIRC BetterDisplay's resolutions show up there.

@zyks
Copy link

zyks commented Aug 15, 2022

@Atemu Ok thanks, I managed to set 3406x1426 HiDPI @ 144Hz when switched to use the resolution submenu instead of the slider. It looks good now, it's almost the same as the native screen resolution, but is this possible to have full 3440x1440 HiDPI? I'm having 14 M1 Pro.

Also, the colors are a bit washed out at 144Hz, at 120Hz it's much more vivid and looks more like it was on a 6880x2880 dummy. I tried to tune the colors but had no luck. Is there any setting to fix that? I'm using the General RGB profile.

@Atemu
Copy link

Atemu commented Aug 15, 2022

is this possible to have full 3440x1440 HiDPI?

What do you mean by that? HiDPI 3440x1440 would mean 6880x2880 which would be an insane amount of pixels at the scale of 3440x1440.

You usually want something at the scale of <1440p (so, bigger screen elements) but with the pixel count of 1440p.

Give 2560x1080p a shot to know what I mean; it'll be as large as 1080p would be on your monitor but with the higher pixel count of 1440p.

@zyks
Copy link

zyks commented Aug 15, 2022

Well, yes, that is exactly what I meant. I already got used to having more space and sharp fonts, I used a 6880x2880 dummy before. I tried 1080p but the UI is a bit too big for me

@waydabber
Copy link
Owner Author

Hi @zyks - the only macOS version that allowed the native resolution as HiDPI on Apple Silicon was Ventura dev beta4. This change was reverted in beta5, so under the latest Ventura beta or on Monterey you can go only to 99% of the native resolution if you want HiDPI. However this also means a huge amount of supersampling so quality does not really suffer from this.

@unsalkorkmaz
Copy link

unsalkorkmaz commented Aug 16, 2022

I disabled font smoothing and I think it makes sense in my eyes.

source: https://osxdaily.com/2022/04/06/change-remove-font-smoothing-macos/

hiDPI is not showing in panel but its active, you can check it from safari icon details.
3440x1440 @ 60hz.. I cant increase it if I want to activate hiDPI.

Screen Shot 2022-08-16 at 16 29 38

update: I disabled this program after lots of weird problems. I know I should explain details but dunno where to start.

@pmalek
Copy link

pmalek commented Sep 1, 2022

@Automage @amroc-dev How did you guys get the 1440p 144Hz thing working?

Do you have the display mirrored? I'm trying to achieve just that but I can't figure out what am I missing here. I'm connected through a USB-C <-> HDMI cable if that matters (never had any problems with it before.

Here's what my display setup looks like:

image

image

image

Not sure BTW what's referred here as HiDPI. I'm using my panel's native res which is 1440p. 🤔

@amroc-dev
Copy link

@Automage @amroc-dev How did you guys get the 1440p 144Hz thing working?

Yes I did. I've since switched to a 3440x1440 monitor and that also works, at 144hz over usb c -> dp, and 85hz over usb c -> hdmi (which is the max hz my new monitor can do over hdmi).

Is your issue that it always stays at 60hz no matter which refresh rate you select?

@waydabber
Copy link
Owner Author

@pmalek - if you have native smooth scaling enabled, you don't need to use a dummy (that will limit to 60hz). For HiDPI you'll need to set the resolution slider to 99% with native smooth scaling.

@pmalek
Copy link

pmalek commented Sep 1, 2022

Is your issue that it always stays at 60hz no matter which refresh rate you select?

Pretty much yes. When I click a particular refresh rate from the menu it does nothing.

@waydabber AAAh alright. I disabled the slider and now by using 2544x1431, 144Hz it works 🎉

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
information Issue contains some important information known issue Known issue that currently has no fix
Projects
None yet
Development

No branches or pull requests

9 participants