How do I always use the GPU to upscale smaller desktop resolutions rather than having my monitor do the upscaling?

While testing XWayland via Manjaro 21.2.6 GNOME I noticed that, by default, it only sometimes uses my GPU to upscale smaller desktop resolutions rather than always doing so - for example, 1280x800 will use aspect-preserved GPU scaling but 1280x960 will use monitor scaling.

The issue is that I have a monitor that has no built-in aspect ratio settings meaning that, if resolution upscaling isn’t performed on the GPU, then the resulting image will always be stretched across the entire screen… which is not ideal for legacy 4:3 resolutions like 1024x768 or the like.

So yeah, how do I make XWayland always use my GPU for upscaling? For reference I’m using the integrated graphics on a Ryzen 4800U in a sort of NUC-like device.

If you’re confused what I mean by using the GPU to upscale, I mean the XWayland equivalent of this X11 xrandr argument:

--set "scaling mode" "Full aspect"

…such as when used in the following command:

xrandr --output DisplayPort-1 --mode 1024x768 --set "scaling mode" "Full aspect"

For reference, the main reason I’m not just using X11 instead (which is the default for my usual choice of XFCE) is because I’m actually trying to verify whether a certain bug that occurs in X11 with the handling of non-60Hz refresh rates + “scaling mode” also occurs on XWayland or not (the jist being that using the xrandr’s --set “scaling mode” seems to lock you to 60Hz on at least my Ryzen 4800U’s iGPU regardless of what refresh rate the OS claims to be running at).

Since there is no xrandr for wayland, maybe try this python script: · master · Oschowa / gnome-randr · GitLab

A post was split to a new topic: Distros pushing Wayland instead of X11?