Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

New LSL Commands in 1.13.4

Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
03-01-2007 12:49
From: Joannah Cramer
llSetLinkPrimitivesParams(string linkname, list rules )
Oooo... that might have a bit more internal overhead, but it would be SO much easier for people to use that I think I'm going to say your suggestion beats my suggestion.

Either of them would do, though.
Talarus Luan
Ancient Archaean Dragon
Join date: 18 Mar 2006
Posts: 4,831
03-01-2007 13:30
From: Argent Stonecutter
You have too much faith in the dedication of programmers. Particularly ones who are not primarily programmers. Like the builders who make 200 prim attachments.

I mean, not only does this make the scripting much more complex, there are people who put separate scripts in the same prim in attachments to change the texture, color, and alpha. Seriously. The only way to get people to switch is to make the llSetLinkFoo() stuff *better* than the scripts.



Remember who you are talking to here. (Wearer of Daryth Kennedy's 600-800 prim quadraped Dragon avatars.. :P )

I think as advertised, it is better than the script-in-every-prim. We're already looking at ways to incorporate it most effectively in Daryth's avs so we can get rid of 80-90% of the scripts and not lose much functionality. Getting rid of the delay would be the best thing; I can already deal with the link selection issues pretty well.

Why LL continues to cling to script delays I will never know. Everyone knows how to get around them, and the workarounds end up causing more problems (lag, poor performance, etc) than the issues they are supposed to solve.
Lex Neva
wears dorky glasses
Join date: 27 Nov 2004
Posts: 1,361
03-02-2007 08:54
From: Talarus Luan
Remember who you are talking to here. (Wearer of Daryth Kennedy's 600-800 prim quadraped Dragon avatars.. :P )


You do realize that takes up a good half of a sim's nominal script processing power, right?
Talarus Luan
Ancient Archaean Dragon
Join date: 18 Mar 2006
Posts: 4,831
03-02-2007 10:34
From: Lex Neva
You do realize that takes up a good half of a sim's nominal script processing power, right?


Erm. Yep! The scripts in the latest gen are actually very lean as it is (only one listen per attachment; rest are controlled via link messages), but there are a lot of them.

Hence why we are on a crusade to further reduce their impact on sims.
Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
03-02-2007 12:38
From: Talarus Luan
...we are on a crusade to further reduce their impact on sims.
I suspect that you're already using less CPU per script than the worst offenders, and probably less CPU total even if you have more scripts.

So even if you drop completely off the radar, I'd still like to see Joannah's suggestion implemented. It would make it actually *easier* to do things the right way than to have a script in every prim.
Talarus Luan
Ancient Archaean Dragon
Join date: 18 Mar 2006
Posts: 4,831
03-02-2007 16:45
I agree, but if we're going to do it the "right way", ultimately, we need customizable avatar meshes/skeletons. ;)
Nargus Asturias
Registered User
Join date: 16 Sep 2005
Posts: 499
03-04-2007 08:12
EEeeeeee!!!! I'm going to have to redo lots of my scripts because of this. But I'm happy with it! :D :D :D
_____________________
Nargus Asturias, aka, StreamWarrior
Blue Eastern Water Dragon
Brown-skinned Utahraptor from an Old Time
Seagel Neville
Far East User
Join date: 2 Jan 2005
Posts: 1,476
03-04-2007 19:54
I'm now stopping an project until 1.13.4 is released. Hurry up, please. :D
_____________________
:) Seagel Neville :)
Gearsawe Stonecutter
Over there
Join date: 14 Sep 2005
Posts: 614
03-05-2007 07:52
I take a step out of Beta for one week and this happens!!!!

Woooooohoooooooo! *head explodes*
bucky Barkley
Registered User
Join date: 15 May 2006
Posts: 200
03-05-2007 14:06
>> Each with a 0.2 second sleep and rules as per their non link counterpart.

Wondering out loud.. I am guessing these do not happen in parallel, so if I
am updating 20 prims, I get a delay of 4 seconds??

Seems like this will lead some hacks.. linked messages to helper scripts
that take on 5 prims apiece ...

