AMD FSR 4.1.1 upscaling running natively on Apple Silicon (Metal). Works as a standalone tool and inside games via CrossOver (DLSS → FSR 4).
Русская инструкция: docs/GUIDE.md
- Mac with Apple Silicon (fastest on M5; M1–M4 use the
simdhalf-matrix backend, not benchmarked on those chips yet, see hardware) - macOS 26+, Xcode 26+ with Metal Toolchain, Python 3
- For games: CrossOver 24+ and Rosetta 2
- Download FSR4-Installer-v1.8.dmg from the latest release and drag FSR4 Installer to Applications.
- First launch: the app is not notarized, so macOS blocks it. Open
System Settings → Privacy & Security and press Open Anyway
(or run
xattr -dr com.apple.quarantine "/Applications/FSR4 Installer.app"). - The app checks Xcode, the Metal Toolchain, Rosetta and CrossOver, and offers a button for anything missing. CrossOver is found in /Applications or ~/Applications under any name; if it is elsewhere, press Choose….
- Quit the game and its bottle, pick the bottle, choose a mode and press Install. It takes about a minute. Then start the game and turn on DLSS.
The app keeps its files in ~/Library/Application Support/fsr4-native-macos
and never modifies CrossOver.app. Remove… puts the bottle back on
CrossOver's own D3DMetal. Step-by-step guide:
docs/GUIDE.md (Russian),
tools/crossover/INSTALL.md (English).
xcodebuild -downloadComponent MetalToolchain
make -B
python3 tools/crossover/crossover_fsr4.py install --panel --profile lossyClose the game and its bottle first. Then launch the game and turn on DLSS. The FSR 4 panel lets you switch modes on the fly:
| Panel mode | What it is | Speed on M5* |
|---|---|---|
| FSR 4.1 Lite | Fastest, tiny quality trade-offs (default) | ~3.0 ms |
| FSR 4.1 Lite 2 | Lite with six trained layers; shown after make lossy2-weights |
~3.0 ms |
| FSR 4.1 | Full quality, fast math | ~4.3 ms |
* 864×560 → 1712×1112 per frame.
Undo the bottle change:
python3 tools/crossover/crossover_fsr4.py restore --bottle "/path/to/cxbottle.conf"More: CrossOver details.
tools/bin/gen_testcase testcases/quality411 quality 1280 720 1920 1080 8
tools/bin/fsr4mac testcases/quality411 out/lossy --profile lossy
tools/bin/fsr4mac testcases/quality411 out/bench --profile lossy --bench 10Output: PNG previews, RGBA16F .bin files and run.json.
Profiles: lossy (default), lossy2 (Lite with six trained layers, see
docs/FSR411_LOSSY2.md), exact-fast, exact
(bit-exact reference). make lossy2-weights fetches the pinned trained weights
once into build/; they are not distributed with this MIT repository.
make test # includes the installer app tests
make build-fsr411-tests
make test-fsr411-gpuBuild the installer app and DMG: make installer INSTALLER_VERSION=v1.8
(or python3 tools/installer/build_app.py v1.8 --dmg).
| Topic | Link |
|---|---|
| Performance and validation | docs/FSR411_PERFORMANCE.md |
| Lite image quality update | docs/FSR411_QUALITY_UPDATE.md |
| Lite 2 (trained layers) | docs/FSR411_LOSSY2.md |
| Memory optimization and timing limits | docs/FSR411_MEMORY_OPTIMIZATION.md |
| Benchmark method | BENCHMARK.md |
| Input format | docs/FSR411_INPUT_CONTRACT.md |
| GPU profiling | docs/FSR411_PROFILING.md |
| Current status and limits | docs/STATE.md |
| Model sources | third_party/fsr411/README.md |
| Old FSR 4.0.2 model | architecture, guide |
The Lossy network keeps the numerical policy of the
RX 7000 optimization project
(release dll-2026-10-07), implemented independently on MIT sources. Selected
temporal fixes from releases through dll-2026-10-14 retain more thin detail
and update effects without motion vectors. A separate PRE for reused frames
removes unused network-input work; see the quality update for measurements.


