views:

12

answers:

1

I've made a screensaver which displays tables of statistics across a number of "screens" which it fades between. I've used only CALayers and implicit animation, but even so the animation is jerky at best; rather than a smooth transition there are 3 "jumps" between screens, one at ~5%, one at ~30%, then 100%.

Running top in a terminal from another machines, the screensaver always hits 100% CPU during transitions.

I'm running this on a Mac mini, PowerPC G4 (1.5) @1.33GHz with 512MB RAM, running Leopard. No other programs are "active" during running.

System Profiler states that Core Image is supported by software, so I'm assuming the implicit animations are computed in the CPU rather than the built-in Radeon card.

What would one need to do to move the animation to the GPU?

+2  A: 

OS X will automatically do the animation on the GPU on most graphics cards that support pixel shaders 2, I believe. The exact list of supported GPUs is pretty hard to find, since it hasn't really been talked about since 10.4 came out. The minimum spec list is:

  • ATI Mobility Radeon 9700
  • ATI Radeon 9600 XT, 9800 XT, X800 XT
  • nVidia GeForce FX Go 5200
  • nVidia GeForce FX 5200 Ultra
  • nVidia GeForce 6800 Ultra DDL, 6800 GT DDL

So it seems the Radeon 9200 and 9500 in Mac mini and iBook G4s is not properly supported.

Coxy
Any suggestions then on how to achieve smooth animations on Mac mini G4s?
digitala
Quartz Extreme (maybe?) or straight OpenGL should be a lot faster, since they would be using the GPU. Unfortunately, it seems like that would be a lot of effort to use instead of easy CoreImage effects?
Coxy
You could also consider that your target market is presumably likely to have computers with full GPU-accelerated CoreImage support these days, so it might not be a problem after all.
Coxy
@coxy - unfortunately not; this is an internal app, and we're limited to older mac mini G4s.
digitala