I'm downloading the
Mac OS X 10.5.5 Combo Update to extract the older CoreVideo.framework and will try disabling AudioIPCDriver.kext on a Leopard Mac next.
Ok, so I downloaded 10.5.1 Update, 10.5.2 Combo all through to 10.5.5 Combo and poked around with Pacifist. None of them had the CoreVideo.framework. It turns out that CoreVideo.framework v1.5.0 was from 10.5 (fresh), so I created another partition and did a clean install of 10.5, then updated this to 10.5.5 with the combo.
(CoreVideo.framework 1.6.0 is installed during 10.5.6 and remains unchanged to 10.5.8).
After all of that, my findings were the opposite. CoreVideo.framework 1.6.0 delivers higher Quartz Extreme frame rates than v1.5.0 in both the WindowManager and the Dock (when magnification is enabled).
Here are some FPS readings (Using the Xcode 3.1.4 > Performance > Quartz Debug > Frame gauge)
PowerBook G4 Late 2005 DLSD 15” 1.67Ghz / 2GB DDR2 / ATI Mobility Radeon 9700 128MB
10.5.8 with CoreVideo 1.5.0
BeamSync: Auto
2D Dock Magnification:~28 - 32 fps
WindowManager movement:~34 - 40fps
10.5.8 with CoreVideo 1.5.0
BeamSync: DISABLED
2D Dock Magnification:~36 - 42 fps
WindowManager movement:~55 - 58fps
10.5.8 with CoreVideo 1.6.0
BeamSync: Auto
2D Dock Magnification:~40 - 45 fps
WindowManager movement:~58 - 60fps
10.5.8 with CoreVideo 1.6.0
BeamSync: DISABLED
2D Dock Magnification:~45 - 55 fps
WindowManager movement:~60 - 62fps
The short answer is: CoreVideo.framework v1.6.0 introduced in 10.5.6 IMPROVES the UI frame rates *substantially* over v1.5.0 when BeamSync is set to Automatic (default).
There were also reasonable improvements found in v1.6.0 when BeamSync was disabled, however as expected, window tearing is evident when moving things around quickly and although the frame rate is higher, it makes the UI appear a little rougher. The Dock magnification didn’t appear to be affected by tearing in the same way window movement is.
In these tests, I had already disabled AudioIPCDriver.kext and set the Dock to be 2D (Black) via Onyx.
So now I’m confused, wasn’t the exercise to improve performance by trying older (pre-bloat) components?
Kudos to the CoreVideo / QuartzCore team for their optimizations. It’s funny, when you disable the 3D, reflective Dock in Leopard, the whole UI responsiveness improves. So I’ll add that one to the official list of Onyx based speed tune ups.
For the more curious: CoreVideo.framework was introduced in QuickTime 7 (requiring Panther 10.3.9 or Tiger 10.4) as a means of synchronizing OpenGL buffer flushing (drawing) with the display hardware vertical refresh rate. In my (limited) Cocoa programming experience, I have wrangled the CVDisplayLink into submission for several subclassed NSOpenGLView rendering contexts. The CVDisplayLink service is at the heart of CoreVideo.framework and works as a finely tuned redraw timer. My understanding is that this was introduced with QT7 because at the time, the QuickTime team had rewritten the video rendering engine, dropping the Carbon cornerstone QuickDraw in favour of a ground-up Cocoa engine (with many Carbon dependencies I’m sure). The new rendering engine used GPU accelerated OpenGL based video playback. The major advantage being the GPU Hardware was able to take the video rendering load off the CPU almost entirely, allowing the CPU to handle the codec/decoding. Various GPUs also introduced onboard decoders, such as MPEG2 and h264, further reducing the CPU load. QT7 was the first version to support h264 playback.