Forums > MaxMSP

Large matrix performance issues?


Jun 07 2012 | 7:28 am

Hi all!

I have a show approaching in which a visualisation will be projected onto a hi def 1280 720 screen. The issue is that the project requires video, however i have found that matrices of these dimensions grind the performance down to a halt! I am usng a small number of jit.gl.gridshapes simultaneously, but surely there must be a method of over/underlaying video that wont cause that much destruction?!?

I have a macbook pro with 8 gig of ram 2gHz i7 processor and the ATI Radeon 9460 (i think) so id be surprised if it cant cope? Any advice is really welcome at this stage!

Jun 07 2012 | 10:22 am

Not a Jitter master here, but some (probably obvious) considerations: Are you creating matrixes of HD size to combine the gridshapes and video? That will be slow… It’s faster to render directly to OpenGL, adding video via Jit.gl.videoplane. Also, unless the resolution of your video is actually 1280 * 720, you can scale the image up if needed. Also if you’ve already done that and/or still need to squeeze yet more performance, look at uyvy colormode for the video…


dtr
Jun 07 2012 | 10:50 am

What’s your rendering flow like? Post a patch maybe? As spectro says, do everything in OpenGL (and keep it there, no readback to matrices!) and you should be fine. With video and 3D it’s very easy to destroy framerate if not taking care of these things.

See Jitter tutorial 49 for UYVY and jit.gl.videoplane.

Jun 07 2012 | 11:55 am

well heres the issue:

my patch includes opengl and currently everything is being rendered on videoplanes straight to window. the issue is that amongst having a few jit.gl.gridshapes floating about, i’m actually using some dynamically resizing gl circles as video masks to allow another video to come through. the method i’m using is derived from this:

— Pasted Max Patch, click to expand. —

however as you can see, the mask is generated using a matrix. is there any other effective way around video masking that doesesnt use a matrix?

cheers! i’m in a real pickle here!

Jun 07 2012 | 11:56 am

trust me! i’ve searched!


dtr
Jun 07 2012 | 1:01 pm

> is there any other effective way around video masking that doesesnt use a matrix?

sure, draw you mask shape in GL, over the videoplane etc. set blend_enable and the correct blend_mode and you should get similar results.

not sure but i wouldn’t be surprised if an andrew benson jitter recipe does this kind of stuff.

Jun 07 2012 | 1:17 pm

actually, i reckon i might have cracked the ideal method! i’ll post if anyone is interested!


dtr
Jun 07 2012 | 1:57 pm

please do…

come to think of it: you can do the alphaglue thing with shader and textures as well.

Jun 07 2012 | 2:59 pm

well.. i say "i’ve cracked it".. what i meant was i found this:


-- Pasted Max Patch, click to expand. --

and adjusted it a little!

Jun 08 2012 | 9:26 am

Hi,

I tried to do the same, unfortunately without success… Processing large matrix will cause fps to drop, significantly.
Anyway, any new ideas how to make large matrix process lighter?

Luis Marques


dtr
Jun 08 2012 | 10:18 am

There’s many approaches, depends on what you wanna do. Do you have a patch/description?

Jun 08 2012 | 10:50 am

I’m looking for an effective way to playback 2 HD (1920×1080) movies, and process one of them in OpenGL. I got satisfactory results when I resize the videos to 320×40. However loses high quality when I blend the videos after process one of them.

Sending the patch.


-- Pasted Max Patch, click to expand. --

Luis Marques


dtr
Jun 08 2012 | 12:38 pm

For starters, get rid of all the pwindows. The pwindow after each of your slabs forces Max to copy the texture (GPU) back to a matrix (CPU) for displaying. How does it run without all of those?

Jun 08 2012 | 3:36 pm

thanks for that, i’ve actually already got rid of the pwindows, and we’re running beautifully. cheers!


dtr
Jun 08 2012 | 4:00 pm

see that’s what i meant with "it’s very easy to destroy framerate if not taking care of these things" ;)

Jun 10 2012 | 2:38 am

Yes, without all pwindows framerate is about 30fps which is good. But that’s not the point, because the movies were resized to 320×240 at the output of jit.qt.movie. What I really want to find is a effective way to process large matrices (1920×1080) without the need to resize the movies before process them. Resize causes loss of quality, I’m trying to avoid that loss.

Luis Marques


dtr
Jun 10 2012 | 1:59 pm

Some questions:

– what codec are your movies?
– is your CPU maxed out when running this?
– have you tried in UYVY mode?

Jun 10 2012 | 2:47 pm

I record videos using jitter and JPEG codec.
In this patch I got 30fps without all pwindows. Load and process 1920×1080 videos the framerate is significantly lower (5fps/10fps). Although, resizing and processing 320×240 videos got a good framerate but, do not make the playback natural, without mentioning the loss of quality.
UYVY could be an option, I just have to try it.


dtr
Jun 10 2012 | 3:07 pm

– is your CPU maxed out when running this?

I’m asking this to know if the bottleneck is on the CPU or GPU side.

> UYVY could be an option, I just have to try it.

Please do.

Btw, you have interp, fsaa and other settings on your jit.window. Try removing all that. Might be some fps choppers in there.

Jun 11 2012 | 4:31 pm

Hi.

Your tips did work!
I got 30fps whit 1920×1080 videos plus processing!

Thanks

Luis Marques

Viewing 20 posts - 1 through 20 (of 20 total)

Forums > MaxMSP