Out of curiosity, in your code (posted later) have two paths to make
at QTVisualContext, the QTOpenGLTextureContext and a pixel buffer. Do
you know by chance if all PPC machines are using one or the other?
Judging from my experience, Im usingonly QTOpenGLTextureContexts and
doing the same thing, passing in large frames to have QCRenders fiddle
with them, and performance has been great.
A few major issues I have seen was that one ought to make sure one
uses the same colorspace in managing your QTOpenGLTexture Contexts and
your QCRenderer. I force everything to be kColorSpaceGenericRGBLinear,
and in doing that I saw a huge performance increase. If you set the
working and output colorspace keys of yout QTVisualContext properly,
Quartz Composer does not do any 'extra' colorspace conversion for you
when you set the value for a published input image key.
I will admit to not fully understanding how all of the colorspace
things have worked, but it made things fly on my end. I would highyl
suggesy taking a good long look at both your two possible codepaths
(PixelBuffer vs TextureContext), and the colorspace issue.
On Feb 25, 2009, at 3:32 PM, Christopher Ashworth wrote:
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/doktorp%40mac.com
This email sent to [email protected]
_______________________________________________
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]