GithubHelp home page GithubHelp logo

High Fps displays about betterdisplay HOT 14 CLOSED

gbaraldi avatar gbaraldi commented on May 22, 2024
High Fps displays

from betterdisplay.

Comments (14)

waydabber avatar waydabber commented on May 22, 2024 2

Well, it is a shame indeed. Since we rely on a private framework Apple has given us primarily to support virtual display adapters (like Sidecar, AirPlay etc), there is probably an inherent lock at 60Hz. There is not much we can do about it, but I'll leave this issue open, maybe somebody will come up with a solution or we'll bump into one somehow.

from betterdisplay.

waydabber avatar waydabber commented on May 22, 2024

Yes, this seems to be an issue. Whenever I select the dummy as optimize for, the refresh rate resets to 60Hz and there is no selector available.

The following refresh rates should be added to the virtual display:
24, 25, 30, 48, 50, 60, 72, 75, 90, 96, 100, 120, 125, 144, 150

I'll experiment with this further, maybe by adding only certain refresh rates to the virtual display this could be circumvented. I can only experiment with 30Hz and 60Hz though as I don't have a high refresh rate display.

from betterdisplay.

gbaraldi avatar gbaraldi commented on May 22, 2024

I can serve as a testbed, I just updated to monterey and it even has variable refresh rate, but with the virtual display the refresh speed goes away. I wonder if setting the virtual display to 120Hz or even to adaptive sync might make it mirror at that speed on the real display

from betterdisplay.

cpolish avatar cpolish commented on May 22, 2024

Hi,

Firstly I just wanted to say thanks so much for making this app, it's a nifty tool to get around the HiDPI issue for M1 Mac users!

Unfortuantely I seem to be having a similar problem that @gbaraldi is facing, whereby mirroring the display on my M1 Mac Mini seems to leave the refresh rate stuck at 60 Hz, despite selecting a higher refresh rate in the settings. I had a similar issue when I modified some of FluffyDisplay's code to create a 4K display with a higher refresh rate – it was also stuck at 60 Hz. I'm rather naive with Swift and C code in general, but I wonder if it might be that the emulated display appears to be coming from HDMI input which is limited to 60 Hz on the Mac Mini?

Happy also to test for the app, and help out in other ways if need be :)

from betterdisplay.

waydabber avatar waydabber commented on May 22, 2024

@cpolish - this should not interfere, the emulated display is unrelated to the HDMI port (the app icon is just for show only :)) as it is purely a software construct (but it is actually used as a placeholder in the app, normally is an outlet of a networked data stream which can be utilized by some kind of display solution on the receiving end - DisplayLink and SideCar would use this).

To me it seems like macOS tries to match the physical display as close to the mirrored display's refresh rate as possible - preferring 60Hz if that is an option. I did some tweaks based on this finding, but I am not sure if this will help with on a high refresh rate display or not as I don't have one. Worth a shot.

Can you guys please try this build?

https://www.dropbox.com/s/z9fu4677dbscb44/BetterDummy.zip?dl=1

The procedure is the following:

  1. First set the display config to unmirrored
  2. Change the refresh rate of your display to the highest setting
  3. Activate mirroring (might need more than one try on Monterey because of the Displays preferences bug).
  4. Is it still 60Hz?

If it is still stuck at 60Hz then I have no additional idea on how to make things better. It might be that virtual displays simply can't go beyond 60Hz (Apple might not have implemented virtual display streaming above 60Hz so it would make no sense to support it as our use case is not really what the creators of CGVirtualDisplay - which is a part of a private framework anyway - at Apple had in mind).

Thanks!

from betterdisplay.

MichaelMKenny avatar MichaelMKenny commented on May 22, 2024

@cpolish - this should not interfere, the emulated display is unrelated to the HDMI port (the app icon is just for show only :)) as it is purely a software construct (but it is actually used as a placeholder in the app, normally is an outlet of a networked data stream which can be utilized by some kind of display solution on the receiving end - DisplayLink and SideCar would use this).

To me it seems like macOS tries to match the physical display as close to the mirrored display's refresh rate as possible - preferring 60Hz if that is an option. I did some tweaks based on this finding, but I am not sure if this will help with on a high refresh rate display or not as I don't have one. Worth a shot.

Can you guys please try this build?

https://www.dropbox.com/s/z9fu4677dbscb44/BetterDummy.zip?dl=1

