Bug 509628 - [Feature request] Support for 4:3/5:4 desktop resolutions at full refresh rate via viewport scaling (similar to Windows "desktop mode vs signal mode")
Summary: [Feature request] Support for 4:3/5:4 desktop resolutions at full refresh rat...
Status: CONFIRMED
Alias: None
Product: kwin
Classification: Plasma
Component: general (other bugs)
Version First Reported In: 6.4.5
Platform: NixOS Linux
: NOR wishlist
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-09-18 07:25 UTC by 一穗灯花
Modified: 2025-09-22 17:07 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments
Screenshot from Windows 11 display settings: "Desktop mode: 1400×1050@240Hz, Active signal mode: 1920×1080@240Hz" (20.90 KB, image/jpeg)
2025-09-18 07:25 UTC, 一穗灯花
Details
Example: GNOME X11 session with nvidia-settings viewport scaling (65.54 KB, image/jpeg)
2025-09-18 12:14 UTC, 一穗灯花
Details

Note You need to log in before you can comment on or make changes to this bug.
Description 一穗灯花 2025-09-18 07:25:05 UTC
Created attachment 185037 [details]
Screenshot from Windows 11 display settings: "Desktop mode: 1400×1050@240Hz, Active signal mode: 1920×1080@240Hz"

SUMMARY

I would like to request a feature in KWin Wayland sessions: the ability to run applications at **non-native desktop resolutions**  (e.g. 1400×1050, 1280×1024) while keeping the **monitor’s physical mode at 1920×1080@240Hz.**

STEPS TO REPRODUCE
1. 
2. 
3. 

OBSERVED RESULT

* I have a 240 Hz display. Some classic/competitive games (e.g. Counter-Strike 1.5, Ballance) only work correctly at 4:3 or 5:4 resolutions.

* On Windows I can select:

    Desktop mode: 1400x1050 @ 240Hz  
    Active signal mode: 1920x1080 @ 240Hz  

Windows handles the scaling automatically.

* On Linux X11, I can replicate this using `nvidia-settings` and `metamodes` (ViewPortIn, ViewPortOut).

* On Wayland with KWin, there is currently no way to do this. Forcing EDID timings is unreliable and can cause display issues.

EXPECTED RESULT

* Allow setting a logical desktop resolution independent from the physical mode.

* GPU scales or letterboxes the logical resolution into the panel’s active signal mode.

* Provide scaling options in the settings:

  * Preserve aspect ratio (pillarbox/letterbox)

  * Stretch to full screen

  * Integer scaling (where possible).



SOFTWARE/OS VERSIONS
Operating System: NixOS 25.11
KDE Plasma Version: 6.4.5
KDE Frameworks Version: 6.18.0
Qt Version: 6.9.2
Kernel Version: 6.16.7 (64-bit)
Graphics Platform: Wayland
Processors: 20 × 12th Gen Intel® Core™ i7-12700H
Memory: 24 GiB of RAM (23.3 GiB usable)
Graphics Processor: NVIDIA GeForce RTX 3060 Laptop GPU

ADDITIONAL INFORMATION

Existing X11 mechanism: nvidia-settings metamodes

`$ nvidia-settings -a CurrentMetaMode="DP-1: 1920x1080_240 +0+0 {ViewPortIn=1400x1050, ViewPortOut=1920x1080+0+0, Panning=1400x1050}"`

WHY THIS MATTERS

* Without this feature, many older or competitive games cannot be played properly once X11 support is removed.

* Gamers often rely on 4:3 stretched or black-bar modes for both compatibility and personal preference.

* Windows users expect this feature to exist; lack of it makes Linux less viable for gaming.
Comment 1 David Edmundson 2025-09-18 08:32:30 UTC
> the ability to run applications at **non-native desktop resolutions** 

This already exists for full screen windows. If the resolution provided by the app doesn't match we change the modeset automatically. We don't need any user selection, just choose the right res in CS and it'll do the right thing.

For anything more advanced wrap the application in gamescope
Comment 2 一穗灯花 2025-09-18 11:03:02 UTC
(In reply to David Edmundson from comment #1)
> > the ability to run applications at **non-native desktop resolutions** 
> 
> This already exists for full screen windows. If the resolution provided by
> the app doesn't match we change the modeset automatically. We don't need any
> user selection, just choose the right res in CS and it'll do the right thing.
> 
> For anything more advanced wrap the application in gamescope

Thank you for your explanation. I understand that for modern games like CS2, KWin can automatically switch modesets to match the application resolution. 

However, older games such as CS1.6 or CS: Source do not trigger this behavior maybe because they do not request a matching modeset in the same way.

... The goal is to allow users to run legacy games at non-native 4:3/5:4 resolutions while maintaining high refresh rates (e.g., 240Hz) on Wayland sessions. This is similar to Windows' "desktop mode vs active signal mode" approach. A user-controllable logical viewport or scaled desktop resolution could address these use cases, providing full compatibility for both modern and legacy applications without relying on Gamescope.

Anyway, Thank you for considering this scenario. I understand it’s a niche case, but it is important for maintaining compatibility with legacy games on high-refresh-rate displays.


( PS. Using Gamescope as a workaround is possible, but on NVIDIA hardware it brings worse performance and currently does not support the Wayland backend fully, which limits usability for competitive gaming scenarios. )
Comment 3 一穗灯花 2025-09-18 12:14:08 UTC
Created attachment 185044 [details]
Example: GNOME X11 session with nvidia-settings viewport scaling

Expected behavior
Similar to Windows "desktop mode vs signal mode" or GNOME X11 with `nvidia-settings` viewport scaling.
See attached screenshot: this is GNOME X11, where a 1400×1050 logical viewport is scaled to a 1920×1080 signal. The NixOS circular logo is stretched into an ellipse — this is the intended behavior.
Comment 4 TraceyC 2025-09-22 17:07:30 UTC
Sending this along for consideration