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]