further thought.. freeing up some scripts from individual prims will lead to storing
more state info in root/controller scripts. Give us 64k, for crying out loud! :-)

(feels silly to be asking for 64k in 2007...)
Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
03-05-2007 14:52
From: bucky Barkley
Wondering out loud.. I am guessing these do not happen in parallel, so if I am updating 20 prims, I get a delay of 4 seconds??
Precisely why we're discussing ways to specify multiple prims at once.
Gearsawe Stonecutter
Over there
Join date: 14 Sep 2005
Posts: 614
03-05-2007 14:59
From: Lex Neva
I also have a question about llSetLinkTexture(). I'll try to get into Beta and test this when beta's up, but in the mean time: what happens if you specify the name of a no-copy texture in an object's inventory when using this function? For example, if I have a no-copy texture named "fred" in the root prim of an object, and I call this:

CODE

llSetLinkTexture(2, "fred", 1);


Will that set the texture fred onto side 1 of prim 2? Will that move the no-copy texture to prim 2? If the no-copy texture is already applied to the current prim, will it be unapplied in the process? Or did I just find a crack in the permissions system that allows you to use a texture multiple times even if it's no-copy?


Nope get an error "Texture not copiable". good thinking Lex.
Joannah Cramer
Registered User
Join date: 12 Apr 2006
Posts: 1,539
03-05-2007 17:37
From: bucky Barkley
(feels silly to be asking for 64k in 2007...)

64 kb * 5000 scripts in a sim * 4 sims per machine... ~1.2 gb of memory purely to store the scripts, nevermind everything else the server has to handle ^^
bucky Barkley
Registered User
Join date: 15 May 2006
Posts: 200
03-05-2007 23:26
From: Argent Stonecutter
Precisely why we're discussing ways to specify multiple prims at once.


Ya, I know.. it's very useful - just would be good to hear from a Linden why
it would be different from a linked message.

Next up.. quicktime cut scenes while the object behind it is busy getting updated :-)
Strife Onizuka
Moonchild
Join date: 3 Mar 2004
Posts: 5,887
We're not worthy
03-06-2007 05:21
From: Lex Neva
You do realize that takes up a good half of a sim's nominal script processing power, right?


Only if you send a LINK_SET or LINK_ALL_OTHERS; or cross a sim boarder (or if every script has a listen... or a timer...) . :p
_____________________
Truth is a river that is always splitting up into arms that reunite. Islanded between the arms, the inhabitants argue for a lifetime as to which is the main river.
- Cyril Connolly

Without the political will to find common ground, the continual friction of tactic and counter tactic, only creates suspicion and hatred and vengeance, and perpetuates the cycle of violence.
- James Nachtwey
Argent Stonecutter
Emergency Mustelid
Join date: 20 Sep 2005
Posts: 20,263
03-06-2007 08:47
From: Strife Onizuka
Only if you send a LINK_SET or LINK_ALL_OTHERS; or cross a sim boarder (or if every script has a listen... or a timer...) . :p

Have you quantified that?

I've thought that a lot of people are taking the "active scripts" numbers too seriously, and that a script just waiting on link messages shouldn't be using that much time, but I haven't tested it so I've been mostly holding my muzzle shut. If you've got some figures that'd be really nice.
Lex Neva
wears dorky glasses
Join date: 27 Nov 2004
Posts: 1,361
03-06-2007 09:46
From: Gearsawe Stonecutter
Nope get an error "Texture not copiable". good thinking Lex.


Well, I guess that's pretty much what I expected, although it would have been nice if it actually did attempt to move the texture over to the child prim or something. Thanks for testing this for me, Gearsawe!
Lex Neva
wears dorky glasses
Join date: 27 Nov 2004
Posts: 1,361
03-06-2007 09:47
From: Strife Onizuka
Only if you send a LINK_SET or LINK_ALL_OTHERS; or cross a sim boarder (or if every script has a listen... or a timer...) . :p


No, actually, what I meant was that "dormant" active scripts still take up a lot of Script Time. Here's a link to my research:

