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

Vision Pro Ultrawide - auto detect proportions #3574

Open
dmkpoznan opened this issue Nov 4, 2024 · 9 comments
Open

Vision Pro Ultrawide - auto detect proportions #3574

dmkpoznan opened this issue Nov 4, 2024 · 9 comments
Labels
enhancement New feature or request

Comments

@dmkpoznan
Copy link

Hi,

as today Ultrawide on Vision Pro finally landed I would love to prepare different resolution & proportions presets for different settings of ultrawide. Long story short: in ultrawide mode you can select 3 different proportions (starting from regular 4K - normal, wide, up to 2x4K - ultrawide). But it's identified as same monitor, so you can have only one virtual screen that automatically connects only with one set of proportions (as far as I know we can't decide which of virtual screens will connect based on screen proportions?).

I would love this feature!

@waydabber
Copy link
Owner

waydabber commented Nov 5, 2024

I don't have a Vision Pro - how can you switch these resolutions normally? Using System Settings/Displays?

Can you run this command in Terminal and let me know the results when in each mode?

/Applications/BetterDisplay.app/Contents/MacOS/BetterDisplay get -n=vision -displayModeList

@waydabber
Copy link
Owner

Let me know @dmkpoznan if you can help by running that command. But based on reports I believe the various resolutions should simply be available as Display Modes. So you can go to the Display Mode menu, click Filter/Show All and add any of the resolutions/aspect ratios you prefer as favorites.

@dmkpoznan
Copy link
Author

I will. I'm planning describing how it works in details.

@waydabber
Copy link
Owner

waydabber commented Nov 6, 2024

I've seen some videos on it (how you can switch using the Vision Pro). But as I saw in some screenshots, the various aspect ratios are also available at the Mac side in System Settings/Displays. But now as I rechecked the screenshots, this might not be the case.

I also misunderstood the original request - I see that you'd like to have BetterDisplay use the reported native aspect ratio as a kind of an additional display identifier. I can add this as an option.

@waydabber waydabber added enhancement New feature or request and removed awaiting response from issue reporter Needs further info labels Nov 6, 2024
@dmkpoznan
Copy link
Author

dmkpoznan commented Nov 8, 2024

Ok. Let me explain. On AVP there is new mode called "ultrawide". It allows you to switch between three different options of resolutions with different proportions - from regular 4K resolution up to 2x4K resolution. You can select it when you are already connected and switch it dynamically (without reconnecting). Here is menu:

Zrzut ekranu 2024-11-8 o 21 13 30

What's changing? Aspect ratio of screen. I used to use mirroring of virtual screen to keep resolution on HiDPI (doubling pixel density from 4K to 8K).

What I want to do? I would like to dynamically switch proportion of virtual screen that is mirrored to AVP screen to keep aspect ratio same as main screen.

Maybe there is better way of implementing that, but for now, when I change mode from ultrawide to normal (for example) everything is stretched / compressed, so it's useless. For now I need three different virtual screens, disabled autoconnect and reconnect AVP each time I want to change mode, then connect right virtual screen.

Is this clear enough for you? Should I record you some video?

Ultrawide:

0 - 800x600 HiDPI 60Hz 8bpc 
1 - 1280x960 60Hz 8bpc 
2 - 1344x1008 60Hz 8bpc 
3 - 1600x1200 60Hz 8bpc 
4 - 1920x540 60Hz 8bpc 
5 - 3840x1080 HiDPI 60Hz 8bpc 
6 - 3840x1080 60Hz 8bpc 
7 - 5120x1440 HiDPI 60Hz 8bpc Current Default Native 
8 - 5120x1440 60Hz 8bpc 
9 - 7680x2160 60Hz 8bpc 
10 - 10240x2880 60Hz 8bpc Native 
11 - 640x480 HiDPI 60Hz 8bpc Unsafe
12 - 672x504 HiDPI 60Hz 8bpc Unsafe
13 - 1920x540 HiDPI 60Hz 8bpc Unsafe
14 - 2560x720 HiDPI 60Hz 8bpc Unsafe

Wide:

