pop-os / gnome-control-center

Pop!_OS fork of https://git.launchpad.net/~ubuntu-desktop/ubuntu/+source/gnome-control-center
GNU General Public License v2.0
29 stars 10 forks source link

Remove Fractional Scaling from GNOME Displays #89

Closed WatchMkr closed 4 years ago

WatchMkr commented 4 years ago

Currently very broken. Re-add once the feature is ready for release.

defecador commented 4 years ago

It actually works fine now to me. Maybe in the last days one of the many packages updated, it was fixed? I remember seeing this issue in the first Ubuntu 20.04 betas too. Probably it was solved already.

leviport commented 4 years ago

Definitely not fixed on the system I'm looking at.

jonneymendoza commented 4 years ago

HI. when will this be fixed and re-added? i cant even manually enable it like how i did on 19.10??

crawfxrd commented 4 years ago

The change only removed the ability to enable it from the GUI.

You can still enable the experimental feature through gsettings like before.

gsettings set org.gnome.mutter experimental-features "['x11-randr-fractional-scaling']"

(And if you want to report issues about it, they should go upstream to Ubuntu.)


Fractional Scaling Known issues and TODO

hellofaduck commented 4 years ago

After i enable this setting by gsettings set org.gnome.mutter experimental-features "['x11-randr-fractional-scaling']" where i can access to this setting? In standard "Display" section i see 100% and 200% as before... i am try to relogon and reboot, no change ((

brs17 commented 4 years ago

After i enable this setting by gsettings set org.gnome.mutter experimental-features "['x11-randr-fractional-scaling']" where i can access to this setting? In standard "Display" section i see 100% and 200% as before... i am try to relogon and reboot, no change ((

As mentioned above, this feature has been removed from the settings as it currently does not behave very well at all in Pop!_OS 20.04. It will be re-added once it is deemed to be in a better working condition.

jonneymendoza commented 4 years ago

After i enable this setting by gsettings set org.gnome.mutter experimental-features "['x11-randr-fractional-scaling']" where i can access to this setting? In standard "Display" section i see 100% and 200% as before... i am try to relogon and reboot, no change ((

As mentioned above, this feature has been removed from the settings as it currently does not behave very well at all in Pop!_OS 20.04. It will be re-added once it is deemed to be in a better working condition.

Umm no. Two posts up a person said if you enable it via console with the command, it will work, it doesn't.

Its been completely removed

jonneymendoza commented 4 years ago

The change only removed the ability to enable it from the GUI.

You can still enable the experimental feature through gsettings like before.

gsettings set org.gnome.mutter experimental-features "['x11-randr-fractional-scaling']"

(And if you want to report issues about it, they should go upstream to GNOME/mutter.)


Fractional Scaling Known issues and TODO

No you can't

brs17 commented 4 years ago

Alright, then the feature has been removed completely.

dgsantana commented 4 years ago

It isn't fully removed. image Just run the command as posted in some comments above.

chrisbjr commented 4 years ago

I really want to scale my 4k monitor to just 150% so I tried running

gsettings set org.gnome.mutter experimental-features "['x11-randr-fractional-scaling']"

The fractional scaling showed up for me but when I set it to 150%, my display just blacks out and returns to 100%.

I hope support for this feature will be back...

hooksoft commented 4 years ago

@chrisbjr Thanks - this actually worked fine on my ASUS laptop. Old guy here - cannot use it at 100%.

jonneymendoza commented 4 years ago

Has this been fixed yet?

sthetz commented 4 years ago

This makes Pop!_OS completely useless for me, now I will have to switch to another distro.

opus-meum commented 4 years ago

Any update on whether this will be returning?

leviport commented 4 years ago

It'll come back once the bugs are fixed upstream. If you need a workaround, I believe the current best alternative is scaling displays with xrandr.

jakub-bao commented 4 years ago

Hi, this feature just disappeared from my PopOS! system and it sucks :( Can this please be re-added?

jakub-bao commented 4 years ago

Would there be a work-around how to re-enable this manually? Thanks.

jakub-bao commented 4 years ago

FYI, resizing with xrandr doesn't work well. Makes the screen blurry :( The previous method from Display Settings was working just fine.

mmstick commented 4 years ago

The third party patch is currently broken. It can't be re-enabled until the patch is fixed.

chrisbjr commented 4 years ago

It's really sad that I had to switch distros because of this. I found that KDE Neon (still running in 18.04) has 150% scale working perfectly and I don't have any complaints. I love PopOS though and I'd instantly switch if the latest version supports this.

jakub-bao commented 4 years ago

I found a temporary work-around. Yay! I tried so many things including xrander --scale. But that was terrible.

This is what works for me:

  1. Settings > Displays > Scale > (back to 100%)
  2. Settings > Universal Access > Seeing > Large Text > On

Combination of both has almost the same result as me using 125% scaling before. The system is finally usable!

jakub-bao commented 4 years ago

image

jonneymendoza commented 4 years ago

Does that work for setting each monitor at a different text size?

some multi monitor setup like mine uses different resolution and i need a way to set a scale/resolution independably for each monitor

jonneymendoza commented 4 years ago

It's really sad that I had to switch distros because of this. I found that KDE Neon (still running in 18.04) has 150% scale working perfectly and I don't have any complaints. I love PopOS though and I'd instantly switch if the latest version supports this.

May try KDE Neon.

the mind boggles how otehr dtstros got it working but not this.....

mboudreau commented 4 years ago

What the... I just did a dist-upgrade and rebooted my computer to see that fractional scaling isn't working anymore even though I had it working perfectly well between 2 screens at different scalings (my laptop screen has a ridiculous resolution). What gives?

mmstick commented 4 years ago

Latest revision of the xrandr patch has been fixed for 3.36.4, so this will be re-added soon

aaronjensen commented 4 years ago

Use xrandr scale to go ABOVE 1, then 200% scaling to get back down. Don’t use xrandr to scale below 1, that’s why it’s blurry, @jakub-bao

jonneymendoza commented 4 years ago

What commands??

jonneymendoza commented 4 years ago

@aaronjensen?

borisdn commented 4 years ago

Latest revision of the xrandr patch has been fixed for 3.36.4, so this will be re-added soon

Is there any guidance on when that would be done? Is there a link to the related patch to xrandr?

borisdn commented 4 years ago

@aaronjensen? @jonneymendoza when you use xrandr, it is better to push your scaling at 200% and then apply a scale of 1.something in order to avoid the blurry rendering. I tried it and it worked but not as a work around as I still need different scale factor for one of my three monitors. Reference: https://blog.summercat.com/configuring-mixed-dpi-monitors-with-xrandr.html

aaronjensen commented 4 years ago

It depends on what scaling you want. You'll need to do do some math. For example, if you want 150%, you divide 200% by it:

200/150 = 1.3333...

Then, you apply that as xrandr scaling (replace HDMI-0 with your output):

xrandr --output HDMI-0 --scale 1.3333x1.3333

You can find your output by just typing xrandr

Then, if you want this to stay when you reboot, create a file in ~/.config/autostart/xrandr-settings.desktop:

[Desktop Entry]
Type=Application
Version=1.0
Name=xrandr-settings

Exec=xrandr --output HDMI-0 --scale 1.3333x1.3333

Hope that helps.

borisdn commented 4 years ago

It depends on what scaling you want. You'll need to do do some math. For example, if you want 150%, you divide 200% by it:

200/150 = 1.3333...

Then, you apply that as xrandr scaling (replace HDMI-0 with your output):

xrandr --output HDMI-0 --scale 1.3333x1.3333

You can find your output by just typing xrandr

Then, if you want this to stay when you reboot, create a file in ~/.config/autostart/xrandr-settings.desktop:

[Desktop Entry]
Type=Application
Version=1.0
Name=xrandr-settings

Exec=xrandr --output HDMI-0 --scale 1.3333x1.3333

Hope that helps.

These instructions work well when all monitors have the same factor. Without the missing feature, there is still an issue for setup where different monitors require different scale factors.

aaronjensen commented 4 years ago

@borisdn that’s not true at all. Use different scales with different monitors to get exactly what you want. If you have a 2x monitor and a 1x dpi monitor and you want to use 200% scaling, you can run the lower dpi monitor with a 2x scale (2/2 = 1). Scale is a per output setting.

mmstick commented 4 years ago

Yep. This is basically how the HiDPI daemon works. Using xrandr to change scaling factors so LoDPI and HiDPI monitors can coexist with different scales.

borisdn commented 4 years ago

@borisdn that’s not true at all. Use different scales with different monitors to get exactly what you want. If you have a 2x monitor and a 1x dpi monitor and you want to use 200% scaling, you can run the lower dpi monitor with a 2x scale (2/2 = 1). Scale is a per output setting.

@aaronjensen I was referring to the behaviour that I observed in the context of the missing feature. The problem is that without the ability to set different scale through gnome-center due to the removal of the feature discussed on this thread, the xrandr configuration will be overridden, at least that is what happened in my case. I had per output xrandr configuration setting the resolution with a scale factor however, in the calculation between my three monitors, there was an issue with the virtual screen size and the relative position making gnome-center not supporting it without the fractional scaling feature enabled. My scenario is that I have 3x 4k monitors, 2x 27' and 1x 40". Sadly the 40" is in the middle and requires scale of 125% to be usable. Under Ubuntu 20.04 which lets me do the settings without using xrandr I get the following setup: xrandr Screen 0: minimum 320 x 200, current 12144 x 3840, maximum 16384 x 16384 DisplayPort-0 connected primary 6144x3456+2160+0 (normal left inverted right x axis y axis) 878mm x 485mm 3840x2160 60.00*+ 30.00 29.98 24.00 [..] DisplayPort-1 connected 2160x3840+0+0 left (normal left inverted right x axis y axis) 600mm x 340mm 3840x2160 60.00*+ 30.00 [..] DisplayPort-2 connected 3840x2160+8304+0 (normal left inverted right x axis y axis) 600mm x 340mm 3840x2160 60.00*+ 30.00 [..] ` It would be great to have that working outside the box.

aaronjensen commented 4 years ago

@borisdn You'll probably need to disable the hidpi daemon and not make any changes in gnome settings through the UI. You have to use only xrandr to get things set up properly.

I don't know of a scenario that is not possible with xrandr that was possible before fractional scaling was removed, but I could be mistaken on that. In any case, xrandr can be used to individually control screen sizes, scaling and positioning for each of your monitors. Here's my full settings I run on boot for my setup, which is a 5k ultrawide monitor with a 1080p tablet below it and centered:

xrandr --output DP-4 --primary --scale 1.175x1.175 --mode 5120x2160 --panning 6016x2538+0+0/tracking:6016x2538+0+0/border:0/0/0/0 \
  --output HDMI-0 --scale 2x2 --mode 1920x1080 --pos 1088x2538

The panning settings are probably not necessary, I think that setting --fb is the important part if changing xrandr settings from one thing to another to avoid introducing panning inadvertently.

Be sure to set your scaling to 200% before hand either through the UI or gnome settings

borisdn commented 4 years ago

Be sure to set your scaling to 200% before hand either through the UI or gnome settings

@aaronjensen that is the step that got me stuck. Gnome settings would not like the change and my settings with xrandr would not match a valid enough setup for gnome-center to not clear everything. I could try again with the settings I got from Ubuntu and see how far I can go however I need to be able to use my system and did not have enough time to try it out.

davidsmoot commented 4 years ago

There is a launchpad thread talking about this issue with some potential workarounds at https://bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/1870736?

Coincidentally, Nvidia-450 driver appeared in my updates today. Have no idea if it fixes anything or not.

I've read the thread and I am still confused about one thing... Can I somehow modify the settings dialog to let me try fractional scaling? I'm just curious if the workarounds in that other thread or the latest driver might fix this issue but I can't even try with the buttons removed in control center.

jonneymendoza commented 4 years ago

When will this be resolved? Why does other distro's managed to have this working?

leviport commented 4 years ago

When will this be resolved?

Soon: https://github.com/pop-os/gnome-control-center/pull/110

note99915 commented 3 years ago

Look, there are two different results between fractional scaling on and off try to input this command capture from above xrandr --output HDMI-0 --scale 1.3333x1.3333

When I do put whit Fractional Scaling on xrandr --output HDMI-0 --scale 0.85x0.85

It become a big tablet view on my 32inch monitor.

You can try layer it with different command like

xrandr --output HDMI-0 --scale 0.85x0.85 xrandr --output HDMI-0 --scale 1.3333x1.3333 xrandr --output HDMI-0 --scale 1.28x1.28

Even can try like xrandr --output HDMI-0 --scale 1.8x1.95 to pull it a bit tall vision.

To find your best one you tend to change.

If any unhappy result, and don't know how to go back??

Wait, no need to reboot or log out, Just go to setting-> display 100% or 125% or any to have a swap through system.

To try out all the variance, please be patient and be chill Hope you can find your favourite one

yunghoy commented 3 years ago

I'm pretty sure this can be a good example why code quality of open source cannot be better than commercial programs. Someone can refer this example on their books.

My display setting is with 4k and 1.5 fractional scaling.

As of 08/29/2021, I found "full screen" mode game picks 6144 x 3456 resolution. Basically, this resolution cannot be lower than 6k. Since the game picks 6k resolution, it's extremely hard to play my game with RTX 2070. I remember that this bug was from 2018 (Ubuntu 18.04)

mmstick commented 3 years ago

@yunghoy This issue was closed more than a year ago, and you also didn't clearly state what your issue is.

lorrin commented 3 years ago

I believe @yunghoy 's issue is that the full-screen game is running in a resolution equal to native resolution * fractional scale, resulting in a goofy 6K resolution. I assume the desired behavior is that the game should run at native 4K resolution or 4K / fractional scale. Sounds like a bug, but doesn't sound related to this issue.

mmstick commented 3 years ago

That is the nature of how scaling works with X11. A scale of 150% gives the desktop a X11 frame buffer that is 1.5x the display resolution. A game could get the native resolution and upscale that to the buffer, rather than trying to render at the X11 resolution.

It may be better for this person to use DPI/text scaling rather than screen resolution scaling.

gsettings set org.gnome.desktop.interface scaling-factor 1
gsettings set org.gnome.desktop.interface text-scaling-factor 1.5

With a script on startup to invoke

xrandr --dpi 144

And this file at ~/.Xresources

Xft.dpi: 144
Xft.hinting: 1
Xft.hintstyle: hintslight
Xft.antialias: 1
Xft.rgba: none
Xcursor.size: 48
Xcursor.theme: Adwaita

But keep in mind that you're much better off buying displays that don't require fractional scaling, because fractional scaling is always going to look off when compressing virtual half pixels into physical whole pixels.

yunghoy commented 3 years ago

"But keep in mind that you're much better off buying displays that don't require fractional scaling, because fractional scaling is always going to look off when compressing virtual half pixels into physical whole pixels."

So do you mean I have to throw out my 4k monitor and buy back a 1k monitor not to use fractional scaling? These people use fractional scaling because UIs are way too small with 4k monitors. I know I should've not written this bug buy it seems like your reasoning is wrong.

On Mon, Aug 30, 2021, 04:02 Michael Murphy @.***> wrote:

That is the nature of how scaling works with X11. A scale of 150% gives the desktop a X11 frame buffer that is 1.5x the display resolution. A game could get the native resolution and upscale that to the buffer, rather than trying to render at the X11 resolution.

It may be better for this person to use DPI/text scaling rather than screen resolution scaling.

gsettings set org.gnome.desktop.interface scaling-factor 1 gsettings set org.gnome.desktop.interface text-scaling-factor 1.5

With a script on startup to invoke

xrandr --dpi 144

And this file at ~/.Xresources

Xft.dpi: 144 Xft.hinting: 1 Xft.hintstyle: hintslight Xft.antialias: 1 Xft.rgba: none Xcursor.size: 48 Xcursor.theme: Adwaita

But keep in mind that you're much better off buying displays that don't require fractional scaling, because fractional scaling is always going to look off when compressing virtual half pixels into physical whole pixels.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/pop-os/gnome-control-center/issues/89#issuecomment-908246781, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACTBWEQH37BOI4D35ZAVUBDT7NQHDANCNFSM4MQIQEDA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.