Repository navigation
MetalFX: a 1.5x upscaling option - #754
Merged
Merged
Conversation
added 6 commits
November 1, 2026 15:10
Besides 1.75x and 2x, MetalFX can upscale by 1.5x: a game renders at two thirds of the display's size in each direction (1280x720 on a 1920x1080 display) and MetalFX upscales it to the display. The backend accepts and keeps 1.5 (metalfx.c, and as d3d11.metalSpatialUpscaleFactor in mullion.conf), and the MetalFX choices in the game settings, Sharp and the process manager offer 1.5x first; the preview's default stays 2x.
GitHub retires its macOS 14 runner images on November 2, 2026, and the C/C++/Obj-C and Metal jobs failed before starting during a scheduled brownout. Those jobs, the main CI's and the MonoKickstart build move to macos-15; nothing in them depends on macOS 14.
The fex build's VKD3D-Proton lane reads MetalFX from its own files: runtime/wine/etc/vkd3d.conf (VKD3D_CONFIG_FILE, Direct3D 12) and dxvk.conf (DXVK_CONFIG_FILE, Direct3D 11 and earlier, and DXGI). MetalSharp writes the same d3d11.metalSpatialUpscale lines there as in mullion.conf and keeps them in sync, and points the lane's games at them. A factor line a file lacks goes at its top, where it applies to every program, not inside the last [program.exe] section.
MetalFX: vkd3d.conf and dxvk.conf for the VKD3D-Proton and DXVK lanes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a 1.5x MetalFX option next to 1.75x and 2x. At 1.5x a game renders at two thirds of the display's size in each direction, for example 1280x720 on a 1920x1080 display, and MetalFX upscales it to the display. That keeps more detail than 1.75x or 2x, at a smaller performance gain.
Changes
metalfx.c): 1.5 is now a valid factor in all three checks: the saved state,/metalfx/toggle, andd3d11.metalSpatialUpscaleFactorread back frommullion.conf.ui.rs,ui_live.rs), Sharp (sharp_live.rs,sharp_preview.rs) and the process manager (process_manager.rs).sharp_live.rsmaps the choices by index, so 2x and Off moved from 1 and 2 to 2 and 3.How it works with MetalSharp Wine
MetalSharp Wine 0103 shows a game with MetalFX on the display divided by the factor, so it renders at the smaller size. Mullion then upscales to the display's resolution. Neither needs a change for a new factor: 1.5x on a 1920x1080 display gives exactly 1280x720.
Tests
make testandmake VARIANT=fex testpass.smoke.shnow turns MetalFX on at 1.5x and checks that the state andmullion.confboth say 1.5.cargo checkpasses forapp-gpui.