The procedure is the following:

  1. First set the display config to unmirrored
  2. Change the refresh rate of your display to the highest setting
  3. Activate mirroring (might need more than one try on Monterey because of the Displays preferences bug).
  4. Is it still 60Hz?

If it is still stuck at 60Hz then I have no additional idea on how to make things better. It might be that virtual displays simply can't go beyond 60Hz (Apple might not have implemented virtual display streaming above 60Hz so it would make no sense to support it as our use case is not really what the creators of CGVirtualDisplay - which is a part of a private framework anyway - at Apple had in mind).

Thanks!

I've tried following your steps with a 144Hz Dell monitor and a M1 MacBook Air, but no dice. I did notice though that in SwitchResX it labels all the dummy resolutions as 240Hz, whereas with the build in the releases it showed 150Hz.

Maybe you're right and virtual displays are limited to 60Hz?

from betterdisplay.

cpolish avatar cpolish commented on May 22, 2024

@cpolish - this should not interfere, the emulated display is unrelated to the HDMI port (the app icon is just for show only :)) as it is purely a software construct (but it is actually used as a placeholder in the app, normally is an outlet of a networked data stream which can be utilized by some kind of display solution on the receiving end - DisplayLink and SideCar would use this).

To me it seems like macOS tries to match the physical display as close to the mirrored display's refresh rate as possible - preferring 60Hz if that is an option. I did some tweaks based on this finding, but I am not sure if this will help with on a high refresh rate display or not as I don't have one. Worth a shot.

Can you guys please try this build?

https://www.dropbox.com/s/z9fu4677dbscb44/BetterDummy.zip?dl=1

The procedure is the following:

1. First set the display config to unmirrored

2. Change the refresh rate of your display to the highest setting

3. Activate mirroring (might need more than one try on Monterey because of the Displays preferences bug).

4. Is it still 60Hz?

If it is still stuck at 60Hz then I have no additional idea on how to make things better. It might be that virtual displays simply can't go beyond 60Hz (Apple might not have implemented virtual display streaming above 60Hz so it would make no sense to support it as our use case is not really what the creators of CGVirtualDisplay - which is a part of a private framework anyway - at Apple had in mind).

Thanks!

Unfortunately, no luck for me: doing the UFO test got me 60 Hz unfortunately :(. It could well be the case that the virtual display framework is limited to 60 Hz. Thank you for your work still :).

from betterdisplay.

waydabber avatar waydabber commented on May 22, 2024

Well, this is a sad outcome. I was able to set lower than 60Hz framerates on my displays so the virtual display does not seem to be fixed at 60Hz but it appears like it can't get beyond 60Hz.

:(

I'll leave this issue open, maybe somebody finds a solution to this. Thanks for the testing and the feedback!

from betterdisplay.

crimue avatar crimue commented on May 22, 2024

Hey, I can sadly confirm that this is also the case with the new MBP (M1 Pro) with the 120hz ProMotion-Display (Displayport, 144hz 3440x1440, UFO-Test --> 60fps). If you want to do some tests feel free to contact me.

I am really disappointed that the device is not capable of displaying sharp text on an external display. Thank you for your awesome work however!

from betterdisplay.

gbaraldi avatar gbaraldi commented on May 22, 2024

One thing I would say, open feedbacks on feedback assistant. I opened one about supporting HiDPI on quadHD monitors which is the underlying issue, but maybe open one about the specific framework you used on swift. Maybe they respond do something, who knows.

from betterdisplay.

waydabber avatar waydabber commented on May 22, 2024

The app utilizes a private Apple framework and the way we use it is actually unsupported (it was meant for something else entirely). So I doubt Apple will fix this issue for us, but might fix the underlying issue about sub-4K displays and HiDPI (even though it did not do it for about a year, despite numerous complaints and feedbacks). But still, we should hope for a fix!

from betterdisplay.

waydabber avatar waydabber commented on May 22, 2024

some more discussion of this here: #30 (closed)

from betterdisplay.

nadenf avatar nadenf commented on May 22, 2024

I would add that many people have reported 4K 144Hz working fine when connected via DP 1.4.

But that when connected via HDMI or even a DP 1.4->HDMI 2.1 adapter it is still limited to 60Hz.

Would be curious how OSX knows that a HDMI monitor is attached.

from betterdisplay.

waydabber avatar waydabber commented on May 22, 2024

Until Apple adds ProMotion support to CGVirtualDisplay (for Sidecar for example), this issue will probably not be fixed. The problem is listed in Known Issues. No reason to keep this issue open. I'll convert this into to a discussion.

from betterdisplay.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.