slab processing optimizations

Sep 27, 2006 at 10:23pm

slab processing optimizations

Hi list.
I’m trying to optimize a patch which contains a series of slab processing objects.
To optimize it, I can use the “enable 0″ message to turn off a particular slab when not in use or I can use gate objects to redirect the data, bypassing the slabs not in use. These techniques can improve the performance of the patch but I would like to know if it can be further optimized.

I thought that using the previous methods would be similar to not have the slab objects in the patch, but it’s not:
When I use a chain of 20 slabs (ex:sinefold), I get 45 fps
If I use a gate in the patch to bypass slabs 5-20, I get 55 fps.
If I remove the unused slabs from the patch, I get 120 fps.

Is this behaviour to be expected? I find it odd, because the slabs aren’t being fed with data to be processed at all, not even a bang…
If it is to be expected, is there a workaround to remove this unused slabs processing?

Thanks in advance.

Example patch:

#P window setfont “Sans Serif” 10.;
#P window linecount 1;
#P message 340 120 20 9109514 30;
#P newex 340 87 53 9109514 loadbang;
#P message 294 383 56 9109514 enable $1;
#P user gswitch2 141 375 39 32 0 0;
#P message 26 234 37 9109514 sync 0;
#P window setfont “Sans Serif” 9.;
#P flonum 340 142 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P message 340 168 73 9109513 param amp $1;
#P message 217 170 95 9109513 read td.sinefold.jxs;
#P newex 141 249 69 9109513 jit.gl.slab foo;
#B color 5;
#P newex 141 273 69 9109513 jit.gl.slab foo;
#B color 5;
#P newex 141 296 69 9109513 jit.gl.slab foo;
#B color 5;
#P newex 141 319 69 9109513 jit.gl.slab foo;
#B color 5;
#P window setfont “Sans Serif” 10.;
#P newex 26 258 73 9109514 jit.window foo;
#P window setfont “Sans Serif” 9.;
#P message 232 90 59 9109513 dim 320 240;
#P user jit.fpsgui 51 142 60 9109513 0;
#P number 74 39 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P toggle 29 39 15 0;
#P newex 29 65 55 9109513 qmetro 20;
#P newex 29 91 55 9109513 t b b erase;
#P newex 29 207 80 9109513 jit.gl.render foo;
#P newex 141 428 172 9109513 jit.gl.videoplane foo @scale 1.333 1. 1.;
#P message 166 90 65 9109513 dim 720 480;
#P message 204 55 28 9109513 read;
#P message 269 55 27 9109513 stop;
#P message 235 55 31 9109513 start;
#P toggle 141 36 15 0;
#P newex 141 55 55 9109513 metro 20;
#P newex 141 115 104 9109513 jit.qt.movie 320 240;
#P comment 157 36 149 9109513 • read a movie and start metro.;
#P toggle 299 351 15 0;
#P newex 435 247 69 9109513 jit.gl.slab foo;
#B color 5;
#P newex 435 271 69 9109513 jit.gl.slab foo;
#B color 5;
#P newex 435 294 69 9109513 jit.gl.slab foo;
#B color 5;
#P newex 435 317 69 9109513 jit.gl.slab foo;
#B color 5;
#P newex 360 248 69 9109513 jit.gl.slab foo;
#B color 5;
#P newex 360 272 69 9109513 jit.gl.slab foo;
#B color 5;
#P newex 360 295 69 9109513 jit.gl.slab foo;
#B color 5;
#P newex 360 318 69 9109513 jit.gl.slab foo;
#B color 5;
#P newex 287 248 69 9109513 jit.gl.slab foo;
#B color 5;
#P newex 287 272 69 9109513 jit.gl.slab foo;
#B color 5;
#P newex 287 295 69 9109513 jit.gl.slab foo;
#B color 5;
#P newex 287 318 69 9109513 jit.gl.slab foo;
#B color 5;
#P newex 214 249 69 9109513 jit.gl.slab foo;
#B color 5;
#P newex 214 273 69 9109513 jit.gl.slab foo;
#B color 5;
#P newex 214 296 69 9109513 jit.gl.slab foo;
#B color 5;
#P newex 214 319 69 9109513 jit.gl.slab foo;
#B color 5;
#P connect 42 0 25 0;
#P fasten 12 0 25 0 440 421 146 421;
#P connect 44 0 38 0;
#P connect 44 0 45 0;
#P connect 43 0 3 0;
#P connect 43 0 2 0;
#P connect 43 0 1 0;
#P connect 43 0 0 0;
#P connect 43 0 7 0;
#P connect 43 0 6 0;
#P connect 43 0 5 0;
#P connect 43 0 4 0;
#P connect 43 0 11 0;
#P connect 43 0 10 0;
#P connect 43 0 9 0;
#P connect 43 0 8 0;
#P connect 43 0 15 0;
#P connect 43 0 14 0;
#P connect 43 0 13 0;
#P connect 43 0 12 0;
#P connect 39 0 37 0;
#P connect 39 0 36 0;
#P connect 39 0 35 0;
#P connect 39 0 34 0;
#P connect 39 0 3 0;
#P connect 39 0 2 0;
#P connect 39 0 1 0;
#P connect 39 0 0 0;
#P connect 39 0 7 0;
#P connect 39 0 6 0;
#P connect 39 0 5 0;
#P connect 39 0 4 0;
#P connect 39 0 11 0;
#P connect 39 0 10 0;
#P connect 39 0 9 0;
#P connect 39 0 8 0;
#P connect 39 0 15 0;
#P connect 39 0 14 0;
#P connect 39 0 13 0;
#P connect 39 0 12 0;
#P connect 38 0 37 0;
#P connect 38 0 36 0;
#P connect 38 0 35 0;
#P connect 38 0 34 0;
#P connect 38 0 3 0;
#P connect 38 0 2 0;
#P connect 38 0 1 0;
#P connect 38 0 0 0;
#P connect 38 0 7 0;
#P connect 38 0 6 0;
#P connect 38 0 5 0;
#P connect 38 0 4 0;
#P connect 38 0 11 0;
#P connect 38 0 10 0;
#P connect 38 0 9 0;
#P connect 38 0 8 0;
#P connect 38 0 15 0;
#P connect 38 0 14 0;
#P connect 38 0 13 0;
#P connect 38 0 12 0;
#P connect 16 0 43 0;
#P connect 42 1 3 0;
#P connect 13 0 12 0;
#P connect 14 0 13 0;
#P connect 15 0 14 0;
#P connect 8 0 15 0;
#P connect 9 0 8 0;
#P connect 10 0 9 0;
#P connect 11 0 10 0;
#P connect 4 0 11 0;
#P connect 5 0 4 0;
#P connect 6 0 5 0;
#P connect 7 0 6 0;
#P connect 0 0 7 0;
#P connect 1 0 0 0;
#P connect 2 0 1 0;
#P connect 3 0 2 0;
#P connect 41 0 33 0;
#P connect 29 0 28 0;
#P connect 28 0 27 0;
#P fasten 27 2 26 0 78 124 34 124;
#P connect 27 0 26 0;
#P connect 27 1 31 0;
#P connect 30 0 28 1;
#P connect 20 0 19 0;
#P connect 24 0 18 0;
#P fasten 19 0 18 0 146 82 146 82;
#P fasten 23 0 18 0 209 82 146 82;
#P fasten 22 0 18 0 274 82 146 82;
#P fasten 21 0 18 0 240 82 146 82;
#P connect 32 0 18 0;
#P connect 18 0 37 0;
#P connect 37 0 36 0;
#P connect 36 0 35 0;
#P connect 35 0 34 0;
#P connect 34 0 42 1;
#P connect 45 0 40 0;
#P connect 40 0 39 0;
#P window clipboard copycount 46;

#27840
Sep 27, 2006 at 10:30pm

On Sep 27, 2006, at 3:23 PM, Pedro Santos wrote:

> Is this behaviour to be expected? Thanks in advance.

It is if you’re using 1.5.2 or earlier. Should be resolved in Jitter
1.5.3 and 1.6.X. As always, platform and version number is essential
to any report.

-Joshua

#84756

You must be logged in to reply to this topic.