Morph performance on large images.

Questions or topics about FantaMorph that don't fit into any specific category.
Post Reply
Titan_rw
Posts: 5
Joined: Thu Jan 06, 2011 12:06 am

Morph performance on large images.

Post by Titan_rw »

Hi.

I have been succesfully using fantamorph to morph / warp large images. Currently 1520x1056. Previously performance was very good. It is a multi layer warp, and performance slows down if more than one layer is visible, but when working on a single layer, I get ~300fps. I also see ~30% GPU load on both gpu's (dual gpu card). Cpu load is ~4%. (this shows me the cpu is not the limiting factor here).

Somethings changed though from one project file to another. I get the above 300fps preview performance on "version 4" of my morph. I had been working on version 5 recently. I simply save the project to a new filename from time to time so I can revert back if needed. I noticed on V5, I was only getting 7fps preview speed when working on a single layer. GPU load is ~2% on both gpu's, and cpu is at ~14%. Since windows sees 8 cores (4 physical cores with hyperthreading), I assume for some reason fantamorph is CPU limited, running one core to 100%. (12% overall would be 1/8 cores at 100%. Other threads would make up the other 2%).

Somehow I might have inadvertantly changed something that increased the cpu load from one revision of the project to another. They both have the same number of dots. They both have 3 layers, although I'm testing with only one layer visible at any one time. So my question is how can I tell what options / features in the latest revision of my project is causing the hardware acceleration to be CPU limited instead of GPU limited? When GPU hardware acceleration is working properly (which it is in my case), what tasks remain on the CPU? Something the cpu is having to do is eating up lots of cpu time. I've got an i7 overclocked to 3.8 ghz, so even a single thread is pretty powerfull.

If whatever fantamorph is doing with the cpu during gpu acceleration is needed in my case, is there any chance of multithreading making it's way to fantamorph? I have lots of cpu power left over, but multiple threads are needed to take advantage of it.

Thanks in advance.

User avatar
fantam
Site Admin
Posts: 568
Joined: Thu Aug 28, 2003 9:52 am

Re: Morph performance on large images.

Post by fantam »

1520x1056 is not large at all if your machine has a powerful graphics card.
However, a Layer Morph project with only one layer visible at any one time is NOT equal to a normal Sequence Morph with only one sequence.
For now, Layer Morph does have some performance problems as It is not accomplished all by GPU.
Thank you for your professional suggestions. We'll keep improving the performance of Layer Morph in later update versions.

Titan_rw
Posts: 5
Joined: Thu Jan 06, 2011 12:06 am

Re: Morph performance on large images.

Post by Titan_rw »

I figured it out through some trial and error. I first deleted all dots on both images. Same slow performance. I then started looking through the different screens trying to see what was enabled still.

I found that the gaussian blur under movie options was added. Simply disabling the option was not enough. I had to completely remove the filter from the list. Once I removed the filter, I was back to ~300fps preview speed, even with a mutlilayer morph (one layer visible).

So it seems the movie filters, or at least gaussian blur, is not gpu accelerated at all. And is single threaded on the cpu. Both of these combined mean the morph previews 30x slower when it's enabled. And it has to be completely removed (not just deselected) to remove the performance penalty.

I'm running quite a powerfull video card (geforce 295, dual gpu), so I didn't expect to see such a cpu limited instance. Without the movie filters enabled, previewing my 1520x1056 image at 300fps only uses 30% of what the GPU has to offer, so I'm sure there's gpu power left over for more processing / features.

If I leave the movie filters off, the only time I see really bad performance is when more than one layer is visible. Here's the details:

1 out of 3 layers visible: 300fps, 30% gpu load, low cpu load.

2 out of 3 layers visible: 3fps, 7% gpu load, 'single core 100% cpu'.

3 out of 3 layers visible: 2fps, 6% gpu load, 'single core 100% cpu'.

So along with movie filters, multiple layer morphs seem to be massively cpu limited too. I can usually work on a single layer at a time, so I get real-time previews, but there's times I have to see how the layers 'overlay'. I'm stuck with really really slow previews. I would sure like to see improved gpu offloading of multilayer morphs.

User avatar
fantam
Site Admin
Posts: 568
Joined: Thu Aug 28, 2003 9:52 am

Re: Morph performance on large images.

Post by fantam »

Oh, you added a movie filter? That is the reason for the bad performance.
For now, movie filters are NOT gpu accelerated at all, so please don't expect to preview morph movies along with filter effects in real time, especially when your source images are large. Yes, 1520x1056 is too large for movie filters, this is why there is an option called "Preview Movie Filter Effects" in the Edit Options window.
It is recommended to turn off this option in your case. You'll then get the best performance, just can't see the movie filter effects while preview, but they still can be exported to final movies.

kim silaban
Posts: 1
Joined: Sun Sep 04, 2011 5:49 am

Re: Morph performance on large images.

Post by kim silaban »


Post Reply