Skip to content

config: use linear upscaling except on classic guests - #7845

Merged
osy merged 1 commit into
mainfrom
display-upscaling-default-linear
Sep 2, 2026
Merged

config: use linear upscaling except on classic guests#7845
osy merged 1 commit into
mainfrom
display-upscaling-default-linear

Conversation

@osy

@osy osy commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

The nearest-neighbour upscaling default (#3371, ba5f7f7, shipped in v3.0.1) was chosen for low-resolution guests, where linear washes out already-chunky text. It is the wrong choice everywhere else: a modern guest rarely upscales by an integer ratio, so nearest duplicates source pixels unevenly and the result looks blocky rather than sharp.

This defaults upscalingFilter to linear, and has the VM wizard select nearest for the guests the original change was about: Classic Mac OS, Windows 7 and below, and any OS configured for legacy hardware. Legacy hardware is checked on its own rather than folded into the Windows case so that choosing a legacy machine opts in under any OS, and because the summary page can enable it after the Windows page has already latched isWindows10OrHigher.

Existing VMs are unaffected: upscalingFilter is a required coding key, so a saved configuration always carries its own value. The UTM 2.x migration path is likewise unchanged, since an absent displayUpscaler already defaulted to linear.

Testing: Tested by a human on macOS 15.6 (24G84), Mac16,11 — Apple M4 Pro. The author acknowledges that this change has been tested and/or reviewed by a human in accordance with UTM's AI contribution guidelines.

The nearest-neighbour default (ba5f7f7, #3371) was chosen for
low-resolution guests, where linear washes out already-chunky text. It is
the wrong choice everywhere else: a modern guest rarely upscales by an
integer ratio, so nearest duplicates source pixels unevenly and looks
blocky rather than sharp -- the complaint behind #6209 and #6572.

Default to linear and let the wizard select nearest for the guests the
original change was about: Classic Mac OS, Windows 7 and below, and any OS
configured for legacy hardware. Legacy hardware is checked on its own
rather than folded into the Windows case so that choosing a legacy machine
opts in under any OS, and because the summary page can enable it after the
Windows page has already latched isWindows10OrHigher.

Existing VMs are unaffected: upscalingFilter is a required coding key, so
a saved configuration always carries its own value. The UTM 2.x migration
path is likewise unchanged, since an absent displayUpscaler already
defaulted to linear.

Assisted-by: Claude:claude-opus-5
@osy osy added this to the v5.0 milestone Sep 1, 2026
@osy
osy merged commit 37712f8 into main Sep 2, 2026
54 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant