Particle system benchmark

Pedro Santos's icon

Hi. I've noticed a considerable difference in the performance of a patch that uses particles with jit.gl.multiple, between Max 5.1.9 and 6.0.8. I've tested it in Windows 7 and Mac OS X 10.8 with the same hardware: it is much slower in 6.0.8. I've made a patch to test this performance difference with a 5000 particle system and here are the results:

Mac OS X 10.8
Shape 1: plane (low poly count) with a circle texture
5.1.9: 45 fps
6.0.8: 15 fps
Shape 2: sphere (medium poly count - 12 12)
5.1.9: 12 fps
6.0.8: 10 fps

Windows 7
Shape 1: plane (low poly count) with a circle texture
5.1.9: 55 fps
6.0.8: 24 fps
Shape 2: sphere (medium poly count - 12 12)
5.1.9: 50 fps
6.0.8: 23 fps

Max Patch
Copy patch and select New From Clipboard in Max.

Can anybody run this and post the results for me to confirm this?
Thanks!

Floating Point's icon

I have similar results using a macbook pro 2.2ghz i7 2011 model, running on battery (6.0.7 instead of .0.8):

Mac OS X 10.6.8
Shape 1:
5.1.9: 55 fps
6.0.7: 18 fps

Shape 2:
5.1.9: 11 fps
6.0.7: 11 fps

Pedro Santos's icon

Thanks, Terry. I guess that your GPU is the AMD Radeon HD 6750M. I've tested with an AMD also (HD 4870 1 GB).

To me, this test shows that:
1, With shape 1 (plane, low poly count), Max 5 is 2 to 3 times faster than Max 6.
I know that Max 6 had many changes under-the-hood. Maybe some of these changes introduced a bug? I hope so... can anyone from Cycling comment/confirm this?

2. AMD graphic drivers on Windows perform much better with high poly count (shape 2) than on Mac OS X.
If anyone has a system with dual boot (macintosh, hackintosh), I would like to confirm this... and to also have results from NVidia cards!

Thanks everyone.

Floating Point's icon

Hi Pedro,

(I guess that your GPU is the AMD Radeon HD 6750M. )

yes it is, but I had automatic graphics switching enabled, so it might have been using the built-in video processor (intel HD 3000)

Pedro Santos's icon

With that kind of performance, I guess it was really using the Radeon. I'm glad to see that current mobile GPUs have similar performance to my current non-mobile Radeon HD 4870 1 GB.
It's just sad to see this amount of performance penalty from Max 5 to 6 (at least in this particular case).

Pedro Santos's icon

Just a quick update: I've adapted the above patch to use jit.gl.mesh in points and in tri_grid draw modes instead of using jit.gl.multiple to draw the particle system. A 100.000 particle system has the exact same behaviour in Max 5 and Max 6: about 60 fps.

So I guess the problem resides inside jit.gl.multiple.

Can anyone from Cycling'74 confirm this? Wesley? Robert? Joshua?

And maybe update the title of the thread to mention jit.gl.multiple as it seems that's the main problem here...

Thanks.

Max Patch
Copy patch and select New From Clipboard in Max.

Rob Ramirez's icon

hi pedro santos, thanks for the patch.

i'll take a look, and see if any improvements can be made to jit.gl.multiple for a future version.

Pedro Santos's icon

Thanks, Robert!

jaeho's icon

I have a similar problem, but with [ jit.gl.sketch ].

The patch works fast enough(30 fps) on Max 5, but very slow(10 fps) on Max 6.
(Since I can't upload the whole patch of mine here, but will provide a simplified version soon that can reproduce the problem.)

The clue I have is that [ jit.gl.sketch ] is not the problem but [ jit.window ] or an underlying mechanism.
When I delete [ jit.window ] and recreate it ('undo'), Max 6 shows as fast performance as Max 5.

This is not case for the Pedro's patch, but I'm writing this if the developers at Cycling74 can have some clues.

Rob Ramirez's icon

hey guys, just wanted to let you know that speed has been greatly improved for this specific situation or many instances of a low dim jit.gl.gridshape.

the trick is to set the jit.gl.gridshape @cache_mode attribute to "immediate" and enable @displaylist.

with those settings, i get performance comparable to max 5.
hope this helps.

Christopher Overstreet's icon

jit.gl.gridshape: "cache_mode" is not a valid attribute argument

Wesley Smith's icon

What version of Max are you using?

Christopher Overstreet's icon
Wesley Smith's icon

This feature is new in 6.1 I believe.

Pedro Santos's icon

Thank you Cycling for your efforts on the resolution of this performance problem! The performance gap was really substantial.