crash when using Max Runtime

Aug 31, 2006 at 9:37pm

crash when using Max Runtime

Dear Interweb friends,

I am working on splitting up a Jitter patch into Max and Max Runtime
sections in order to take advantage of multiprocessors. My patches work
correctly when all loading into Max, but as soon as one of them is
loading into Max Runtime they function incorrectly. Jitter matrices are
being passed from the main Max section to the Runtime section and back
via jit.net.send (on an arbitrary port 8000 and 8001). As soon as
information begins traveling over this connection, the patch in the
Runtime hangs. The Max section is unaffected.

However, this hang does not occur when all patches are loading inside of
full Max.

This crash happens on both Windows XP SP 2 w/ Max 4.5.7 (Jitter 1.5.2)
and Mac OS X 10.4.7 with Max 4.5.7 and Jitter 1.5.3 Beta.

I apologize for not being able to provide an example patch right now,
but I am working on making the issue appear in as small a circumstance
as possible.

Via the thread on the Max list about Thread viewer, here is the stack
from the main thread, for Max Runtime up until it hangs:

0x194cc58
0x203dc07c
0x203dcce8
object_method
0x4c03b1c
0x4ba0c80
0x4ba0be0
typedmess_fun
outlet_anything
0x200aa1b8
0x4ba0f20
0x4ba0488
0x4ba0e6c
typedmess_fun
typedmess
0x200a9e8c
outlet_bang
trigger_iterate__FP6unpackldP6symbolP6symbolsP4atoms
trigger_anything__FP6unpackP6symbolsP4atom
typedmess_fun
outlet_anything
0x4be3350
0x4ba0f20
0x4ba0488
0x4ba0e6c
typedmess_fun
typedmess
0x4be3240
outlet_bang
trigger_iterate__FP6unpackldP6symbolP6symbolsP4atoms
trigger_anything__FP6unpackP6symbolsP4atom
typedmess_fun
outlet_anything
0x4be3350
0x99dfa2c
0x4be2fe0
0x99df890
typedmess_fun
outlet_anything
0x200aa1b8
0x200ab4f4
typedmess_fun
outlet_anything
0x4be3350
0x4be3060
typedmess_fun
outlet_anything
0x200aa1b8
0x200ab4f4
typedmess_fun
outlet_anything
typedmess_fun
typedmess
inlet_anything
typedmess_fun
outlet_anything
0x1fe94d9c
0x1fe94c9c
object_method
linklist_methodall
object_notify
0x4c04454
0x1fe97274
sched_dequeue
max_doeventtimerproc
max_eventtimerproc
__CFRunLoopDoTimer
__CFRunLoopRun
CFRunLoopRunSpecific
RunCurrentEventLoopInMode
ReceiveNextEventCommon
AcquireNextEventInMode
RunApplicationEventLoop
app_run
main