0 - 800x600 HiDPI 60Hz 8bpc 
1 - 1024x768 60Hz 8bpc 
2 - 1280x548 60Hz 8bpc 
3 - 1280x960 60Hz 8bpc 
4 - 1344x576 60Hz 8bpc 
5 - 1344x1008 60Hz 8bpc 
6 - 1600x686 60Hz 8bpc 
7 - 1600x1200 60Hz 8bpc 
8 - 1920x822 60Hz 8bpc 
9 - 2520x1080 HiDPI 60Hz 8bpc 
10 - 2520x1080 60Hz 8bpc 
11 - 3360x1440 HiDPI 60Hz 8bpc Current Default Native 
12 - 3360x1440 60Hz 8bpc 
13 - 5040x2160 60Hz 8bpc 
14 - 6720x2880 60Hz 8bpc Native 
15 - 512x384 HiDPI 60Hz 8bpc Unsafe
16 - 640x480 HiDPI 60Hz 8bpc Unsafe
17 - 672x504 HiDPI 60Hz 8bpc Unsafe
18 - 800x343 HiDPI 60Hz 8bpc Unsafe
19 - 960x411 HiDPI 60Hz 8bpc Unsafe
20 - 1260x540 HiDPI 60Hz 8bpc Unsafe
21 - 1680x720 HiDPI 60Hz 8bpc Unsafe

Normal:

0 - 800x600 HiDPI 60Hz 8bpc 
1 - 800x600 60Hz 8bpc 
2 - 960x540 HiDPI 60Hz 8bpc 
3 - 1024x576 60Hz 8bpc 
4 - 1024x768 60Hz 8bpc 
5 - 1280x720 60Hz 8bpc 
6 - 1280x960 60Hz 8bpc 
7 - 1344x756 60Hz 8bpc 
8 - 1344x1008 60Hz 8bpc 
9 - 1600x900 60Hz 8bpc 
10 - 1600x1200 60Hz 8bpc 
11 - 1920x1080 HiDPI 60Hz 8bpc 
12 - 1920x1080 60Hz 8bpc 
13 - 2560x1440 HiDPI 60Hz 8bpc Current Default Native 
14 - 2560x1440 60Hz 8bpc 
15 - 3840x2160 60Hz 8bpc 
16 - 5120x2880 60Hz 8bpc Native 
17 - 400x300 HiDPI 60Hz 8bpc Unsafe
18 - 512x384 HiDPI 60Hz 8bpc Unsafe
19 - 640x360 HiDPI 60Hz 8bpc Unsafe
20 - 640x480 HiDPI 60Hz 8bpc Unsafe
21 - 640x480 60Hz 8bpc Unsafe
22 - 672x378 HiDPI 60Hz 8bpc Unsafe
23 - 672x504 HiDPI 60Hz 8bpc Unsafe
24 - 800x450 HiDPI 60Hz 8bpc Unsafe
25 - 960x540 HiDPI 60Hz 8bpc Unsafe
26 - 1280x720 HiDPI 60Hz 8bpc Unsafe
27 - 1920x1080 60Hz 8bpc Unsafe

@waydabber
Copy link
Owner

I see. With native aspect ratio added as an optional identifier the variants will be detected as separate displays in the app - so you can create and associate separate virtual screens for them.

But - the default modes are already HiDPI. Why do you need the additional virtual screen? You need different resolutions?

@dmkpoznan
Copy link
Author

Normally you have only few resolutions available - like 5120x1440 HiDPI or 7680x2160. You can say that second resolution is 2x4K and should be enough. But I have double resolution (HiDPI) on all screens like Studio Display, where resolution is 8K. This is really useful when you use fullscreen zoom a lot or do some screenshots. Same situation on AVP - I'm rendering 2x4Kx2, so massive screen, but thanks to M1 Max CPU everything is running smoothly.

So basically what I'm missing is resolution like 7680x2160 HiDPI for ultrawide, 5040x2160 HiDPI for wide and 4K HiDPI for normal. And I love elastic resolution scalling that is available for physical displays... I'm using it as often as brightness control.

@dmkpoznan
Copy link
Author

This is how it's looks like.

ScreenRecording_11-08-2024.21-30-24_2.mov

@dmkpoznan
Copy link
Author

Small update: I was playing with native resolutions available "as is" without creating virtual display and I found, that changing between normal/wide/ultrawide mode cause to forgot last resolution for each mode. It could also be related with dynamic change of screen propotions..?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants