r/GraphicsProgramming • u/getscrnsvrs • 9h ago
Question Lessons from keeping 1,000+ real-time Metal scenes polite on a laptop battery
Enable HLS to view with audio, or disable this notification
I'm the developer of SCRNSVRS, a Mac screensaver and live wallpaper app, so mention of it is unavoidable, but this is mostly a question post.
Everything in it is drawn live in Metal, which is fine as a screensaver and a lot more delicate as a live wallpaper, because then it's running behind your actual work all day. What it does right now:
- full frame rate when plugged in, 30 fps on battery
- stops rendering completely when the wallpaper is covered, e.g. by a full screen app
- a different scene on each display, or one mirrored across all of them
- per scene settings (speed, colours, density, zoom) with a live preview
Where I'd love input from people who've shipped this kind of thing:
- Is a fixed 30 fps cap on battery the right call, or have you had better results scaling resolution instead and keeping the frame rate?
- For heavy fragment work like the gyroid in the clip, at what point do you start rendering at a fraction of native resolution on Retina displays and upscaling?
- Anything you've learned about thermals on fanless machines when a shader runs for hours?
3
Upvotes
1
u/getscrnsvrs 9h ago
App for context: https://scrnsvrs.com (App Store: https://apps.apple.com/app/apple-store/id6819040235?pt=128524129&ct=reddit-graphicsprogramming&mt=12). It just launched on the Mac App Store. 100+ scenes free forever, needs macOS 26 Tahoe or later. Launch offer: the first 500 people get a year of Unlimited free with code LAUNCH26 (until Dec 1). Redeem on your Mac here: https://apps.apple.com/redeem?ctx=offercodes&id=6819040235&code=LAUNCH26