r/jailbreak • u/No-Connection6436 • 2h ago
Release [Free Release] MetalFG (Open Beta) – True 60→120 FPS GPU Frame Generation (LSFG / DLSS 3 style) for ProMotion iOS! Open-Source, Rootless, and 100% Free Forever
Hey r/jailbreak,
Today I’m finally releasing something I’ve been burying myself in for the past month, losing sleep over, and honestly almost gave up on more than once:
MetalFG — a real-time, driver-level GPU Frame Generation & Optical Flow Interpolation engine for ProMotion iOS devices (arm64 / arm64e rootless), inspired by PC tools like Lossless Scaling (LSFG), DLSS 3, and SMFG (Super-Motion).
It intercepts Metal games running at 60 FPS (or 30 FPS) and synthesizes true intermediate optical-flow frames directly on the Apple Silicon GPU to drive your 120Hz ProMotion display at 120 FPS.
Note on Beta Status & Compatibility: MetalFG is still considered in Beta as I continue refining edge cases across different games, though this v2.3.0 build is by far the best, smoothest, and most accurate algorithm we've achieved. I have tested it extensively on iOS 16 (iPhone 13 Pro Max on Dopamine); I haven't personally tested iOS 15 ProMotion devices yet, so I'm really looking forward to iOS 15 testers as well!
My Story: Months of Research, Ghosting, and Bootlooping the JB (and why the heck you get it ONLY now at 2.3.0)
I daily-drive an iPhone 13 Pro Max on iOS 16 (Dopamine). It’s an amazing phone with a 120Hz ProMotion panel, yet heavy 3D games either lock you to 60 FPS or cook your battery/thermals if you try to brute-force 120 FPS natively.
On PC, Frame Generation completely changed gaming. I kept thinking: Apple’s A15+ GPUs have ultra-fast tile memory and compute shaders—why doesn't iOS have a real frame generator? Even cheap-ass Androids got it!! If a tweak like this existed, I would have bought it in a heartbeat. Since it didn't exist, I decided to build it myself.
I had no idea how brutal the journey was going to be:
- The "Fake FPS" & Rubberbanding Nightmare (v1.0 – v2.0): My early builds tried to extrapolate frames forward in time. The FPS counter said 120, but the screen looked like a smeary, juddering mess. Text wobbled, HUD icons smeared across the screen, and worse—fighting the game's render loop tanked 60 FPS native down to 28 FPS (
14+14). - Freezing the Entire Jailbreak on the Apple Logo: At one point, hooking
MTLCommandBufferandCAMetalLayertoo broadly meantellekitinjected into system daemons during userspace reboots. Every time I rebooted and re-jailbroke with Dopamine, my phone froze solid on the Apple logo. The only way back in was jailbreaking with tweak injection disabled, opening Sileo, ripping my own tweak out, and starting over. - The Final Boss — Why 120 FPS Still Felt Like 60 FPS (v2.1 – v2.2): Even after switching to a true 1-Frame Latency Midpoint Interpolator (caching Frame
N, computing bidirectional optical flow between FrameN-1and FrameN, and presenting the synthesized midpointS(N-0.5)first), it still didn't feel smooth! I almost threw in the towel. Instead, I sat down and studied everything more thoroughly until we found the two smoking guns:- A holdover sign flip (
uv - mv * tinstead ofuv + mv * t) was warping FrameNahead of itself (0.40 -> 0.55 -> 0.50), making every moving object take 1.5 steps forward and 0.5 steps backward at 120Hz! - CoreAnimation (
CARenderServer) was dropping our midpoint frames becauseaddCompletedHandler:timing + barepresentDrawable:caused both the synthetic frame and the ground-truth frame to collide on the same 120Hz VSYNC tick instead of pacing cleanly withafterMinimumDuration:(8.33msper tick).
- A holdover sign flip (
When I compiled v2.3.0 (I switched versions to 2.x when I had a major breakthrough), opened Genshin Impact in a 60 FPS room, and panned the camera... it finally clicked. Buttery-smooth 120Hz motion, crisp static UI/text, and zero performance tanking. It literally changed the game for me (pun intended lol).
It makes me more satisfied with my personal iPhone 13 Pro Max than just buying a newer device.
⚙️ What MetalFG Does Under the Hood
- True 1-Frame Latency Midpoint Synthesis (
S(N-0.5)): Just like LSFG and DLSS 3, MetalFG holds Ground Truth FrameNfor half a refresh cycle (8.33ms), presents a synthesized midpoint frame between FrameN-1and FrameNon VSYNC Tick 1, and hardware-paces Ground Truth FrameNonto VSYNC Tick 2. - SMFG 1.1 Coarse-to-Fine Optical Flow + Parabolic Sub-Pixel Fit: Multi-radius seed search + 3-level hierarchical refinement + analytical parabolic sub-pixel fitting (
80x45RGBA16Floatgrid running in< 0.5mson GPU). - 5x5 Bilateral Fluid Filter & Sub-Block Silhouette Resolver: Fills flat/cel-shaded regions (like anime skin/walls in Genshin) from surrounding textured blocks while resolving sharp foreground/background silhouettes without ghost halos.
- Clamped Catmull-Rom 5-Tap Sharp Reconstruction & HUD Protection: Keeps damage numbers, minimaps, crosshairs, and text 100% stationary while preserving native texture sharpness.
- Live In-Game Frosted Glass Tuning Panel: Drag the floating FPS pill anywhere, tap to toggle FG on/off on the fly (with haptics), or tap
⚙️to switch presets (Clear,Balanced,Fluid) and tune Motion Warp Scale, Ghost Rejection, and UI Protection live in-game. - 100% Dopamine Userspace-Reboot Safe: Strictly whitelisted at constructor time to
/var/containers/Bundle/Application/.appbundles—never touchesSpringBoard,backboardd, or system daemons.
🎁 Why MetalFG is 100% Free & Open-Source Forever
I want to make this crystal clear: I will NEVER charge money for MetalFG.
Even though I think it's well worth buying (and I myself would have bought a tweak like this in a second), I don't want to wrap my work in DRM only to find this gem "cracked" on a Telegram group a day later. I believe in giving this gift as a... gift.
🤝 Contributions, Ideas, Testers & Buying Me a Beer!
I study overtime, so my free time is tight. Because MetalFG is 100% open-source, I would love your help, ideas, tips, and contributions:
- Devs & Shader Wizards: Have ideas to push the optical flow even further, optimize shaders, or add per-game profiles? PRs and issues are super welcome!
- Testers (iOS 16 & iOS 15!): Let me know how it runs on your device (especially if you test it on iOS 15 ProMotion!) and your favorite tuning slider combinations.
I have learnt A LOT and I still am learning...
However, just because I poured my heart into this for so long - if MetalFG changes how you enjoy your phone the way it did for mine, I would be super grateful for any help and donations! (Buy me a beer, half a beer, or drop a new idea in the repo 🍺☕):
- ☕ Ko-fi (Buy Me a Beer): https://ko-fi.com/dnullptr
- 💙 PayPal: https://paypal.me/dnullptr
🔗 Links & Download
- GitHub Repository (Source Code): https://github.com/dnullptr/MetalFG
- Download Rootless
.deb(Latest Build): https://github.com/dnullptr/MetalFG/releases/tag/nightly
Enjoy the 120Hz smoothness, and let me know what you think in the comments!
Screenshots with the UI:
https://ibb.co/mF4R7vj2
https://ibb.co/RZVtLV3




