MSPR / MULTISAMPLE PHASE RECONSTRUCTION
Recover the samples
resolve throws away.
A 2x spatial upscaler for Apple GPUs that reconstructs the four color samples already produced by 4x MSAA—before a conventional resolve averages them into one pixel.
- 01Deterministicsingle-frame output
- 02Tile-localbuilt for Apple GPUs
- 03Model-freezero weights or history
2× width + 2× height = 4× output pixels, over the same view.
Quality and full-path GPU time use the same nine-scene iPhone 13 matrix.
Quality × GPU cost
Higher quality.
Small frame cost.
In one nine-scene iPhone 13 matrix, MSPR-Quality gains 1.021 dB over Bilinear for 1.067 ms of added full-path GPU time; MSPR-Lite gains 0.785 dB for 0.629 ms.
| Method | Mean RGB PSNR ↑ | 9-scene full-path GPU mean ↓ | Added full-path time vs Bilinear ↓ |
|---|---|---|---|
| MSPR-QualityBest mean quality | Mean RGB PSNR ↑30.301 dB | 9-scene full-path GPU mean ↓3.656 ms | Added full-path time vs Bilinear ↓+1.067 ms |
| MSPR-LiteSecond in quality · small added time | Mean RGB PSNR ↑30.065 dB | 9-scene full-path GPU mean ↓3.218 ms | Added full-path time vs Bilinear ↓+0.629 ms |
| MetalFX SpatialApple spatial upscaler | Mean RGB PSNR ↑29.410 dB | 9-scene full-path GPU mean ↓7.606 ms | Added full-path time vs Bilinear ↓+5.017 ms |
| Bilinear 2×Simple spatial baseline | Mean RGB PSNR ↑29.280 dB | 9-scene full-path GPU mean ↓2.589 ms | Added full-path time vs Bilinear ↓0 ms · reference |
| FSR1 EASU + RCASIn-project FSR1 pipeline | Mean RGB PSNR ↑27.367 dB | 9-scene full-path GPU mean ↓8.575 ms | Added full-path time vs Bilinear ↓+5.986 ms |
Scope: PSNR and performance use the same archived nine-scene iPhone 13 matrix. GPU values are arithmetic scene means of full command-buffer duration after 20 warm-up and 120 measured frames per mode. Added time subtracts Bilinear's 2.589 ms mean; it is a full-path comparison, not isolated kernel timing. Two Apple-demo-dependent rows are historical and not reproducible from this package.
Two operating points
One algorithm.
Two practical profiles.
Both paths consume pre-resolve MSAA evidence. Choose the neighborhood-aware Quality path or the fixed six-tap Lite path.
MSPR-Quality
A 3×3 resolved neighborhood, fixed phase coefficients, bounded detail, and content-adaptive blending for the strongest reconstruction.
- Archived mean
- 30.301 dB
- 100-frame set
- 32.934 dB
- Added full-path time vs Bilinear
- +1.067 ms*
MSPR-Lite
A fixed six-tap, barrier-free path using four samples plus two horizontal resolved taps. No threadgroup staging.
- Archived mean
- 30.065 dB
- Quality delta
- −0.237 dB
- Added full-path time vs Bilinear
- +0.629 ms*
Metal rendering contract
Keep phase evidence on-chip.
MSPR runs before conventional resolve, keeps working data in tile memory, and persists only the final 2× image.
Measured evidence
A clear gain in the documented matrix.
Archived physical-device results use same-frame Direct 2× references. The broader 100-frame set is secondary, project-built evidence.
Rendered-scene result
One scene. Six rendering paths.
A fixed frame from the 100-frame rendering set, shown at the same output size. Open it to inspect the full comparison.
Run the demo
From clone to pixels.
The repository includes four shared schemes for Quality and Lite on iOS and macOS. A physical Apple GPU is required for the imageblock path and performance conclusions.
- 01
Open
Demo/NeuralUpsampling.xcodeprojin Xcode 16 or newer. - 02
Select an MSPR-Quality or MSPR-Lite shared scheme.
- 03
For an iPhone, select your Development Team and use a bundle identifier you control.
- 04
Build and run. Use
NSS_RENDER_MODEto switch comparison paths.
git clone https://github.com/long-0228/mspr2x.git
cd mspr2x
open Demo/NeuralUpsampling.xcodeproj
Reports and boundaries
The evidence is part of the release.
Read the full method, measurements, limitations, and provenance in English or Chinese.
The archived temple and fullscreen_image rows used assets from Apple's downloadable order-independent-transparency demo for testing only. Those assets are omitted because this project does not grant redistribution rights. Current source reproduction covers seven project-authored procedural scenes.
* Difference between nine-scene full-path GPU means on the archived iPhone 13 matrix. This is not isolated kernel timing; see the technical report for the complete contract.