/54/8f/105133/1.html
bucky Barkley
Registered User
Join date: 15 May 2006
Posts: 200
03-06-2007 11:09
From: Joannah Cramer
64 kb * 5000 scripts in a sim * 4 sims per machine... ~1.2 gb of memory purely to store the scripts, nevermind everything else the server has to handle ^^



1) it's not an additional 1.2 gb of memory from what we have now

2) if you are running far fewer scripts, because you dont need to split up amongst multiple 16k segments, that's a win.. overall script memory footprint on a Sim could actually go down...

3) less context switching
Walker Moore
Fоrum Unregular
Join date: 14 May 2006
Posts: 1,458
03-06-2007 11:14
From: Milo Linden
These seem to have slipped from the release notes, but i know quite a few have been looking forward to these.

Currently on the aditi beta grid.

llSetLinkTexture(integer link_pos, string texture, integer face)
Sets the texture of face for link_pos
!

it's been a long time coming milo! i never really understand why llsetlinkcolor didn't have this sister function in the first place.

many thanks. =)
Haravikk Mistral
Registered User
Join date: 8 Oct 2005
Posts: 2,482
03-06-2007 13:16
From: Lex Neva
Now, before this goes out, can I BEG for a smallc hange in llSetLinkPrimitiveParams()?

People may still be inclined to use a whole slew of scripts in each prim of a link set rather than llSetLinkPrimitiveParams, llSetLinkTexture, or the other llSetLink* functions because that would be the only way to get a bunch of changes on a bunch of prims to happen all at the same instant. This is a real pain for the sim, because having so many scripts really hurts the sim's Script Time stat. So can you change it so that the link number is specified in the parameter list for llSetLinkPrimitiveParams for each rule?

*Agrees on this one*
For rotating parts of a linked set around a point (but not the whole linked-set) and things like that, this would be EXTREMELY useful with a corresponding llGetLinkPrimitiveParams() call. That way I can get the params of my objects, process through them, then apply all the changes at once. e.g:
llGetLinkPrimitiveParams(list links, list params) could return a list containing the values for each parameter you specified, with each 'row' being for a single link you specified in the links list.
_____________________
Computer (Mac Pro):
2 x Quad Core 3.2ghz Xeon
10gb DDR2 800mhz FB-DIMMS
4 x 750gb, 32mb cache hard-drives (RAID-0/striped)
NVidia GeForce 8800GT (512mb)
Talarus Luan
Ancient Archaean Dragon
Join date: 18 Mar 2006
Posts: 4,831
03-07-2007 09:16
From: Joannah Cramer
64 kb * 5000 scripts in a sim * 4 sims per machine... ~1.2 gb of memory purely to store the scripts, nevermind everything else the server has to handle ^^


1) Not every script *needs* 64k. Virtual memory allocation techniques can be used to control how much memory is really used by scripts. Allocating in the normal 4k page size would probably give enough resolution to at least halve that figure, on average.

2) 1.2GB on *server* machines these days is a drop in the bucket. 8, 16, and even 32GB of memory on servers is not entirely uncommon.
Haravikk Mistral
Registered User
Join date: 8 Oct 2005
Posts: 2,482
03-07-2007 10:52
From: Talarus Luan
2) 1.2GB on *server* machines these days is a drop in the bucket. 8, 16, and even 32GB of memory on servers is not entirely uncommon.

That depends. iirc the class 4 machines have 2gb RAM, which equates to around 512mb for each sim, minus overhead for all the stuff the simulator needs besides scripts.
So with 1.2gb of active scripts (that's where I'm assuming the figure of 5000 scripts comes from) then they need to be kept in RAM as much as possible in order for them to be any decent amount responsive, if they're constantly being fetched from the hard-drive then it just becomes impossibly slow.
IMO they should of course have more RAM really, as 512mb is barely anything when it comes down to it, especially for fairly fast machines as there simply isn't enough data in RAM to process and the result is that the processor spends far too much of its time idle.
I did post back on the old Linden answers forum but never got a response on any potential for a RAM upgrade in future. As really the class 3 and class 4 machines don't have that much difference, except that I think the class 3's had less RAM per core, if upgraded then both would perform far better. And even ECC (standard for servers) ram isn't that expensive these days.
_____________________
Computer (Mac Pro):
2 x Quad Core 3.2ghz Xeon
10gb DDR2 800mhz FB-DIMMS
4 x 750gb, 32mb cache hard-drives (RAID-0/striped)
NVidia GeForce 8800GT (512mb)
Joannah Cramer
Registered User
Join date: 12 Apr 2006
Posts: 1,539
03-07-2007 17:09
From: Talarus Luan
1) Not every script *needs* 64k. Virtual memory allocation techniques can be used to control how much memory is really used by scripts. Allocating in the normal 4k page size would probably give enough resolution to at least halve that figure, on average.


