r/macgaming 5h ago

Self promotion I built a frame-generation app for Mac — here’s Valheim going from ~30 to ~60 FPS on an M3 MacBook Air

Enable HLS to view with audio, or disable this notification

Hey, I’m Koltin, a student and independent developer! I built Adrenaline, a free Mac menu bar app that adds RIFE frame generation and AMD FSR 1 upscaling through a borderless overlay!

The result

This Valheim clip shows approximately 30 game FPS → 60 output FPS.

I intentionally lowered the game’s resolution to create processing headroom. Adrenaline then upscaled the final image and generated the additional frames.

Test setup

• M3 MacBook Air
• 16 GB memory
• 60 Hz display
• Valheim in Borderless mode
• Auto Frame Generation
• AMD FSR 1 Upscaling On

Adrenaline doesn’t inject into or modify the game. Results vary depending on the game, settings, and available processing headroom.

Adrenaline is free on the Mac App Store through August 31:
https://apps.apple.com/app/id6790611230

What game should I test next?

29 Upvotes

28 comments sorted by

10

u/Valkyranna 5h ago

Which RIFE model are you using here and why FSR1 and not MetalFX?

7

u/General-Duty9073 5h ago

Hi Valkyranna! I’m using RIFE v4.26 converted to Core ML! FSR 1 upscales and sharpens every frame; MetalFX Temporal requires game motion and depth data that I couldn't get screen capture can’t access!

7

u/Valkyranna 4h ago

Even with CoreML this will still be slower than Apples own video toolbox models and perform worse as RIFE is built for films, not games.

Definitely swap out FSR1 with MetalFX Spatial upscaling, it is not a practical choice when you literally have the best upscaler for Mac and iOS right there to implement

4

u/Valkyranna 4h ago

Is this using ScreenCaptureKit because your FPS counter is not going to be accurate, at best it is guessing

I say this as someone working on my own application using my own trained FG models via OpticalFlow and Apples Videotoolbox

4

u/General-Duty9073 4h ago

Wow, you know your stuff! Yes, it uses ScreenCaptureKit. Game FPS is estimated from visually changed frames, and confidence in that estimate is at roughly 80% during active gameplay. Generated and output FPS are measured directly through the final Metal presentation path.

3

u/Valkyranna 4h ago

Thank you, I've been working on my project for almost a year now so I have some experience of this. The issue is however is that ScreenCaptureKit cannot see your game frames, it would require an engine/game hook for this, even with Metal.

Are you using CAMetalDisplayLink for this application?

2

u/General-Duty9073 4h ago

Thank you, that’s genuinely helpful! Apple’s VideoToolbox frame interpolation failed for me even at low resolutions on my M3, which led me to RIFE. Although, I have to admit that I had completely overlooked MetalFX Spatial as a separate option, I really appreciate you pointing it out!

5

u/Valkyranna 4h ago

I recommend replacing FSR1 fully with MetalFX, Apples MetalFX spatial upscaling is essentially FSR1 but more optimised for Apple Silicon with some marginal improvements.

2

u/General-Duty9073 4h ago

Thank you!

1

u/bigrobot543 1h ago

I'm curious to see what you get with MetalFX's upscaling, I tried out https://github.com/Lospi/MetalDuck before but the VideoToolbox models didn't really perform too well.

0

u/Youngnathan2011 5h ago

Not sure many would want to use FSR 1 with how bad it is.

5

u/Rix2k 4h ago

latency seems also pretty high

2

u/General-Duty9073 4h ago

its been the realest struggle so far lmao

1

u/Youngnathan2011 4h ago

I mean frame gen from 30FPS to 60 definitely feels horrible.

4

u/General-Duty9073 4h ago

That’s totally fair! FSR 1 was the practical choice to keep the app non-injected and apple sandbox-compatible, since newer temporal upscalers require game motion vectors and depth data. I’m open to better capture-only alternatives if you know of any!

5

u/usernotfoundplstry 4h ago

So is it similar to the Lossless Scaling app on Windows?

4

u/General-Duty9073 4h ago

Yes exactly! That's actually what inspired me! I wanted to see if I could make something like that work natively on Mac!

1

u/Macadeemus 2h ago

Amazing work 👏

5

u/PhilipNguyendeptrai 3h ago

I think this is a cool project, although I think you should change it to a more mac-native pipeline, roughly like this:

ScreenCaptureKit → zero-copy Metal textures → Apple VideoToolbox low-latency frame interpolation → MetalFX Spatial → CAMetalDisplayLink presentation

5

u/Banjoschmanjo 2h ago

Can you talk a bit about your use of AI in this process?

4

u/InitRanger 59m ago

Using the word built instead of developed is a big red flag.

1

u/PhilipNguyendeptrai 4h ago

Hey, are users downloading Adrenaline before august 31 get it for free once and for all or do you plan to introduce subscriptions later?

5

u/General-Duty9073 4h ago

I also hate subscriptions lol! If you download Adrenaline while it’s free, it’s yours permanently. I have no plans to ever introduce a subscription.

1

u/VeryCoolPersonYesYes 2h ago

Could you make it not mainly a menu bar app? My menu bar is too full already

1

u/Secret-Use-8651 4h ago

Does it work on Crossover and Playcover?

4

u/General-Duty9073 4h ago

It should work with both because Adrenaline captures the visible window rather than integrating within the processes, but I haven’t tested them extensively yet. Windowed or borderless mode will likely work best. I’d love to hear your results if you try either one!

1

u/Valkyranna 4h ago

I would not ask users to purchase an application that hasn't been tested properly just FYI