Dahlia's suggestion about making the prims phantom during rezzing was helpful, but didn't fix my problems completely.
It looks like there are several problems that are converging to create a perfect storm. 1) Something about script execution or creation is slower in 0.6.6. I can't put my finger on it, but I definitely see a significant difference. 2) I'm not sure if this is a new problem or if it is simply being made visible by Problem 1, but I'm seeing scripts spontaneously stop executing in 0.6.6. For example, I have one script that makes a call to llSleep. Before it sleeps, it prints the number of seconds that it will sleep and then when it comes back from sleep, it prints "I'm back". I have clearly seen that, in some cases, it never comes back. I don't know if the script terminates or is dropped from the queue or what. It just never executes after that. The problem isn't unique to llSleep. I suspect that several unexplained occurrences are due to something like this. 3) There is a problem in which scripts that kill themselves are not removed from Active Scripts (http://opensimulator.org/mantis/view.php?id=2929). I know that this happens in 0.6.5 and 0.6.6. I think it happens in 0.6.7, but I've been doing so much testing that I can't remember if I specifically confirmed that or not. 4) 0.6.7 imposed a very restrictive limit on the distance that an LSL script can move a child prim. (http://opensimulator.org/mantis/view.php?id=4228). OpenSim is basically unusable for my LSL rezzer until this is relaxed. Anyway, those are the issues that I am currently aware of. As I develop repros for these and other issues, I will post them to Mantis. I'm on vacation next week, so I won't be working on this until the following week. --Shack Shack Dougall wrote: > Thanks for that suggestion, Dahlia. I don't know if it will help, but > it is consistent with one other thing that I observed in 0.6.7. When my > libopenmv program was creating the rezzer today, I saw my first ODE > crash ever. It took down the whole server. It's possible that some > changes in ODE are contributing to the problem. > > I'll give it a try and report back. --Shack > > Dahlia Trimble wrote: > >> I'm not sure what may be causing your delays but I do have one >> suggestion which may help mitigate some issues you are seeing: try >> making any prins that you rez phantom and do not change that state >> until the entire object is complete. This will eliminate a lot of >> unnecessafy interaction with the physics engine and may improve >> reliability and speed. >> >> On Tue, Oct 6, 2009 at 2:03 PM, Shack Dougall <[email protected] >> <mailto:[email protected]>> wrote: >> >> One part of Prim Composer is an LSL-based rezzing system that >> creates a >> build from notecard data. >> http://liferain.com/downloads/primcomposer/ >> >> In OpenSim 0.6.5, this system worked almost as good as in Second Life. >> Unfortunately, it does not work well in 0.6.6 and is unusable in 0.6.7 >> >> *Test Platform*: Standalone, Windows XP, MySQL, ODE Physics, >> Meshmerizer. Other than this I use the defaults. >> >> So, the question is "What is causing the problem?" What has changed >> since 0.6.5 that causes the LSL rezzer to perform so badly? >> >> I have verified that the script engine defaults have not changed. >> >> *How the rezzer works* >> >> The rezzer contains linksets with various numbers of prims, e.g., >> Linkset-10 is a linkset with 10 prims in it. >> >> 1. The rezzer reads data out of a notecard. It sees how many prims >> should be in the next linkset and rezzes a linkset from its inventory >> with that number of prims. >> 2. When the linkset rezzes, the root prim tells the rezzer that it is >> alive and the rezzer sends it the UUID and line number of a >> notecard to >> read via chat. At this point, the rezzer goes back to Step 1. >> 3. The root prim then sends a link message to its children telling >> them >> the UUID and a line number to read. >> 4. Each prim in the linkset then reads their data independently from >> the notecard and then performs llSetPrimitiveParams to transform >> themselves into the shape determined by the notecard data. >> >> It's actually a lot more complicated than that, but you get the idea. >> So, lots of prims are being rezzed very quickly via LSL and each prim >> has a script in it that reads notecard data and sets params. >> >> In 0.6.5, this process runs very smoothly--prims and scripts are >> created >> and execute quickly. In 0.6.6 and above, something is happening that >> drastically slows this process down. Either the prims are rezzing >> slower, or the scripts are starting slower or the scripts are >> executing >> slower. >> >> In any event, the difference is extreme. It is bad in 0.6.6 and seems >> to be even worse in 0.6.7. >> >> Does anyone have any ideas or suggestions? Is this a bug? Is it an >> inevitable fact of life? Can it be improved? What can I do to help >> with the process? >> >> I'm more than happy to create a video showing the difference. The LSL >> scripts are open source. I can also set you up with some test >> data and >> a copy of my maxport utility if anyone wants to try to reproduce >> it. It >> is very easy to do. >> >> Thanks in advance! --Shack >> _______________________________________________ >> Opensim-dev mailing list >> [email protected] <mailto:[email protected]> >> https://lists.berlios.de/mailman/listinfo/opensim-dev >> >> >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> Opensim-dev mailing list >> [email protected] >> https://lists.berlios.de/mailman/listinfo/opensim-dev >> >> > > _______________________________________________ > Opensim-dev mailing list > [email protected] > https://lists.berlios.de/mailman/listinfo/opensim-dev > > _______________________________________________ Opensim-dev mailing list [email protected] https://lists.berlios.de/mailman/listinfo/opensim-dev
