So I can recreate this issue within Quartz Composer directly.

Load a large movie, say a 1080p30 Apple Intermediate Codec movie.

drag it in, connect to billboard, take a look at CPU usage and FPS.

make an invert patch - the one straight from the CIKernel because why we have 
two invert patches named the same and one is a patch the other is a filter is 
beyond me, but just pick the CI Filter one.

then connect any 3rd party plugin patch that uses a 
QCPluginOutputImageProvider.Ive used one of my v002 Blurs for good measure 
since I know its highly performant (or used to be :P)

Notice a huge spike in CPU. Profile in instruments and see the same CPU side 
pixel format conversion happening.

Chris, I think this is a bug, no? 

https://dl.dropboxusercontent.com/u/42612525/QC%20Perf%20wat.mov

I can see that ARGB ABGR convert function within QC. Using a large movie helps 
because its a large read back / larger CPU slice per frame.

Shall I file a bug?


> On Feb 1, 2016, at 2:09 PM, George Toledo <gtole...@gmail.com> wrote:
> 
> Core Image did get some sort of overhaul for El Cap. Syntax was updated for 
> sure. 
> 
> I also had several Core Image filters that use Edit Filter Function, or 
> Advanced Sampler Options break, maybe due to the new syntax, maybe to bugs.
> 
> I have noticed insanely bad performance from some custom filters that still 
> technically work. The observations about the kinds of chains you created and 
> the performance, sounds right in line with what I have seen here. 
> 
> Some of the built in QC "Image Units" also now perform really badly because 
> of their use (and maybe mix?) of custom and built in CIKernels.
> 
> Thanks for sharing the results of that troubleshooting.
> 
> 
> 
> 
> On Mon, Feb 1, 2016 at 1:46 PM, Anton Marini <dokt...@mac.com 
> <mailto:dokt...@mac.com>> wrote:
> Hi Chris
> 
> Thanks so much for the prompt reply .
> 
> Ive noticed some interesting things in terms of chaining multiple ‘QCImage’ 
> backing causing issues.
> 
> My chaining terminology refers to :
> 
> rendering a QCRenderer or providing an appropriate image type (CIImage 
> CVOpenGLTextureRef, etc), rendering said renderer at time, getting the 
> valueForOutputKey:key ofType:@“QCImage” and setting that to the 
> valueForInputKey: of the next QCRenderer in the chain.
> 
> all renderers use the same GL context, save for one, which uses a shared GL 
> context / and an attached drawable to view the results.
> 
> --
> 
> if I chain a series of QCCompositions/Renderers which use pure CIImage 
> filters, as provided by the OS, and no other processing I have no problem.
> 
> if I chain a series of QCCompositions/Renderers which use plugins which vend 
> textures as QCOutputImageProviders in series, I have no problem.
> 
> If I chain a mix of the above, I have a problem.
> 
> if I load a *single* QC Composition/Renderer which has a custom plugin, and 
> within that composition that plugin is fed, or feeds, a custom CIKernel, I 
> have the problem.
> 
> This is on
> 
> MacBook Pro (Retina, 15-inch, Mid 2014)
> 
> NVIDIA GeForce GT 750M 2048 MB
> 
> 10.11.2 (15C50)
> 
> About to use GFXCardStatus to see if the pixel format swizzling as you 
> pointed out is a GPU or something else issue.
> 
> Thanks again for the quick reply. Right now my reproduction case is 
> admittedly complex - I’m going to see if I cant boil it down some more.
> 
> 
> 
> 
> > On Feb 1, 2016, at 1:29 PM, Chris Wright <christopher_wri...@apple.com 
> > <mailto:christopher_wri...@apple.com>> wrote:
> >
> > Looks like that _might_ be due to a CoreImage change (note a few frames 
> > down, it’s doing a ABGR8 -> ARGB8 conversion, which possibly implies a 
> > request for a pixel format that isn’t what the GPU’s currently using).  I 
> > only say CI because QC’s use of pixel formats hasn’t meaningfully changed 
> > in quite a while, so this would be a surprising behavior change for QC.
> >
> > Do you happen to have configuration info, or if this behaves similarly on 
> > other families of GPUs?  It looks like you’re on some family of GeForce 
> > (nvidia), so Intel or AMD behavior might be helpful if it’s a quirk below 
> > QC.
> >
> > Can you please file a radar for this?  It may well affect several other 
> > things negatively.
> >
> >
> >> On Feb 1, 2016, at 9:38 AM, Anton Marini <dokt...@mac.com 
> >> <mailto:dokt...@mac.com>> wrote:
> >>
> >> Hi
> >>
> >> My application uses the QCRenderer API to input and output images in the 
> >> opaque QCImage format and send them through a chain of published input and 
> >> output images in QCCompositions/Renderers I control.
> >>
> >> Ive noticed in 10.11, performance seems worse. Looking into it, I’m 
> >> noticing that *certain* configurations of Core Image filters and custom QC 
> >> Plugins / output images vended as QCImages cause read back to occur on the 
> >> CPU.
> >>
> >> Ive tried to account for various different causes - like pixel format 
> >> issues, color space issues, etc, but I cannot get rid of the CPU read 
> >> back, which I am 99.999% positive didn’t happen in older Quartz Composer 
> >> framework/API versions as older hardware got better frame rates - likely 
> >> keeping things on the GPU where they belong™.
> >>
> >> Has anyone else seen regressions in performance with QC?
> >>
> >> Specifically, I am seeing stacks like the following (see attached image).
> >>
> >> https://www.dropbox.com/s/s7sqn56gdcogxsj/PastedGraphic-1.png?dl=0 
> >> <https://www.dropbox.com/s/s7sqn56gdcogxsj/PastedGraphic-1.png?dl=0>
> >>
> >> Any hints as to why there might be rendering path changes in QC or Core 
> >> Image?
> >>
> >> Thank you.
> >
> > --
> > Chris Wright
> > christopher_wri...@apple.com <mailto:christopher_wri...@apple.com>
> >
> >
> >
> 
> 
>  _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Quartzcomposer-dev mailing list      (Quartzcomposer-dev@lists.apple.com 
> <mailto:Quartzcomposer-dev@lists.apple.com>)
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/quartzcomposer-dev/gtoledo3%40gmail.com
>  
> <https://lists.apple.com/mailman/options/quartzcomposer-dev/gtoledo3%40gmail.com>
> 
> This email sent to gtole...@gmail.com <mailto:gtole...@gmail.com>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Quartzcomposer-dev mailing list      (Quartzcomposer-dev@lists.apple.com 
> <mailto:Quartzcomposer-dev@lists.apple.com>)
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/quartzcomposer-dev/lists%40vade.info 
> <https://lists.apple.com/mailman/options/quartzcomposer-dev/lists%40vade.info>
> 
> This email sent to li...@vade.info <mailto:li...@vade.info>
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartzcomposer-dev mailing list      (Quartzcomposer-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/quartzcomposer-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to