Performance with Jitter
Hello
Sorry if this topic has been discussed many times but I can only find informations on the forum relating back to 2006.
I am trying to lean out an installation application I created in jitter for opengl. So mostly writing on the GPU.
I load 4 different video layers (qt + gl.slab) triggered by a camera analysis (I have 2 camera one for color information and the other one B&W analysing mouvements with infrared led light). The layers are blended and manipulated by the movements of the user.
I have composed my patch with bpatchers and abstractions that I reuse several times.
I have removed most of the buttons, number boxes, pwindows, etc ... and followed all the receipes and recommandations for qt and gl on the forum (like Vade's recommandations).
I'm still missing a bit of performance (running at 12fps)
I have separated my patch for 2 computers and communication via OSC.
Works fine but I'd like to see if there is anything else I can do to increase the performance to run my application on one computer.
My questions;
I read on the forum that separating the patch for 2 max application could be a solution as I would separate the process on each processors of my dualcore MacBookPro. But this is an infomation given in 2006.
I also read that having all the commands on one patch instead of nested patchs or abstractions could help.
One interesting thing I observed: I have created tabs for my application, I have noticed by chance that when I use a tab where there is nothing I encrease my performance of to 2 to 3 fps.
Sorry if my english is a bit convoluted as I am french.
Marie-Hélène
Separating a patch which is CPU bottlenecked on a single processor (typically by QT or OpenGL) into two processes, will typically give you similar performance to putting on two separate machines. However, if it is disk bandwidth bottlenecked, then a faster drive (SSD, RAID, etc) might help, or using two separate machines will perform much better than two processes on a single machine.
Another common issue for decreased framerate is using multiple opengl (p)windows with @sync enabled. If you are using more than one output/display window, send sync 0 to jit.gl.render/jit.window and see if that gives you any better performance.
Otherwise, without seeing your patch, I'm not sure what else to recommend.
-Joshua
forget your macbook and get a good pc with a nice nvidia gtx.
we are working at a installation with motion tracking, 5 diferent patches (particels, buffering etc), lot's of shaders and running at 50 fps.
my2cent
in addition to joshua's recommendations, i would say that there really is no way to guess what your bottleneck is. you have to find it by doing some profiling. very easy to do with max, simply by disconnecting patch cords or disabling opengl objects and watching your FPS. you should be able to at least narrow it down a bit, and then worry about fine tuning. also, make sure you disable or delete any GUI object that updates every frame, that you don't need.
Thanks for all your help and comments
Jirko, a collegue mentioned the same thing to me, change my Mac for customed PC - yes the graphic cards can be a lot faster. Maybe I will eventually bend on this side.
Robtherich, sorry my english is limited (or technical terms) but what is bottelneck ? But regarding HD speed, yesterday I have tested with different HD, a firewire HD 800 mhz self-powered external and a raid Esata HD - there was NO difference in FPS. Maybe my Esata card is not one of the fastest though. I have to check that.
Joshua, really thanks for the @sync suggestion, I gained 2 fps and a more stable fps (it was going from 15 to 16.5 fps up and down and now stabelized to 18.5).
I just spent the afternoon at a Mac store and tested my patch with the same clips etc .. on several machine.
On of the tech there looked at the results with me and he tells me that the logic card separated from the graphic card helps a lot, the frontside bus and the ram speed as well.
1- My own machine
Processor 2.4ghz, dualcore
Ram 2gig 667mhz
Frontside bus 800 mhz
Video card GeForce 8600M GT, 256 Mb
HD 7200rpm Firewire 800 external
MacOsx 10.5.8
FPS 16.5 (and drops down sometimes to 15)
2- MacBookPro (Apple store)
Processor 2.4ghz, dualcore
Ram 2gig 1066mhz
Frontside bus 1067 mhz
Video card GeForce 9400M GT + 9600M GT, 256 Mb
HD 5400rpm internal
MacOsx 10.6.2
FPS 19.8
3- IMAC (Apple store)
Processor 3.06 ghz, dualcore
Ram 4gig 1066mhz
Frontside bus 1067 mhz
Video card ATI Radeon HD 4670, 256 mb
HD 7200rpm internal
MacOsx 10.6.2
FPS 29.8
4- IMAC (Apple store)
Processor 3.06 ghz, dualcore
Ram 4gig 1066mhz
Frontside bus 1067 mhz
Video card GEForce 9400, 256 mb
HD 7200rpm internal
MacOsx 10.6.2
FPS 29.8
So between the 2 IMac the only difference is the graphic card and the result is the same.
Between my machine and a relatively recent MacBookPro, I gain only 3 fps, although it has a faster frontside bus, faster graphic card and logic operations separated ( as I'm told), but a slower HD.
Another thing I'm wondering, does Snow Leopard help the performance for Max ?
And any of you having problems with Snow Leopard and Max, is it worthit for me to install it ?
i doubt you will gain much improvement from snow leopard.
possibly the thing slowing you down the most is capturing camera input. are you capturing with @colormode uyvy?
I am using a B&W unibrain Fire-I and a color one as well.
I am capturing with @colormode uyvy.
But should I capture with another mode on the B&W camera ?
Also I realize I haven't put the @colorspace (0) for grayscale.
Here's my patch for capture