[ANSWERED] Minimizing Computing Load
Can anyone give me some insight into computing load. I've got a patch that, frankly, is pretty simple. There is one scene that I need to revise because it's way too taxing, but the rest of the show is pretty low-key. No heavy video processing -- mostly high rez images, very lightly manipulated. The strange thing (to me) is that my load percentage is spiking during jumps between scenes. I have a few scenes that are sitting at 1.5% load but the fade between them goes up to over 100% and then, of course, the fade isn't smooth. It seems really strange, but I'm not very savvy about computing power. The specs of this machine are:
MacBook Pro (15-inch, 2019)|2.3 GHz Intel Core i9 | 32 GB 2400 MHz DDR4 | Radeon Pro 560X 4 GB | Intel UHD Graphics 630 1536 MB
Is there any thing I can do? It's impossible for these scenes to be any simpler. (Of course, we open tonight...it's only a four day run so I'm just hoping this won't create a crash or stall, but I'd like to understand...this is the machine I bought pre-pandemic specifically for Isadora and this is only the second show I've made with it. I wish I had waited, but alas.)
The reason you see a spike during your Scene transitions is because during transitions, your computer has to do everything in both Scenes until the transition is over.
You mention high resolution images, so my one piece of advice is to make sure that your media isn't a higher resolution than your output device. If your projector can only handle 1080p but you're using 4k videos, that's an example of making the computer work hard for no reason. Making sure your media matches the resolution of your output is an easy way to cut down on the load. If that doesn't work, a drastic step could be dropping the resolution of your media overall. (Lower resolution = less work).
Also, media types can also affect it. Hap.mov is lower load than h264.mp4 in general, but especially if you want to play at a speed other than 1 or skip around in the video.
There are also a number of video actors that are very hungry in terms of load (like Video Delay and Motion Blur). On Mac, the vid-CI and vid-QC actors may not be very efficient (they're ancient). On Mac and Windows, using vid-CPU actors (or actors mutated to vid-cpu) is not efficient.
If you could give me a file with the Scene you are having trouble with, or show a screenshot, I could take a look to see if there's anything I could do to streamline it.
This is helpful. Indeed, going through the show I think I figured out the culprit. I have one effect that isn't too bad for the load when it's happening, but it looks like loading it is a problem. It's a patch that has 60 different images that "cascade" from off the top of the projection to the bottom of the projection. It looks like some of the images are pretty large...1920 x xxxx. One I just looked at is 1920 x 2880. So, I'm going to try to use Shutter Encoder to resize them. I made this part of the show ages ago for a Zoom thing and so I wasn't really thinking about that, especially since the actual effect wasn't what was causing the load to max out. (The other problematic scene uses a string of QC actors and I knew that was dumb. I just really like those actors. So that's a different problem). I'll update this thread once I try this. Thanks for your help!
Update: that helped with those transitions. (The scene with the QC actors is another problem that I doubt I have time to fix. But in future I'll avoid those actors...they're just so easy and fun.)
Aren't QC Actors on the CPU. Is the input video signal called vid-gpu or vid-cpu?
@juriaan Excuse my shorthand, in that patch (made messily during rehearsal and now well-loved by the director) has a QC, a couple CIs and an FFGL...again, I'm not very knowledgeable about cpu vs gpu, but I understand all of those to be load-sapping.
@Juriaan Which is to say: Yes, they are all vid-ci (I took out the ffgls cuz they were doing very little and that didn't help).
mark last edited by mark
Which is to say: Yes, they are all vid-ci (I took out the ffgls cuz they were doing very little and that didn't help).
The most efficient path to use is vid-gpu. But vid-ci is generally also very efficient because it is also on the GPU. There is a small conversion that needs to happen to turn vid-gpu into vid-ci, but it probably isn't super significant.
Part of the issue could be the effect itself. Some effects simply process the image in one pass. But some will process each pixel multiple times -- the most likely example being any kind of blur. Those effects can be very expensive, even when the GPU is very fast. Also, any GLSL shader that contains a for/next loop is a suspect. Look for something that starts with "for (..." in the code to see if a GLSL has a for/next loop.
What QC actors do you rely on? Eventually Quartz Composer will go away entirely -- it has been deprecated (meaning no longer supported) since Catalina. It's good to know what users use so we can develop replacements if necessary.