Hi All,

First off, I just wanted to publicly thank the QC team for making such a cool piece of technology. This stuff is great.

Next, the context: I have an application that is used to display videos in live performance situations. ( http://figure53.com/qlab/ ) My previous version of the application used the standard CoreVideo technique of setting the QTVisualContext of a QTMovie to generate CVOpenGLTextureRefs and display them with simple OpenGL calls from a display link callback.

For the recent update to the program I kept the same basic pipeline, but instead of using my own OpenGL calls to render the textures on a simple rectangle, I am feeding the images to a Quartz Composition for the rendering step. (You can see the qtz file I'm using in the app bundle. It's pretty straightforward.)

I have run into two fairly serious performance issues.

Issue 1: Performance on a PPC machine drops off a cliff. PPC machines that could play videos smoothly in the old version have unusable framerates on the new version. To the best of my belief, the only significant difference between the two (as far as video playback is concerned) is simply that the frames are being rendered with QC in the new version. Is there a known performance hit for Quartz Composer on PPC hardware? Is there some kind of optimization flag I need to set to target a build for PPC? I don't yet have PPC hardware to test on, so can't yet investigate directly. I'm trying to scrounge up some hardware now; I wasn't expecting to hear of factor-of-ten (or more!) type slowdowns from the PPC crowd.

Issue 2: NSOpenGLCPSwapInterval. When I force vertical sync with NSOpenGLCPSwapInterval, QC rendering on the display link callback thread will frequently stall when the main thread is busy, such as during a big GUI redraw of the application's workspace window. If I turn off vertical sync then the stalls cease, but of course then I get tearing. Is there some way to both enforce vertical sync and also keep QC rendering at a consistent rate on the background threads?

I have only moderate experience with the underlying architectural issues here (I'm not an old hand at, say, optimizing OpenGL performance), so I may well be making stupid mistakes. Hopefully I am! Any insight appreciated, and code snippets available on request. (Didn't want to copy and paste code without knowing which code would be useful to see.)

Best,
Chris

QLab : Live Show Control for Mac OS X.
http://figure53.com/qlab/
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartzcomposer-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quartzcomposer-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to