Simulator User Group/Transcripts/2011.09.06

Simulator_User_Group
Prev 2011.09.02	Next 2011.09.09
== List of Speakers ==
Andrew Linden 	Arawn Spitteler 	Draconis Neurocam
Fancy Greeter 	Flip Idlemind 	Imaze Rhiano
Kadah Coba 	Kaluura Boa 	Leonel Iceghost
Mercille Linden	Rex Cronon 	Sahkolihaa Contepomi
Simon Linden 	TankMaster Finesmith	Techwolf Lupindo
Vincent Nacon 	 	
== Transcript ==
[12:02] Rex Cronon: greetings everybody
[12:02] Simon Linden: That happened a while ago, Arawn
[12:03] Arawn Spitteler: Are you still allowed to hire in that state?
[12:03] Draconis Neurocam: hello mercille and andrew
[12:03] Simon Linden: California? Yes
[12:03] Mercille Linden: man I need more scripts - I'm not even in the top 3
[12:04] Simon Linden: You need to stock up on HUDs :)
[12:04] Imaze Rhiano: you need hair with old style resizer
[12:04] Andrew Linden: Since yesterday was a holiday here in the US, there was very little work done between last Friday meeting and now.
[12:04] Leonel Iceghost: make yourself a database script of something
[12:05] Andrew Linden: I recall (now) that I was going to try to run some of my own benchmarks on my "faster scripts" project on aditi, but did not get to it.
[12:05] Andrew Linden: This morning I've been working on getting some unit tests functioning again in that project.
[12:05] Andrew Linden: which needs to be done, but isn't very interesting.
[12:06] Andrew Linden: One of the things we talked about on Friday was a revisit of that "projectiles get stuck" bug that was introduced in the Havok7 project. Lemme find that jira number again...
[12:07] Andrew Linden: SVC-5927
[12:07] JIRA-helper: http://jira.secondlife.com/browse/SVC-5927
[#SVC-5927] Temp on Rezzed objects get queued
[12:08] Andrew Linden: I was thinking about that problem on my way home
[12:08] Techwolf Lupindo: I remember that if parcel is set to no object entry, one could throw stuff a ti and it frezzes in mid air. Make for great fun at times. :-)
[12:08] Andrew Linden: and had an idea on something to try.
[12:08] Draconis Neurocam: what is your idea?
[12:09] Andrew Linden: I've got too many projects on my plate as it is, but I was thinking about taking a swing at that and putting up a test region somewhere.
[12:09] Andrew Linden: Well, when I looked at the code I saw that it kicks in for one of three reasons...
[12:10] Andrew Linden: (1) Too many objects to move within a physics frame
[12:10] Andrew Linden: (2) Physics FPS is "critical" (I think < 15 fps)
[12:10] Fancy Greeter: Kelly Linden has arrived!
[12:11] Andrew Linden: (3) too much memory consumption in the physics engine (from creating collision points when adding objects to the world (I think))
[12:11] Andrew Linden: The behavior was really designed to protect against (3) since that is what can affect the entire host (and the other simulator processes on it).
[12:12] Andrew Linden: So I figured I would only trigger on that one logic condition, and also look into how objects get "unfrozen" to see if there are any logic problems there.
[12:12] Draconis Neurocam: interesting
[12:13] Andrew Linden: But I'll need to run some "tests" and I don't have the content or fighters to trigger the problem.
[12:13] Andrew Linden: So anyway, if I manage to get such a test project up, I may look for some volunteers to help me test it out.
[12:13] Andrew Linden: No need to volunteer now
[12:13] Rex Cronon: i think once an on object freezes, it can't come out of it
[12:13] Andrew Linden: I'll make a more formal request once I have something.
[12:14] Andrew Linden: I'll probably put up a hacked simulator on agni with the test code so we don't have to migrate everyone over to aditi to run a battle test.
[12:14] Andrew Linden: That's all the news I had today. The table is open
[12:15] Sahkolihaa Contepomi: Has there been any improvements regarding sim crosses, at all? Was actually driving along the mainland road yesterday and had some terrible crosses.
[12:15] Imaze Rhiano: I guess you can tinker it and improve code there, but in the end it comes really to scalability and architecture to allow more objects to rezzed world. I think it it would be better way to find alternatives for rezzing objects - like improving llCastRay function.
[12:16] Andrew Linden: No improvements have been shipped recently that I know of Sahkolihaa.
[12:16] Mercille Linden: Koli - yes and no
[12:16] Rex Cronon: why don't u have a cleaner that periodically unfreezs things when things r calm
[12:16] Leonel Iceghost: Andrew, instead of entering a frezeeing mode, can't you just don't process them till the next frame? and at the next frame keep from where you were at in the list
[12:17] Mercille Linden: yes, we have code in progress but it is still a little ways out
[12:17] Sahkolihaa Contepomi: Ah.
[12:18] Andrew Linden: Rex, I have to study the code a bit more to fully understand what can be done.
[12:19] Andrew Linden: If the simulator is hitting the memory problem in the physics engine it really is not helpfull to proceed anyway.
[12:19] Andrew Linden: However, the the other two cases it might be ok.
[12:20] Rex Cronon: it looks like the sim forgets it froze things
[12:20] Andrew Linden: What I've noticed is that the battle-play that goes on in SL doesn't have a decent throttle... except for lag.
[12:20] Andrew Linden: Fighters will just rez lots of stuff as fast as they can... it is within their interest to do so, to win the game.
[12:21] Andrew Linden: Of course, there is a tragedy of the commons, and the system just can't supply the demand.
[12:21] Draconis Neurocam: which is why it would be nice to have raycast detection, so it would just be theoretical objects, with less demand
[12:21] Andrew Linden: There will always be more demand. It is the nature of the game being played.
[12:21] Andrew Linden: So that reminds me of my other idea on that project...
[12:22] Andrew Linden: I was thinking about adding a feedback loop into the LSL rez code
[12:22] Rex Cronon: there won't less laggy. the scripts will have to compute trajectories and react to collisions
[12:22] Leonel Iceghost: Andrew, if (3) hits, and it uses too much memory, how does it improve by just frezee all and wait? the memory is still used when unfrezeeing?
[12:22] Rex Cronon: won't be*
[12:22] Andrew Linden: to slow down rezzes when rezzes are already too high.
[12:22] Andrew Linden: What really freezes Leonel is the addition of the physics body to the physics engine.
[12:23] Andrew Linden: Since the "visible" location of the projectile is following the physical body (which isn't moving) the apparent position does not move.
[12:23] Andrew Linden: Adding the object's physics body to the world when the phys engine is already dying for memory does not help.
[12:24] Andrew Linden: The reason it is dying for memory has more to do with the collision points that are being generated.
[12:24] Andrew Linden: When objects are created on top of each other (in penetration) the number of collision points generated per frame can be high.
[12:25] Andrew Linden: So much of the memory is used to hold collision points which are somewhat "temporary"...
[12:25] Andrew Linden: they persist across physics frames, but tend to be reaped when objects stop colliding
[12:26] Andrew Linden: I suspect most of the "problem" objects are actually multiple copies of projectiles that are being rezzed on top of each other.
[12:26] Andrew Linden: When things slow down, but scripts continue to rez like crazy things start to stack up, and provide positive feedback.
[12:27] Rex Cronon: u could not allow objects to be rezzed inside other solid objects:)
[12:27] Leonel Iceghost: when you turn an object colliding with an avatar not phantom, it doesn't get processed till the avatar goes away and come back
[12:27] Andrew Linden: Two armies rezzing arrows on top of each other in heavy lag is what triggers the problem.
[12:28] Andrew Linden: Hrm... I wonder if the solution could be helped using collision groups...
[12:28] Andrew Linden: The "collision group" of an object can be assigned, and particular groups can be configured to not collide with each other.
[12:28] Andrew Linden: However, we don't have an unlimited supply of collision groups.
[12:28] Draconis Neurocam: that would be wonderful
[12:29] Draconis Neurocam: collision filter is limited as it is
[12:29] Imaze Rhiano: I think that solution would be - find alternative for rezzing those arrows
[12:29] Rex Cronon: what is max nr of collision groups?
[12:29] Andrew Linden: If the simulator could "know" that some object being created is a "bullet" or "arrow" and shouldn't be colliding with other projectiles then I suspect that would help.
[12:29] Draconis Neurocam: mhm
[12:29] Andrew Linden: I think we have 31 collision groups to play with.
[12:30] Leonel Iceghost: that's not much
[12:30] Rex Cronon: it it usefull to have collisoion between projectiles
[12:30] Imaze Rhiano: doesn't havok have special build in methods to handle bullets?
[12:30] Rex Cronon: collision*
[12:30] Andrew Linden: And... we're already using about 6 of the collision groups.
[12:30] Meeter: Timecheck : User Group is half over
[12:31] Draconis Neurocam: just give people an option to set them to one of the collisions groups, and the option to filter collision via group
[12:32] Andrew Linden: per-object per-group filtering is not very efficient, but I think Havok provides enough hooks to do that
[12:32] Rex Cronon: there r shields that actually fire "projectiles" at incomming bullets. if shields and bullets can't intereact...
[12:32] Andrew Linden: the nice thing about collision groups is that the filtering can be done very early and cheaply
[12:32] Andrew Linden: I think it happens right after the "broadphase" but before the "narrophase" collision passes
[12:33] Andrew Linden: "broadphase" is just where potential colliding bounding boxes are built up
[12:33] Andrew Linden: and "narrowphase" is where the details of the collision (if any) is done
[12:34] Andrew Linden: Hrm... yeah I thought so Rex. We couldn't just turn on the collision group solution and break content...
[12:34] Andrew Linden: or maybe we could in certain circumstances... such as heavy memory consumption
[12:34] Andrew Linden: hrm...
[12:34] Leonel Iceghost: so when you turn an object not phantom and the avatar doesn't get still collisions, it is using those groups?
[12:35] Andrew Linden: I could assign all rezzed dynamic objects to a particular collision group and allow that group to collide with itself by default
[12:35] Andrew Linden: but if things go bad I could disable collisions for that group with itself
[12:36] Andrew Linden: Leonel, the behavior you're asking about is a special solution for "trapped avatars" inside some object.
[12:36] Andrew Linden: In that particular case it is a per-object-pair collision filter
[12:36] Andrew Linden: which is ok for a few pairs
[12:36] Rex Cronon: why can't u disallow rezing of physical objects inside other objects that are not phantom?
[12:37] Andrew Linden: but not something to which you'd want to add very large numbers of pairs
[12:37] Andrew Linden: Rex, you mean to first query whether the object would show up inside another object? And then not rez it if so?
[12:37] Rex Cronon: yes
[12:38] Andrew Linden: That would require a collision query, which requires us to add the object to the world to make it.
[12:38] Andrew Linden: Which defeats the purpose of the proposed solution.
[12:39] Rex Cronon: to me it looks like a lot of lag take place in physical objects trapped inside other objects try to get out
[12:39] Rex Cronon: takes places if physical*
[12:39] Andrew Linden: Ah, I think I've got a refinement of the idea...
[12:40] Andrew Linden: I could give all "temp and dynamic" objects a particular collision group (if they aren't something special already, such as "phantom")
[12:40] Andrew Linden: collisions between such objects would be enabled by default
[12:41] Andrew Linden: but if the phys engine starts to melt for too many collisions I can temporarily disable collisions within that group
[12:41] Leonel Iceghost: that would it fix those lag bombs too, isn't it?
[12:41] Andrew Linden: that is, temp+dynamic vs temp+dynamic
[12:41] Leonel Iceghost: that frezee the sim
[12:42] Andrew Linden: Leonel, I'm not sure... perhaps some lag bombs. There is more than one variety.
[12:43] Leonel Iceghost: is there a way you can "block" the rezzer to keep rezzing for a period?
[12:43] Andrew Linden: Leonel, you mean to "prevent" rezzing for a period?
[12:44] Leonel Iceghost: yes, don't process any physical rezzing with an object
[12:44] Leonel Iceghost: dynamic, that is
[12:44] Andrew Linden: Possibly, but that worries me... about broken content.
[12:44] Draconis Neurocam: yeah theres a blacklist for causing problems in the region, but i think its only tied to uuids, and would break some content yes
[12:45] Leonel Iceghost: just for dynamic and temp on rez objects, what could it break
[12:45] Andrew Linden: I probably wouldn't want to prevent all rezzes -- when preventing rezzes stuff can break.
[12:45] Andrew Linden: but it would be hard to make the simulator smart enough to know what could be rezzed and what could not.
[12:45] Scripttime Meeroo whispers: Simon Linden will you please pick me up and snuggle me?
[12:45] Techwolf Lupindo: Let that a new problem? re:stuff not rezzing. ;-)
[12:46] Techwolf Lupindo: Let-Like
[12:46] Leonel Iceghost: maybe but if the sim is going to frezee.. who cares if an object cannot rez dynamic things.. I don't know
[12:46] Leonel Iceghost: it is a last action, not something common
[12:47] Andrew Linden: yes perhaps... can't rez temp + dynamic things -- won't break too much stuff that isn't already broken by the heavy lag or pinned objects
[12:47] Leonel Iceghost: we want to walk in the sim, anything else should be fixed for the scripter
[12:48] Andrew Linden: Could you rephrase that last sentence Leonel?
[12:49] Leonel Iceghost: we want to walk, run, move in our sims, if something rezzing dynamic objects are broken it is something to go tell the creator of the object: "hey, your object is grieffing and gets black listed every second and doesn't work"
[12:50] Leonel Iceghost: normal home rezzers won't get the problem, as those are not dynamic
[12:50] Rex Cronon: maybe that object doesn't work because there other objects that lag the sim:)
[12:50] Andrew Linden: I agree somewhat... priority should be given to being able to move around, yes.
[12:51] Leonel Iceghost: that would indeed be a problem Rex
[12:51] Andrew Linden: However, it sure would be easy to make it so that avatars could always be able to move around... just disable all scripts and rezzing.
[12:51] Andrew Linden: Not a very interesting setup, but very reliable for avatar movement.
[12:51] Leonel Iceghost: why script don't disable scripts lol
[12:52] Andrew Linden: Well, this has been a useful discussion. I've got some new ideas to try and have taken notes.
[12:52] Rex Cronon: a script in same object as another script can disable the other script or itself
[12:52] Draconis Neurocam: take care andrew, thanks simon, kelly, and mercille
[12:53] Leonel Iceghost: scripts already have an scheduler and a "don't process till the next frame" thing
[12:53] Simon Linden: Thanks everyone for coming
[12:53] Imaze Rhiano: thanks for 0h
[12:53] Andrew Linden: Hey, it's not quite over yet.
[12:53] Flip Idlemind: This isn't "extremely" important, but can anyone think of a reason why this would not be a good idea:
[12:53] Flip Idlemind: SVC-7244
[12:53] Rex Cronon: ending it early today?
[12:53] JIRA-helper: http://jira.secondlife.com/browse/SVC-7244
[#SVC-7244] Region Restart Notices on Arrival
[12:53] Simon Linden: lol, I'm jumping the gun
[12:53] Andrew Linden: No, I'm hanging out until 13:00.
[12:54] Simon Linden: That looks like a good idea
[12:55] Kaluura Boa: And while you're at touching notices, could you disable the display name change notices... Most of the time, they are about strangers we don't care about.
[12:55] Meeter: Timecheck : User Group is almost over
[12:56] Andrew Linden: Yeah, it would be nice to have. I wonder how hard it is, because I wouldn't put it very high on my priority list, but if it were easy I might work on it.
[12:56] Andrew Linden: "display name change notices"? What are those?
[12:57] Kaluura Boa: I had that in my clipboard:
[12:57] Simon Linden: That should be done as a different jira, Kaluura, but I haven't noticed those very much ... do others see many display name change notices?
[12:57] TankMaster Finesmith: re SVC-7244, I would prefer the region not allow avatar entery while a restart is pending
[12:57] TankMaster Finesmith: preventing soemone from logging in and the region restarting as they are loading
[12:57] TankMaster Finesmith: then they get loged out
[12:57] Sahkolihaa Contepomi: Except for estate managers.
[12:57] Andrew Linden: perhaps only in the last 30 seconds TankMaster
[12:57] Kadah Coba: If you're in the same region when someone changes their DN, its sends a notice to everyone in the region
[12:57] TankMaster Finesmith: perhaps
[12:58] Simon Linden: We should block the entry when it gets really close ... under 30 seconds, maybe
[12:58] TankMaster Finesmith: the last minut or so would be fine
[12:58] Andrew Linden: That is a viewer feature request. The viewer should be smart enought to not put the annoying alert.
[12:58] Kaluura Boa: Even when the av is in neighboring region... I receive a lot of notice from a club next to my sim... I really don't care about them...
[12:58] Leonel Iceghost: if ( name_changed not in friend_list ) return;
[12:58] Sahkolihaa Contepomi: Heh
[12:58] Sahkolihaa Contepomi: That's a nice feature.
[12:58] Flip Idlemind: Here's a picture of why I want restart notices on arrival (may have to zoom in)
[12:59] Sahkolihaa Contepomi: Seeing a full countdown would certainly be handy, I think.
[12:59] Simon Linden: ah, good point Andrew. The viewer has to get that info, so it can keep AV lists correct, but it doesn't have to annoy you about it
[13:00] Meeter: Thank you for coming to the Server User Group
[13:01] Vincent Nacon: any big news I missed out?
[13:01] Andrew Linden: Ok. I guess that's it for the hour. No last-minute topics.
[13:01] Andrew Linden: Vincent, I'll post the user group transcripts within the next hour.
[13:01] Kadah Coba: What about that thing with the stuff?
[13:01] Kaluura Boa: Just one yes-no question: Is llCastRay() arrivng soon?
[13:01] Kadah Coba: :P
[13:02] Vincent Nacon: not quick enough!
[13:02] Vincent Nacon: muhaha!
[13:02] Andrew Linden: Oh yeah, I completed that thing, but then that other something or other happened.
[13:02] Vincent Nacon: alrighty, thanks Andrew
[13:02] Kadah Coba: Oh darn
[13:02] TankMaster Finesmith: firestorm -mesh release today :D
[13:02] Vincent Nacon: OH really?
[13:02] Flip Idlemind: Oh reallo?
[13:02] Flip Idlemind: I meant to say Really, I misspoke. Continue.
[13:02] Imaze Rhiano: OO.....
[13:02] Vincent Nacon: that's a big news
[13:02] Leonel Iceghost: lol
[13:02] Andrew Linden: llCastRay()... arriving soon yes I think so. Check all the incomming RC candidates for llCastRay() being enabled.
[13:03] TankMaster Finesmith: tc andrew, simon, kelly
[13:03] Simon Linden: bye everyone
[13:03] Sahkolihaa Contepomi: See you Simon, Andrew, mercille and Kelly.
[13:03] Leonel Iceghost: have a good day all
[13:03] Rex Cronon: tc simon
[13:03] Rex Cronon: tc all those leaving
Simulator_User_Group
Prev 2011.09.02	Next 2011.09.09