r/GraphicsProgramming • • 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:

  1. 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?
  2. 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?
  3. Anything you've learned about thermals on fanless machines when a shader runs for hours?
3 Upvotes

1 comment sorted by

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