Skip to main content
Inspiring
November 15, 2016
Answered

UI and Render Threads Not in Sync in CC2015+

  • November 15, 2016
  • 1 reply
  • 2233 views

My plugin is a modular effect, similar to Plexus, in that there is a main render effect, and a number of UI-only effects that provide data to the render effect (I've posted about this on a number of other occasions!).

When you apply the Renderer effect from the effects and presets panel, it uses Sequence Setup to automatically add the default data effects, so you end up with:

Module Selector (added automatically)

Builder (data effect - added automatically)

Instancer (data effect - added automatically)

Renderer (render effect - added manually)

This all works perfectly in AE pre CC2015, but in CC2015+ I get a bunch of After Effects error: internal verification failure, sorry! {invalid index in indexed group} errors, and the effect fails to render.

The reason for this seems to be that the UI and render copies of the project are not in sync. Indeed when I debug Smart Render, when it loops through the layer effects to gather the data it only finds the render effect, and none of the data effects. With no data, it renders nothing.

Now, if I save the project, close it and reopen it, everything works as expected, so the problem is limited to first applying the effect.

Any thoughts on how I can sync up the two threads?

Thanks, Christian

This topic has been closed for replies.
Correct answer shachar carmi

the sequence setup is not a rather dodgy time to modify the layer your

effect is being applied to...

i would suggest utilizing an AEGP with an idle hook. do all your effect

adding during that time.

1 reply

shachar carmiCommunity ExpertCorrect answer
Community Expert
November 15, 2016

the sequence setup is not a rather dodgy time to modify the layer your

effect is being applied to...

i would suggest utilizing an AEGP with an idle hook. do all your effect

adding during that time.

Inspiring
November 15, 2016

How would that work?

Does the AEGP need to be a separate plugin, or can it be bundled with the effect plugins? Currently I have one .aex/.plugin file, and that by use of multiple PiPL entries contains five separate effects. I'd rather not (if possible) have to write an installer...

But by the by, if I have an AEGP, what does it do? Wait for an effect to be added to a layer, and if it matches my plugin's match name, apply the additional effects?

Thanks.

Community Expert
November 15, 2016

i vaguely remember there's something about it in the SDK guide... i think

that if you're to add an AEGP plug-in to the same binary as effect, the

PiPL of the AEGP must be the first one.

anyways, i think you can setup an idle hook from the global setup of you

plug-in, but i'm not 100% sure. i use a separate AEGP plug-in for that.

when your effect is applied it can set a flag (either with the AEGP or the

global data) that there's a pending operation. once you hit the idle hook,

you can check that flag and continue the process.

heck, you can even leave the detail for what layer to add the effects to.

On Wed, Nov 16, 2016 at 12:26 AM, Christian Lett <forums_noreply@adobe.com>