barry threw :: sound | (if you would see the stars clearly,
http://www.barrythrew.com | look hard at the surrounding darkness)
bthrew(at)gmail(dot)com | -Ooka Makoto
857-544-3967 |

#27415
Aug 31, 2006 at 10:02pm

On Aug 31, 2006, at 2:37 PM, Barry Threw wrote:

>
> Via the thread on the Max list about Thread viewer, here is the
> stack from the main thread, for Max Runtime up until it hangs:
>
> 0x194cc58
> 0x203dc07c
> 0x203dcce8
> object_method

Unfortunately this stack doesn’t give us much information, since it
is just for the most part just presenting addresses rather than
function names. More details, including simple example patch etc
would be necessary for us to investigate further.

-Joshua

#82943
Aug 31, 2006 at 11:34pm

Ask and ye shall receive…

Josh, the second section of this patch should look familiar. As I
mentioned, open both of these in Max Full and it works fine. Open the
second patch in Runtime and it crashes, regardless of OS.

Thanks for suffering for our art,

===========
MaxFull.pat
===========

max v2;
#N vpatcher 6 46 557 327;
#P origin 0 -38;
#P window setfont “Sans Serif” 9.;
#P window linecount 5;
#P comment 268 195 122 196617 Tested under OS X 10.4.7 , Max 4.5.7 ,
Jitter 1.5.3 beta and Windows XP SP 2 , Max 4.5.7 , Jitter 1.5.2;
#P window linecount 1;
#P comment 268 181 122 196617 To be opened in Max Full.;
#P user jit.pwindow 148 68 82 62 0 1 0 0 1 0;
#P flonum 69 22 35 9 0.5 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P toggle 22 22 15 0;
#P newex 22 42 57 196617 metro 40;
#P user jit.pwindow 40 93 82 62 0 1 0 0 1 0;
#P message 111 22 50 196617 read;
#B color 14;
#P newex 22 66 76 196617 jit.qt.movie;
#P newex 325 65 50 196617 t b s;
#P message 197 140 53 196617 POLO!;
#P newex 365 116 85 196617 print Vid.Return;
#P flonum 435 88 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P toggle 383 85 28 0;
#P newex 383 65 115 196617 route connected latency;
#P newex 267 46 126 196617 jit.net.recv @port 7781;
#B color 12;
#P comment 127 202 21 196617 ms;
#P flonum 74 200 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P toggle 22 197 28 0;
#P newex 22 177 115 196617 route connected latency;
#P newex 22 157 185 196617 jit.net.send @port 7780;
#B color 12;
#P window linecount 2;
#P comment 162 22 100 196617 Just load a movie and play it.;
#P connect 17 0 16 0;
#P connect 16 0 13 0;
#P connect 14 0 13 0;
#P connect 13 0 1 0;
#P connect 1 0 2 0;
#P connect 2 0 3 0;
#P connect 13 0 15 0;
#P connect 18 0 16 1;
#P connect 2 1 4 0;
#P fasten 6 0 19 0 272 65 154 65;
#P fasten 12 0 11 0 330 132 202 132;
#P connect 11 0 1 1;
#P connect 6 1 12 0;
#P connect 12 1 10 0;
#P connect 6 2 7 0;
#P connect 7 0 8 0;
#P connect 7 1 9 0;
#P pop;

============
Runtime.pat
============

max v2;
#N vpatcher 86 323 1138 792;
#P origin 8 86;
#P window setfont “Sans Serif” 9.;
#P window linecount 6;
#P comment 144 298 122 196617 Note: This hang only occurs for me when
this patch is opened in Runtime. When both are opened in Max Full ,
everything runs fine.;
#B color 14;
#P window linecount 5;
#P comment 17 338 122 196617 Tested under OS X 10.4.7 , Max 4.5.7 ,
Jitter 1.5.3 beta and Windows XP SP 2 , Max 4.5.7 , Jitter 1.5.2;
#P window linecount 3;
#P comment 18 299 122 196617 To be opened in Max Runtime. As soon as the
movie start , this hangs.;
#P user jit.fpsgui 402 381 60 196617 0;
#P user jit.pwindow 74 77 82 62 0 1 0 0 1 0;
#P window linecount 1;
#P message 758 53 48 196617 0.5;
#P user jit.pwindow 671 376 82 62 0 1 0 0 1 0;
#P newex 253 70 73 196617 print Vid.Send;
#P newex 417 90 31 196617 print;
#P toggle 340 90 28 0;
#P newex 340 70 87 196617 route connected;
#P newex 166 46 185 196617 jit.net.recv @port 7780;
#B color 12;
#P newex 643 337 89 196617 loadmess MARCO!;
#P comment 572 416 21 196617 ms;
#P flonum 519 416 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P toggle 467 416 15 0;
#P newex 467 396 115 196617 route connected latency;
#P newex 467 376 168 196617 jit.net.send @port 7781;
#B color 12;
#P message 697 53 48 196617 256 256;
#P newex 467 347 168 196617 jit.matrix DispLocal @dim 320 240;
#P newex 166 215 50 196617 t b;
#P newex 697 26 50 196617 loadbang;
#P message 697 72 55 196617 dim $1 $2;
#P newex 166 158 239 196617 jit.scalebias 4 char 256 256 @mode 1 @scale
0.33;
#P newex 166 196 151 196617 jit.op 1 float32 256 256 @op *;
#P newex 176 139 144 196617 prepend texture movietexture;
#P newex 166 234 210 196617 jit.pack 5 float32 256 256 @out_name geom;
#P newex 166 177 225 196617 jit.matrix 1 float32 256 256 @thru 1 @interp 0;
#P newex 166 120 263 196617 jit.matrix 4 char 256 256 @planemap 1 1 2 3
@interp 1;
#P newex 166 253 55 196617 t b b erase;
#P window linecount 4;
#P message 808 53 211 196617 lookat 0 0 0 , camera 0. -0.5 1.5 , color
1. 1. 1. 0.5 , erase_color 0. 0. 0. 1. , depth_enable 1 , texture
movietexture 256 256 , usetexture movietexture , quad_grid;
#P window linecount 5;
#P message 755 163 122 196617 plane 0 , -0.5 -0.5 0.5 0.5 , plane 1 ,
-0.5 0.5 -0.5 0.5 , plane 2 , 0. 0. 0. 0. , plane 3 , 0. 1. 0. 1. ,
plane 4 , 0. 0. 1. 1.;
#P window linecount 2;
#P newex 755 248 98 196617 jit.matrix small 5 float32 2 2;
#P window linecount 1;
#P newex 755 229 98 196617 jit.fill small;
#P newex 755 287 214 196617 jit.matrix geom 5 float32 256 256 @interp 1;
#P newex 467 321 109 196617 jit.gl.render DispLocal;
#P connect 24 0 31 0;
#P connect 13 0 7 0;
#P connect 24 0 7 0;
#P connect 13 0 12 0;
#P connect 7 0 12 0;
#P connect 13 0 8 0;
#P connect 12 0 8 0;
#P connect 13 0 11 0;
#P connect 8 0 11 0;
#P connect 11 0 15 0;
#P connect 13 0 9 0;
#P connect 15 0 9 0;
#P connect 9 0 6 0;
#P connect 7 0 10 0;
#P connect 24 1 28 0;
#P connect 11 0 9 2;
#P connect 30 0 11 1;
#P connect 24 2 25 0;
#P connect 25 0 26 0;
#P connect 16 0 32 0;
#P connect 25 1 27 0;
#P fasten 1 0 0 0 760 312 472 312;
#P connect 10 0 0 0;
#P connect 6 2 0 0;
#P connect 6 0 0 0;
#P connect 5 0 0 0;
#P connect 0 0 16 0;
#P connect 16 0 18 0;
#P connect 18 0 19 0;
#P connect 19 0 20 0;
#P connect 19 1 21 0;
#P connect 23 0 18 1;
#P fasten 16 0 29 0 472 370 677 370;
#P connect 14 0 17 0;
#P connect 17 0 13 0;
#P connect 14 0 4 0;
#P connect 4 0 2 0;
#P connect 2 0 3 0;
#P connect 13 0 1 0;
#P connect 3 0 1 0;
#P fasten 6 1 1 0 193 281 760 281;
#P connect 14 0 30 0;
#P connect 14 0 5 0;
#P pop;

=============

Thanks again,

barry

Joshua Kit Clayton wrote:
>
> On Aug 31, 2006, at 2:37 PM, Barry Threw wrote:
>
>>
>> Via the thread on the Max list about Thread viewer, here is the stack
>> from the main thread, for Max Runtime up until it hangs:
>>
>> 0x194cc58
>> 0x203dc07c
>> 0x203dcce8
>> object_method
>
> Unfortunately this stack doesn’t give us much information, since it is
> just for the most part just presenting addresses rather than function
> names. More details, including simple example patch etc would be
> necessary for us to investigate further.
>
> -Joshua
>


barry threw :: sound | (if you would see the stars clearly,
http://www.barrythrew.com | look hard at the surrounding darkness)
bthrew(at)gmail(dot)com | -Ooka Makoto
857-544-3967 |

#82944
Sep 1, 2006 at 1:36am

On Aug 31, 2006, at 4:34 PM, Barry Threw wrote:

> Ask and ye shall receive…
>
> Josh, the second section of this patch should look familiar. As I
> mentioned, open both of these in Max Full and it works fine. Open
> the second patch in Runtime and it crashes, regardless of OS.

You’re actually not deadlocking here, what doesn’t happen if it’s all
in one application is that jit.matrix doesn’t let any more matrices
through while the other one is being processed (everything aside from
the matrix being sent across the networking objects happens in the
main application thread). In your patch, you are backlogging the
slave patch by sending too many matrices and it’s totally bogged down
with trying to process matrices that you can hardly get a UI event in
(in which case the OS gives a spinning wheel).

You will need to redesign your patch to either use a slower metro
that doesn’t overdrive the slave, or use some clever logic to not
send another matrix until the last one is sent through. I’ve taken
the time to build a version of your master patch that uses gates to
only send one matrix until it hears back from the client.

However, I’d like to point out that using this older jit.gl.render
strategy for the height field as well as rendering to a jit.matrix
directly is going to be incredibly slow no matter what. (getting back
to Keith’s original thread on performance). I would recommend that
you render to a HW context using the jit.gl.mesh example I posted for
you guys and then read back the bits back to RAM via (@capture or
jit.gl.render to_texture)->jit.gl.slab->jit.matrix or the
jit.gl.sketch glreadpixels command. I’ve made a version of your
client patch which uses to_texture->slab->jit.matrix, but this
requires the latest jitter (1.6 XP or UB, or 1.5.3 CFM) to work
properly.

And don’t forget to get rid of all extra pwindows (or at least turn
off the onscreen attribute for downscaled versions, as mentioned in
jit.pwindow.help->tips) to get better performance once you’re through
debugging.

-Joshua

MASTER_PATCH:

#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P message 29 167 14 196617 1;
#P newex 194 144 29 196617 t 1 l;
#P newex 82 139 29 196617 t 0 l;
#P newex 82 218 29 196617 gate;
#P user jit.pwindow 213 208 82 62 0 0 0 0 1 0;
#P flonum 129 29 35 9 0.5 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P toggle 82 29 15 0;
#P newex 82 49 57 196617 metro 40;
#P user jit.pwindow 119 209 82 62 0 0 0 0 1 0;
#P message 171 29 50 196617 read;
#B color 14;
#P newex 82 73 76 196617 jit.qt.movie;
#P newex 371 110 50 196617 t b s;
#P message 257 290 53 196617 POLO!;
#P newex 411 161 85 196617 print Vid.Return;
#P flonum 481 133 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P toggle 429 130 28 0;
#P newex 429 110 115 196617 route connected latency;
#P newex 313 91 126 196617 jit.net.recv @port 7781;
#B color 12;
#P comment 187 352 21 196617 ms;
#P flonum 134 350 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P toggle 82 347 28 0;
#P newex 82 327 115 196617 route connected latency;
#P newex 82 307 185 196617 jit.net.send @port 7780;
#B color 12;
#P window linecount 2;
#P comment 229 31 100 196617 Just load a movie and play it.;
#P comment 0 140 76 196617 turn on gate for first matrix;
#P window linecount 3;
#P comment 97 94 146 196617 for each matrix , close the gate until
we’ve heard back about the round trip , then open;
#P connect 9 1 11 0;
#P connect 9 0 10 0;
#P connect 8 2 9 0;
#P connect 14 1 12 0;
#P connect 8 1 14 0;
#P connect 13 0 3 1;
#P fasten 14 0 13 0 376 283 262 283;
#P connect 24 1 21 0;
#P connect 8 0 24 0;
#P connect 4 1 6 0;
#P connect 20 0 18 1;
#P connect 23 1 17 0;
#P connect 23 1 22 1;
#P connect 4 0 5 0;
#P connect 3 0 4 0;
#P connect 22 0 3 0;
#P connect 23 0 22 0;
#P connect 25 0 22 0;
#P connect 24 0 22 0;
#P connect 15 0 23 0;
#P connect 18 0 15 0;
#P connect 16 0 15 0;
#P connect 19 0 18 0;
#P window clipboard copycount 26;

CLIENT_PATCH:

#P toggle 799 445 15 0;
#P window setfont “Sans Serif” 9.;
#P window linecount 1;
#P message 788 470 44 196617 fsaa $1;
#P newex 245 194 23 196617 t b;
#P newex 226 82 29 196617 t b l;
#P toggle 463 263 15 0;
#P message 463 286 88 196617 poly_mode $1 $1;
#P hidden newex 382 232 69 196617 loadmess 0.5;
#P hidden newex 518 136 48 196617 loadbang;
#P message 649 192 244 196617 exprfill 0 “norm[0]” , exprfill 1 “1.-
norm[1]” , bang;
#P newex 649 224 190 196617 jit.matrix texcoords 2 float32 320 240;
#P message 461 170 222 196617 exprfill 0 “snorm[0]” , exprfill 1 “-
snorm[1]” ,;
#P newex 461 202 168 196617 jit.matrix geom 3 float32 320 240;
#P flonum 380 257 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 340 258 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P flonum 298 258 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 269 282 99 196617 pak scale 1. 1. 0.25;
#P newex 268 145 180 196617 jit.gl.texture DispLocal @name mytex;
#P newex 245 335 364 196617 jit.gl.mesh DispLocal @draw_mode tri_grid
@texture mytex @color 1. 1. 1. 1.;
#P newex 245 213 211 196617 jit.pack 3 float32 320 240 @out_name geom;
#P newex 245 169 203 196617 jit.matrix 1 float32 320 240 @planemap 2;
#P newex 558 608 98 196617 jit.gl.slab DispLocal;
#P newex 558 580 192 196617 jit.gl.texture DispLocal @name DispCopy;
#P newex 685 490 287 196617 jit.window DispLocal @depthbuffer 1 @size
320 240 @sync 0;
#P user jit.fpsgui 494 685 60 196617 0;
#P user jit.pwindow 134 73 82 62 0 0 0 0 1 0;
#P user jit.pwindow 763 680 82 62 0 0 0 0 1 0;
#P newex 313 66 73 196617 print Vid.Send;
#P newex 477 86 31 196617 print;
#P toggle 400 86 28 0;
#P newex 400 66 87 196617 route connected;
#P newex 226 42 185 196617 jit.net.recv @port 7780;
#B color 12;
#P newex 735 641 89 196617 loadmess MARCO!;
#P comment 664 720 21 196617 ms;
#P flonum 611 720 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P toggle 559 720 15 0;
#P newex 559 700 115 196617 route connected latency;
#P newex 559 680 168 196617 jit.net.send @port 7781;
#B color 12;
#P newex 558 651 55 196617 jit.matrix;
#P newex 555 405 50 196617 loadbang;
#P window linecount 2;
#P message 556 430 220 196617 lookat 0 0 0 , camera 0. -0.5 1.5 ,
color 1. 1. 1. 0.5 , erase_color 0. 0. 0. 1. , depth_enable 1;
#P window linecount 1;
#P newex 559 504 109 196617 jit.gl.render DispLocal;
#P newex 257 425 132 196617 t swap b drawclients erase;
#P message 297 453 159 196617 usetexture DispCopy , to_texture;
#P connect 5 0 19 0;
#P connect 5 0 6 0;
#P fasten 5 0 17 0 563 674 769 674;
#P connect 42 0 41 0;
#P connect 11 0 6 1;
#P connect 41 0 20 0;
#P connect 34 0 33 0;
#P hidden connect 35 0 32 0;
#P hidden connect 35 0 34 0;
#P connect 7 1 9 0;
#P connect 7 0 8 0;
#P connect 6 0 7 0;
#P connect 3 0 2 0;
#P connect 0 0 2 0;
#P connect 1 2 2 0;
#P connect 1 3 2 0;
#P connect 1 0 2 0;
#P connect 22 0 5 0;
#P connect 21 0 22 0;
#P connect 1 1 0 0;
#P connect 1 1 21 0;
#P connect 4 0 3 0;
#P connect 13 1 15 0;
#P connect 38 0 37 0;
#P connect 32 0 31 0;
#P connect 23 0 40 0;
#P connect 23 0 24 2;
#P connect 13 0 14 0;
#P connect 12 2 13 0;
#P hidden connect 36 0 30 0;
#P connect 30 0 27 3;
#P connect 29 0 27 2;
#P connect 12 1 16 0;
#P connect 28 0 27 1;
#P fasten 33 0 25 1 654 323 294 323;
#P connect 39 1 23 0;
#P connect 39 1 26 0;
#P fasten 39 0 1 0 169 281 185 414;
#P fasten 27 0 25 0 274 310 250 310;
#P fasten 37 0 25 0 468 316 250 316;
#P connect 24 0 25 0;
#P connect 40 0 24 0;
#P connect 12 0 39 0;
#P connect 12 0 18 0;
#P window clipboard copycount 43;

#82945
Sep 1, 2006 at 2:28am

Thanks a lot. I appreciate your support.

The only reason we were not using your modified version at this point
was because the effect wasn’t quite the same and we didn’t have the time
to message it to reproduce the known effects we desired right now.

But that is our issue, not yours, I’m a fan of the new version.

Thanks again,

barry

Joshua Kit Clayton wrote:
>
> On Aug 31, 2006, at 4:34 PM, Barry Threw wrote:
>
>> Ask and ye shall receive…
>>
>> Josh, the second section of this patch should look familiar. As I
>> mentioned, open both of these in Max Full and it works fine. Open the
>> second patch in Runtime and it crashes, regardless of OS.
>
>
> You’re actually not deadlocking here, what doesn’t happen if it’s all in
> one application is that jit.matrix doesn’t let any more matrices through
> while the other one is being processed (everything aside from the matrix
> being sent across the networking objects happens in the main application
> thread). In your patch, you are backlogging the slave patch by sending
> too many matrices and it’s totally bogged down with trying to process
> matrices that you can hardly get a UI event in (in which case the OS
> gives a spinning wheel).
>
> You will need to redesign your patch to either use a slower metro that
> doesn’t overdrive the slave, or use some clever logic to not send
> another matrix until the last one is sent through. I’ve taken the time
> to build a version of your master patch that uses gates to only send one
> matrix until it hears back from the client.
>
> However, I’d like to point out that using this older jit.gl.render
> strategy for the height field as well as rendering to a jit.matrix
> directly is going to be incredibly slow no matter what. (getting back to
> Keith’s original thread on performance). I would recommend that you
> render to a HW context using the jit.gl.mesh example I posted for you
> guys and then read back the bits back to RAM via (@capture or
> jit.gl.render to_texture)->jit.gl.slab->jit.matrix or the jit.gl.sketch
> glreadpixels command. I’ve made a version of your client patch which
> uses to_texture->slab->jit.matrix, but this requires the latest jitter
> (1.6 XP or UB, or 1.5.3 CFM) to work properly.
>
> And don’t forget to get rid of all extra pwindows (or at least turn off
> the onscreen attribute for downscaled versions, as mentioned in
> jit.pwindow.help->tips) to get better performance once you’re through
> debugging.
>
> -Joshua
>
>
> MASTER_PATCH:
>
> #P window setfont “Sans Serif” 9.;
> #P window linecount 1;
> #P message 29 167 14 196617 1;
> #P newex 194 144 29 196617 t 1 l;
> #P newex 82 139 29 196617 t 0 l;
> #P newex 82 218 29 196617 gate;
> #P user jit.pwindow 213 208 82 62 0 0 0 0 1 0;
> #P flonum 129 29 35 9 0.5 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P toggle 82 29 15 0;
> #P newex 82 49 57 196617 metro 40;
> #P user jit.pwindow 119 209 82 62 0 0 0 0 1 0;
> #P message 171 29 50 196617 read;
> #B color 14;
> #P newex 82 73 76 196617 jit.qt.movie;
> #P newex 371 110 50 196617 t b s;
> #P message 257 290 53 196617 POLO!;
> #P newex 411 161 85 196617 print Vid.Return;
> #P flonum 481 133 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P toggle 429 130 28 0;
> #P newex 429 110 115 196617 route connected latency;
> #P newex 313 91 126 196617 jit.net.recv @port 7781;
> #B color 12;
> #P comment 187 352 21 196617 ms;
> #P flonum 134 350 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P toggle 82 347 28 0;
> #P newex 82 327 115 196617 route connected latency;
> #P newex 82 307 185 196617 jit.net.send @port 7780;
> #B color 12;
> #P window linecount 2;
> #P comment 229 31 100 196617 Just load a movie and play it.;
> #P comment 0 140 76 196617 turn on gate for first matrix;
> #P window linecount 3;
> #P comment 97 94 146 196617 for each matrix , close the gate until
> we’ve heard back about the round trip , then open;
> #P connect 9 1 11 0;
> #P connect 9 0 10 0;
> #P connect 8 2 9 0;
> #P connect 14 1 12 0;
> #P connect 8 1 14 0;
> #P connect 13 0 3 1;
> #P fasten 14 0 13 0 376 283 262 283;
> #P connect 24 1 21 0;
> #P connect 8 0 24 0;
> #P connect 4 1 6 0;
> #P connect 20 0 18 1;
> #P connect 23 1 17 0;
> #P connect 23 1 22 1;
> #P connect 4 0 5 0;
> #P connect 3 0 4 0;
> #P connect 22 0 3 0;
> #P connect 23 0 22 0;
> #P connect 25 0 22 0;
> #P connect 24 0 22 0;
> #P connect 15 0 23 0;
> #P connect 18 0 15 0;
> #P connect 16 0 15 0;
> #P connect 19 0 18 0;
> #P window clipboard copycount 26;
>
>
>
> CLIENT_PATCH:
>
>
> #P toggle 799 445 15 0;
> #P window setfont “Sans Serif” 9.;
> #P window linecount 1;
> #P message 788 470 44 196617 fsaa $1;
> #P newex 245 194 23 196617 t b;
> #P newex 226 82 29 196617 t b l;
> #P toggle 463 263 15 0;
> #P message 463 286 88 196617 poly_mode $1 $1;
> #P hidden newex 382 232 69 196617 loadmess 0.5;
> #P hidden newex 518 136 48 196617 loadbang;
> #P message 649 192 244 196617 exprfill 0 “norm[0]” , exprfill 1
> “1.-norm[1]” , bang;
> #P newex 649 224 190 196617 jit.matrix texcoords 2 float32 320 240;
> #P message 461 170 222 196617 exprfill 0 “snorm[0]” , exprfill 1
> “-snorm[1]” ,;
> #P newex 461 202 168 196617 jit.matrix geom 3 float32 320 240;
> #P flonum 380 257 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 340 258 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P flonum 298 258 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P newex 269 282 99 196617 pak scale 1. 1. 0.25;
> #P newex 268 145 180 196617 jit.gl.texture DispLocal @name mytex;
> #P newex 245 335 364 196617 jit.gl.mesh DispLocal @draw_mode tri_grid
> @texture mytex @color 1. 1. 1. 1.;
> #P newex 245 213 211 196617 jit.pack 3 float32 320 240 @out_name geom;
> #P newex 245 169 203 196617 jit.matrix 1 float32 320 240 @planemap 2;
> #P newex 558 608 98 196617 jit.gl.slab DispLocal;
> #P newex 558 580 192 196617 jit.gl.texture DispLocal @name DispCopy;
> #P newex 685 490 287 196617 jit.window DispLocal @depthbuffer 1 @size
> 320 240 @sync 0;
> #P user jit.fpsgui 494 685 60 196617 0;
> #P user jit.pwindow 134 73 82 62 0 0 0 0 1 0;
> #P user jit.pwindow 763 680 82 62 0 0 0 0 1 0;
> #P newex 313 66 73 196617 print Vid.Send;
> #P newex 477 86 31 196617 print;
> #P toggle 400 86 28 0;
> #P newex 400 66 87 196617 route connected;
> #P newex 226 42 185 196617 jit.net.recv @port 7780;
> #B color 12;
> #P newex 735 641 89 196617 loadmess MARCO!;
> #P comment 664 720 21 196617 ms;
> #P flonum 611 720 50 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
> #P toggle 559 720 15 0;
> #P newex 559 700 115 196617 route connected latency;
> #P newex 559 680 168 196617 jit.net.send @port 7781;
> #B color 12;
> #P newex 558 651 55 196617 jit.matrix;
> #P newex 555 405 50 196617 loadbang;
> #P window linecount 2;
> #P message 556 430 220 196617 lookat 0 0 0 , camera 0. -0.5 1.5 ,
> color 1. 1. 1. 0.5 , erase_color 0. 0. 0. 1. , depth_enable 1;
> #P window linecount 1;
> #P newex 559 504 109 196617 jit.gl.render DispLocal;
> #P newex 257 425 132 196617 t swap b drawclients erase;
> #P message 297 453 159 196617 usetexture DispCopy , to_texture;
> #P connect 5 0 19 0;
> #P connect 5 0 6 0;
> #P fasten 5 0 17 0 563 674 769 674;
> #P connect 42 0 41 0;
> #P connect 11 0 6 1;
> #P connect 41 0 20 0;
> #P connect 34 0 33 0;
> #P hidden connect 35 0 32 0;
> #P hidden connect 35 0 34 0;
> #P connect 7 1 9 0;
> #P connect 7 0 8 0;
> #P connect 6 0 7 0;
> #P connect 3 0 2 0;
> #P connect 0 0 2 0;
> #P connect 1 2 2 0;
> #P connect 1 3 2 0;
> #P connect 1 0 2 0;
> #P connect 22 0 5 0;
> #P connect 21 0 22 0;
> #P connect 1 1 0 0;
> #P connect 1 1 21 0;
> #P connect 4 0 3 0;
> #P connect 13 1 15 0;
> #P connect 38 0 37 0;
> #P connect 32 0 31 0;
> #P connect 23 0 40 0;
> #P connect 23 0 24 2;
> #P connect 13 0 14 0;
> #P connect 12 2 13 0;
> #P hidden connect 36 0 30 0;
> #P connect 30 0 27 3;
> #P connect 29 0 27 2;
> #P connect 12 1 16 0;
> #P connect 28 0 27 1;
> #P fasten 33 0 25 1 654 323 294 323;
> #P connect 39 1 23 0;
> #P connect 39 1 26 0;
> #P fasten 39 0 1 0 169 281 185 414;
> #P fasten 27 0 25 0 274 310 250 310;
> #P fasten 37 0 25 0 468 316 250 316;
> #P connect 24 0 25 0;
> #P connect 40 0 24 0;
> #P connect 12 0 39 0;
> #P connect 12 0 18 0;
> #P window clipboard copycount 43;
>
>
>
>
>


barry threw :: sound | (if you would see the stars clearly,
http://www.barrythrew.com | look hard at the surrounding darkness)
bthrew(at)gmail(dot)com | -Ooka Makoto
857-544-3967 |

#82946

You must be logged in to reply to this topic.