Window Capture and massive performance hits

Quick question here…

We’re getting ready to deploy MIMO with our show and Ive noticed that the performance takes an INSANE hit whenever certain window capture sources are active. Safari, iTunes, and many others cause the performance meter to run in to the red and frame rates to drop for 30 to 10fps.

Other windows, like finder windows, apple messages, and others run perfectly normally.

This happens whether the window capture source is placed independently in a placer or within the switcher or split screen modules.

Any ideas on what might be going on? I’m using a hefty 27" Retina iMac 5k with 32gb of memory and 4gigs of vram.

Ok… interestingly I think Ive figured out whats going on.

If the window is active on my main monitor (the iMac 5k monitor) it thrashes the performance. If the window is active on my external monitor (a 1080p monitor) - then everything is just peachy.

Don’t know if thats a bug, or just a result of the window grabber having to process a much higher resolution window… but thats whats going on.

…and as a test I checked to see if the same performance hit occurs when you use the screen source. It doesn’t.

It handles either monitor with no problem. So it seems like it might be some sort of bug.

Unfortunately this is not a bug. They way macOS is handling screen capture is different from window capture: Screen capturing just happens in the graphics card, macOS just needs to copy the pixels into another storage. For application windows its a different story: here macOS needs to call the host app and ask it to draw the window content into another buffer (because it might be hidden somewhere by another window on screen). Some apps are very inefficient when drawing their window and this is causing high CPU performance. You will see the same performance impact if you use another app that does window capture (like Google Hangout). The two-display setup could be happen if you have two graphics cards: mimoLive is rendering its video pipeline in graphics card A where as the window you are capturing is in graphics card B. Then macOS needs (additionally to rendering the window offscreen) to copy the window image from graphics card B to graphics card A to make it available to the video pipeline in mimoLive. This may also cost some CPU cycles.

If you happens to have a separate monitor dedicated to show the app window only you may also use the Screen Capture Source in mimoLive and switch the drawing “Placer” layer from “Fullscreen” to “Custom” positioning. Now you are able to move and zoom the Screen Capture image on the canvas so that it only shows the content of the window you originally wanted to capture. Downside: you can’t move the app window anymore.

Does this help?

Thanks for the info… I can work around it.