ROOT patch execution

franz's picture

Hi, for one of my comps, i noticed, using the Perf. Inspector, that some macro patches are executed twice as much as the root patch. How come is that possible ? I thought the root patch would be executed every frame anyway, so how would a patch inside the root be executed twice per frame ? there's something i don't get.... please someone enlight me.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

cwright's picture
iteration + redpill

Iterators (and replicate in time/space) will obviously execute their subpatches more times than the root patch executes.

Also, some patches will execute multiple times for other reasons (Iterator Variables seems to execute way more times than even the iterator's iteration count). I think patch time bases might have something to do with this, but I've not looked at it closely.

It might have something to do with being connected to an enable input -- those have to get evaluated first, to see if the non-enable input stuff needs to be evaluated... shouldn't cause a double-execute, but maybe in some cases that's necessary?

Can you post a simple sample, and I'll check it out?

franz's picture
sample

here's a sample file, i tryied to remove the parts that were not relevant (= 99% of the comp). I'm using feedback and image texturing patches to chop the render in order to use with multiprojection setup.

PreviewAttachmentSize
render twice.qtz6.78 KB

cwright's picture
looks like ...

Looks like it's related to feedback and having two consumers (and might be a QC bug/misfeature) -- if you disconnect one of the sprites, it matches, and if you unplug the feedback, it matches.... Not sure why, just posting my observations.

franz's picture
yep

yep, very strange. i made the same observations. The problem is i can't really post this on QC dev. , as i'm using Perf. Inspector to reveal this.... I'll keep on investigating, since i really need the 2 sprites (normaly replaced by quad-warping pieces). This is part of a bigger multiprojection screen where i'd like to have 10 screens, so if the Root patch is executed 10 times..... i guess i'll have to find another technique. thanks for looking at my patch.

franz's picture
reply to self / further investigations

multiplying the sprites will end up with a FPS kill. 10 sprites = 10 times the render in image execution. However, placing a queue patch before the feedback, will restore normal behaviour, only the queue patch will be executed multiple times per frame. So it is somehow sorted i guess.