If i understand it right the forthcoming version of LSL based on Mono has some ability to allocate/free memory for scripts in smaller chunks (and dynamically adjust it on the fly) but that's still yet to come, and in the meantime the current version allocates fixed space per script no ifs and buts about it.

From: Talarus Luan
2) 1.2GB on *server* machines these days is a drop in the bucket. 8, 16, and even 32GB of memory on servers is not entirely uncommon.


Like pointed out, LL's class 4 servers are equipped with 2 gb of memory. Class 5 doubles that, for 4 gb per server.

My point was really that it's not some outrageous amount of space that the servers cannot currently handle, but rather to address the "what is 64 kb nowadays" sentiment. A single instance of 64 kb is indeed trivial and not worth fussing about, but this approach completely overlooks just how many instances of such small chunks the server actually has to handle ^^
Talarus Luan
Ancient Archaean Dragon
Join date: 18 Mar 2006
Posts: 4,831
03-07-2007 20:52
From: Joannah Cramer
If i understand it right the forthcoming version of LSL based on Mono has some ability to allocate/free memory for scripts in smaller chunks (and dynamically adjust it on the fly) but that's still yet to come, and in the meantime the current version allocates fixed space per script no ifs and buts about it.


As far as I knew, the request for 64kb was a "wishlist"-type request. I didn't read it as a "now, just do this next using only what you got right this second". ("asking for 64kb in 2007", I believe the OP said).

I am WELL AWARE of how the current version allocates space for scripts, thanks. :) That DOES NOT mean it can't be changed. It's software, remember? Maybe it is better to wait until we have Mono, but maybe it CAN be changed to be more efficient in terms of memory-management.

From: someone
Like pointed out, LL's class 4 servers are equipped with 2 gb of memory. Class 5 doubles that, for 4 gb per server.


Expandable to how much? How soon?

From: someone
My point was really that it's not some outrageous amount of space that the servers cannot currently handle, but rather to address the "what is 64 kb nowadays" sentiment. A single instance of 64 kb is indeed trivial and not worth fussing about, but this approach completely overlooks just how many instances of such small chunks the server actually has to handle ^^


I don't think it was a matter of overlooking anything. It was a simple "would be nice"-type request. Yeah, maybe it couldn't be done by the next update, but there's nothing saying it can't be looked at (and maybe it is; who knows?) in the near-term to see if it would be possible to do.

One of the many issues with SL is that you have to write hugely inefficient scripts in multiple pieces to get something remotely resembling a very efficient script which would fit in maybe double the space. So, which is better: A 32kb script limit, or everybody using up 64kb in 4 16kb scripts to approximate what they could get done with one in 32kb?

Personally, I think that sims should be coded to have a fixed max # of scripts, with the sim owner(s) scripts having priority over anyone else's. Then you can raise the memory limit, and lower the max scripts active, and many people would be happy. yeah, some folks with their 500-script gadgets or avs would hate it, but tough (and that comes from a 700-prim/script Dragon av owner here). I would MUCH rather have a less laggy / more stable simulation which is telling people "no you can't run anymore scripts, sorry".

Point is, there are tons of optimizations they COULD do to ease some of the restrictions on script size and execution, all without breaking very much existing functionality (if any at all). However, they are putting all their eggs in one basket, Mono, and have been for a couple years now. hopefully Mono will be the shiznit everyone thinks it is (I have my doubts, of course), but we can hope for some relief from the problems in between now and then.

I mean, we got llSetLinkPrimitiveParams, didn't we? That was a huge pipe dream of mine.
1 2 3