Skip to content

X11 per-monitor fractional scaling: scale-ui-down breaks unscaled monitors (legacy-ui-scaling-factor=2), scale-up is blurry #13774

@wintrover

Description

@wintrover

Environment

  • OS: Linux Mint 22 (Ubuntu 24.04 base)
  • Cinnamon: 6.6.7
  • Muffin: X11 session, x11-randr-fractional-scaling + scale-monitor-framebuffer enabled
  • GPU: AMD Radeon iGPU (renoir) driving eDP 144Hz display + NVIDIA RTX 3060 (render offload)
  • Display layout: 3 monitors vertical stack
    • DP-1-0 (external Dell U2311H, 1920x1080@60, USB-C DP alt mode) — top
    • HDMI-A-0 (external Dell U2311H, 1920x1080@60) — middle
    • eDP (built-in laptop, 1920x1080@144) — bottom, primary

What I tried

Set only the built-in eDP to 125% fractional scale, keeping externals at 100%.

Problem 1: scale-ui-down — side effects on unscaled monitors

  • fractional-scale-mode = 'scale-ui-down'
  • This sets legacy-ui-scaling-factor = ceil(max_scale) = 2 globally
  • All monitors get a 2x framebuffer (3840x2160)
  • Result: External monitors at scale=1.0 show massively blown-up UI in non-GTK apps (Qt, Electron, Java) that don't properly handle the xrandr transform
  • Also: eDP @ 144Hz struggles to render at 2x framebuffer (3072x1728) on AMD iGPU, causing stutter

Problem 2: scale-up — blurry output

  • fractional-scale-mode = 'scale-up'
  • eDP framebuffer = 1536x864 → upscaled to 1920x1080
  • Result: Noticeably blurry text/UI at only 125% scaling (1.25x upscale ratio). No side effects on external monitors, and performance is fine.

Root cause

When only one monitor in a multi-monitor setup needs fractional scaling, both modes have unavoidable downsides:

  • scale-ui-down: global ceil(max_scale) forces 2x framebuffer on ALL monitors
  • scale-up: upscaling from lower resolution produces blur

There's no mode that applies fractional scaling to only the targeted monitor while leaving others at native resolution + native framebuffer size.

Expected behavior

Ability to set per-monitor fractional scaling where unscaled monitors retain native framebuffer size and legacy-ui-scaling-factor = 1.

Workaround

Accept integer-only scaling (100% or 200%) on this hardware, or use Cinnamon Wayland (not tested — user needs X11 for remote desktop).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions