2020.25380 - Engine COMP frame-rate and performances issues

Hello folks,

I am not sure it is a bug exactly or if I just don’t understand how things works correctly so feel free to move that post wherever !

I am finally digging a bit more in the Engine COMP.

The first little exercise that I am trying to achieve is to run a MovieFileOut in its own Engine so that recording of short clips doesn’t affect the main process.

On paper it sounds pretty straightforward and easy to achieve.

My first question comes to the type of exchanges between the main process and an engine.

  • I thought that behind the scene, for CHOPs, it was all Shared Memory buffers going from one thread to the other with close to none impact on performances while exchanging data.
  • But, if I look at the performances, there is an average of 1 to 2ms being used by the engine COMP, while the content of the exact same TOX outside of the engine and straight within the main process is using only 0.02ms…
  • If the origin of that difference is not the exchange between processes, I could guess that it is something related, maybe, to having all operators of an engine comp in Force Cook all the time ? I’m just supposing things here. Nothing scientifically accurate.

The second question is related to a lack of resources and documentation around the engine COMP.

Clock:

  • How does being Independent or in Sync can affect performances ? If I use info CHOPs, it seems that when the Engine COMP is set to Independent, it struggles to reach the 60fps, and average at 50fps on my current seetup. With performance monitoring tools, I can tell that my CPU and GPU have no issues and there is plenty of room left for everything to run at 60fps.
  • When setting the Clock to Sync, the Engine COMP is dropping to 30fps while the main process is running at 60fps. I could understand why here, but it would mean that if I ask the Movie File Out within the component to record at 60fps it’s actually not 60fps, even tho the video outputted state that it is a 60.

Wait for render:

  • Wait for Render wait - Wait during cooking rather than dropping late frames from TouchEngine.
  • This is what we can read in the Wiki. It is not quite clear, or pardon my English :wink: Who is actually waiting ? How does it affect potentially negatively the TouchEngine or the Main process ?

So far, what I thought would be a very simple exercise is actually tedious. I think that recording whatever comes from the main process without dropping frames in both the main process and the Engine is achievable, but I didn’t find the correct recipe yet (and I tried a whole lot of different settings and setup) which I think is just coming to a mix of Engine Comp settings, Movie File Out settings and potentially a better understanding of how things work behind the scene (if there is no bug ofc !).

I hope it’s all quite clear and thanks in advance for your time !
Michel

Thanks for this report, we’ll have to look into a lot of it before replying with answers. Then we’ll distill down the bugs vs the documentation vs the RFEs.