Particle system benchmark
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
Can anybody run this and post the results for me to confirm this?
Thanks!
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
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.
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)
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).
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.
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.
Thanks, Robert!
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.
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.
jit.gl.gridshape: "cache_mode" is not a valid attribute argument
What version of Max are you using?
max 6.0.8
This feature is new in 6.1 I believe.
Thank you Cycling for your efforts on the resolution of this performance problem! The performance gap was really substantial.