SL projects update week 50 (3): miscellaneous items

Server Deployments week 50 – Recap

As always, please refer to the week’s forum deployment thread for the latest news and updates.

  • Tuesday December 10th, 2013 saw the main channel updated with the server maintenance project that was on the RC channels in week 49.  This project includes a few miscellaneous bug fixes
  • Wednesday December 11th, 2013 saw the three RC channels updated with a new server maintenance project containing a single bug fix.

The RC channel bug fix is related to vehicles getting into a “bad” state where they appear sat upon / selected even if they have lost their passengers as a result of a region crossing. When in this state, they defeat the parcel / region auto return.

As the fix for this issue is currently only on the three RC channels and will not be promoted to the main channel until 2014 due to the code freeze / no change window, and because this issue may lead to vehicles accumulating in regions where there is a lot of traffic, Maestro Linden has requested that support move any main channel regions which are affected to an RC channel.

2014

These deployments were the last scheduled deployments for 2013. They also mark the last scheduled rolling restarts for the year as well, as there are no plans to restart any channels in either week 51 or week 52. The only exception to this will be if any major issue / fault occurs within the grid which necessitates a restart.

The next scheduled server-side deployments will take place in week 2 of 2014, the week commencing Monday January 6th, 2014.

Some information on updates which will be forthcoming in 2014 were given during the final Server Beta meeting of 2013. These include:

  • Andrew Linden’s work on “Uniform Scaling” LSL Functions for linksets (see part 1 of this week’s report). There are a couple of basic rules with the new functions: no prim in the linsket can be smaller than 1 cm or larger than 64m, and all prim centres must be within 54m of one another in order to be linkable. There will be two new functions as a part of this work:
    • integer llScaleByFactor(float factor):  uniformly scale a linkset by the specified factor (e.g. 2.0 to double the scale).  Returns TRUE if successful, FALSE otherwise
    • float llGetMaxScaleFactor(),   float llGetMinScaleFactor(): return the maximum / minimum scale factors that will work in llScaleByFactor due to limits in place by prim scale and linkability distance restrictions
  • An update to llLoadURL, so it will have a 0.1s delay instead of 10s (although there is still a throttle in place to prevent someone from spamming somebody else in order to crash their viewer)
  • llGetObjectDetails() & OBJECT_STREAMING_COST will be amended to return data when targeting an agent. Currently, OBJECT_STREAMING_COST doesn’t give you much of anything when targeting an agent; once this change is in place, it will return the sum of the streaming costs of all worn attachments (excluding HUDs)

SL Viewer

The “Project Interesting” (viewer-interesting) RC viewer updated on Thursday December 12th to version 3.6.13.284757, which includes a number of fixes from the initial release:

  • BUG-4675 Viewer crashes while reading chat history
  • SH-4606 Interesting: Small objects do not load until they are very close.
  • SH-4627 [INTERESTING RC] “Object out of range” is not detected on teleport.
  • SH-4631 [INTERESTING RC] Parts of linked objects are not shown in new release Second Life 3.6.11
  • SH-4641 Interesting: Incorrect amount of system memory detected on Mac

This may be the last RC update for 2013, unless something like the Google Breakpad RC is slipped out for another round of testing on Friday December 13th.

STORM-68

As noted in part 2 of this week’s report, STORM-68 is a third-party contribution which will allow a builder / creator to specify the default permissions applied to a new prim object (cube, cylinder, torus, etc.) on creation. Further testing has been taking place since my last update, and a number of issues and bugs have been resolved as a result. The test plan for the changes is complete and the viewer-side changes now look ready to go to LL’s internal QA. Again, this change requires server-side updates, so it is unlikely to appear in an RC viewer until the server updates are reasonably available on the grid, although this will hopefully happen in the early part of 2014.

SL projects update week 50 (1): server and viewer updates

A typical Simulator UG meeting (stock)
A typical Simulator UG meeting (stock)

Server Deployments week 50

As always, please refer to the week’s forum deployment thread for the latest news and updates.

Second Life Server (main channel) – Tuesday December 10th, 2013

The main channel was updates with the server maintenance project that was on the RC channels in week 49.  This project includes a few miscellaneous bug fixes. These include a fix for BUG-4431, which Maestro Linden, speaking at the Server Beta meeting on Thursday December 5th, described as:

A fix for avatars with crouch / crouchwalk animation overrides. Previously, the llGetAgentInfo() LSL function would only return AGENT_CROUCHING if the avatar was playing the default crouch or crouchwalk animations, so if your avatar had an AO which replaced those animations, (either with llSetAnimationOverride() or possibly with classic AOs too), scripts couldn’t tell when you’re crouching. But with the fix, the function is looking at whether you’re actually crouching, regardless of which animations are playing.

This should be the only “visible” fix within the package.

Second Life Release Candidate Channels – Wednesday December 11th, 2013

All three RC channels should receive a new server maintenance project containing a single bug fix related to vehicles becoming stuck in the ‘sat upon’ state (which prevents parcel auto return).

This issue is related to vehicles getting into a “bad” state if they lose the passenger right at region crossing. The vehicle is left with what is effectively a “ghost rider” sitting in it, which defeats parcel auto return, leaving the vehicle in-world.

SL Viewer

The SL release viewer was updated on Tuesday December 10th to version 3.6.12.284506, formerly the NameUpdater release candidate. This release does not contain any updates to the viewer’s functionality, but does change installer naming and fixes an updater issue.

Code Freeze / No Change Window

Week 50 marks the last week for deployments to release, main and RC channels by the Lab for both the viewer and the servers prior to the Christmas / New Year code freeze / no change window commencing on Monday December 16th. The no change window extends through until the start of January, and will see no significant releases (other than possible emergency updates, if they are required), although there may still be updates to project viewers.

The main reason for the no change window is to allow Linden staff, notably support personnel, have a decent break over the holiday period without the risk of having to deal with significant issues as a result of a change or update immediately prior to the actual holiday period. To ensure this is the case, the code freeze starts ahead of the actual holiday period so that the Lab can ensure those final releases for the year which are made are robust and stable and unlikely to give a major cause for concern while still having staff available to deal with matters should things get a little higgledy-piggledy*.

Other Items

“Uniform Scaling” LSL Functions

Andrew Linden has been working on a set of “uniform scaling” LSL options which would allow an object / linsket to be rescaled via a single LSL call – such as uniformly increasing or decreasing its size by a factor of 2. The work is still experimental and won’t be deployed until 2014. However, commenting on the work at the Simulator User Group meeting on Tuesday December 10th, he said:

One problem with scaling by multiplicative factor is that the scale operation might fail for a number of reasons; there are four categories of failures: hit the “prim is too small” limit. (2) hit the “prim is too big” limit (3) violation of linkability rules for linked set (when making bigger) (4) misc failures because of navmesh or other things.

The current API includes three calls: (A) llGetMinScaleFactor(), (B) llGetMaxScaleFactor() ; (C) llScaleByFactor(float). I currently handle failures (1) through (3), and the llScaleByFactor() will return FALSE if it fails, but it won’t tell you why it failed. You can use llGetMaxScaleFactor() and friend to ask what the max/min multiplicative factors are possible for reasons (1) through (3). Needs some work, but it is in progress.

A further concern / failure point was raised at the meeting: rescaling an object containing mesh and hitting the land capacity for a region as a result of the LI value increasing. One suggestion for avoiding this would be to have a function which could determine how far an object can be scaled prior to hitting the capacity limit for a parcel (e.g. returns the potential LI for a given scale value before an object is rescaled; however how this might be accurately achieved is unclear, particularly as LI scaling with mesh objects can be subject to a range of factors.

It will be interesting to see how this progresses.

*For those unfamiliar with the term “higgledy-piggledy”, I offer the following explanation:

Higgledy-piggledy explained courtesy of Mr. Berke Breathed
Higgledy-piggledy explained courtesy of Mr. Berke Breathed

SL projects update: week 49 (2): Oculus Rift Support “soon”

Maestro Linden (foreground) leads the Server Beta meeting. The colony of bats to his left is Voidpointer Linden, who is working on the Oculus Rift project
Maestro Linden (foreground) leads the Server Beta meeting. The colony of bats to his left is VoidPointer Linden, who is working on the Oculus Rift project

Server Deployments week 48 – recap

As always, please refer to the week’s forum deployment thread for the latest news and updates.

  • Main channel, Tuesday December 3rd: received the maintenance package deployed to BlueSteel and LeTigre in week 47

Issues with Main channel deployment

Two issues were discovered post-deployment of the Main (SLS) channel  updates:

  • BUG-4637 “”Can’t rez object at { x, y, z } because the owner of this land does not allow it”when rezzing any object from Library”
  • BUG-4635 “”Selected / sat upon:” incorrectly shows objects that are not actually selected or sat upon. “

Maestro has verified a fix for the latter issue, which he described as occurring with vehicles which get into a “funky” state, ” The vehicle gets ‘bad’ if it loses the passenger right at region crossing,” he said by way of explanation, leaving them appearing to have somebody sitting on them per parcel accounting rules, but who is effectively a “ghost rider”.

It is hoped that these fixes will form a RC release together with some additional small updates prior to the no change window / code freeze kicking-in on Monday December 16th.

Animation fixes

Commenting on the llGetAgentInfo() update deployed to the RC channels at the Server Beta meeting on Thursday December 5th, Maestro Linden said:

The only change which should be visible normally is a fix for avatars with crouch / crouchwalk animation overrides. Previously, the llGetAgentInfo() LSL function would only return AGENT_CROUCHING if the avatar was playing the default crouch or crouchwalk animations, so if your avatar had an AO which replaced those animations, (either with llSetAnimationOverride() or possibly with classic AOs too), scripts couldn’t tell when you’re crouching. But with the fix, the function is looking at whether you’re actually crouching, regardless of which animations are playing.

He went on to note that there is a similar issue with ground sit, wherein if you sit on the ground, the viewer only presents the ‘stand’ button if your avatar is playing the default ground sit animation. Originally, llsetanimationoverride() allowed the ground sit animation to be replaced with something else, but this led to situations where a seated avatar could not stand up.

To fix this latter issue, Kelly Linden implemented a workaround for this problem by making “ground sit” play two animations, the default ground sit and any custom ground sit specified by the user, with the priority of the default ground sit hopefully being low enough not to clash with any custom animation also used. The change was viewed as a compromise to make the AO system compatible with viewer 2x/3x, and is why the SL wiki alludes to in ‘ State “Sit on Ground” will play the default animation in addition to any override set. This is required for correct viewer behaviour. ‘

SL Viewer

The Fitted Mesh project viewer was updated to version 3.6.12.284458 on December 5th.  The update addresses:

  • LL internal JIRA MAINT-3311 (Skinning to some collision volumes is broken)
  • STORM-1985 (Mesh garments don’t adapt to changes in avatar shape)

In addition, it includes the updated avatar_lad.xml and avatar_skeleton.xml  file developed by Jeremiah Linden in accordance with his notes on FITMESH-2 (notes dated December 2nd, 2013).

Oculus Rift Support

Oculus Rift: release of a "feature complete" viewer with Rift support "soon"
Oculus Rift: release of a “feature complete” viewer with Rift support “soon”

Also attending the Server Beta meeting, Voidpointer Linden reported that support for Oculus Rift is feature-complete and should be released “soon”.

There will be a formal announcement when a viewer with Rift support is released (no date as to when this will be as yet), however, a few clues were given out during the meeting:

  • The same viewer can be used in both a “normal mode” and a “Rift mode”
  • There will be no apparent changes to the viewer / UI when in “normal mode”
  • Frame rates when in “Rift look” will be very much down to the user’s own hardware  (unsurprisingly). Voidpointer apparently attended the meeting using a Rift headest and reported that he was getting frame rates ” pretty comparable to normal,” but also noted he has a good machine on which to run SL.

Details on the presentation of the UI, etc., were not provided, as these are apparently still under wraps. In the past, it had been indicated that the UI had been set to be floating “overhead”, just outside of your normal point-of-view, so you had to look up to see them. Whether this is still the case, remains to be seen.

There have been reports of people using the Rift (in general, not just with SL) suffering from nausea and motion sickness. Commenting on this, VoidPointer said, “I’ve been using it for a while now and I don’t really have problems with nausea at this point. [But] the Rift is very sensitive to frame rate, vsync, and other things.   Before the rendering was fully hooked up or optimized,it wasn’t as fun, I’ll say that.” He also revealed the Rift headset can be somewhat adjusted so it can be worn over glasses, if necessary.

As the Rift is not currently commercially available, those with the headset and SDK will be able to make use of the new viewer once released, and will require a DVI cable connected to the headset and their system for the video output and a USB connection for the head tracking capability (so the screen view follows the wearer’s head move to present them with the expected view). Commercial versions of the system will use HDMI for the video.

Rod Humble tries out Oculus Rift in a photo released on July 18th
Rod Humble tries out Oculus Rift in a photo released on July 18th

There was a lot of additional talk about possible future options for presenting in-world views with the Oculus Rift, however, as Voidpointer advised, “Heh, let’s get Rift support first, then talk about more :).”

Whether support for the Rift will be announced before or after the end-of-year break remains to be seen.

SL project news week 49 (1): server and viewer updates

Server Deployments week 49

As always, please refer to the week’s forum deployment thread for the latest news and updates.

Main channel: Tuesday December 3rd

The Main channel received the maintenance package deployed to BlueSteel and LeTigre in week 47. This project includes:

  • Bug Fixes
  • New Features
  • Fixed “Sim crossing on vehicle fails when parcel at opposite sim border is full.” (BUG-4152[c])
  • Fixed a case in which a viewer with a high draw distance would not connect to distant regions which are within the draw distance area
  • Fixed some crash modes
  • Fixed “Vehicles containing a mesh are returned to the owner upon region crossing when destination parcel is full”
  • Fixed “Temp Attachments are sometimes not removed on the viewer when detached from a region change event.”
  • Fixed “Avatars inside a private parcel can see other avatars 2 regions away” (BUG-4356[c])
  • Fixed an issue with object return to inventory on test grids
  • Objects which are rezzed by sat-upon or attached scripts no longer inherit the temp-on-rez or auto-return timer of the parent object
  • Estate managers and region owners are now prevented from being teleported by llTeleportAgentHome()
  • Estate managers and region owners are no longer affected by scripts which use ESTATE_ACCESS_BANNED_AGENT_ADD
  • The grey goo fence is now stricter for large physical object rezzes
  • More robust handling of inventory management within objects
  • Cleanup of controls-grabbing in LSL scripts (no functional changes)
  • Parcel owners are now prevented from being teleported by llTeleportAgentHome()

Release Candidate Channels, Wednesday December 4th

All three RC channels should receive a new maintenance package comprising:

The will be one more week of releases (week 50), prior to the Christmas / New Year code freeze / no change window commencing, which is due to start on Monday December 16th, 2013.

SL Viewer

Two new release candidate viewers arrived in the release channel on Tuesday December 3rd:

  • Maintenance RC version 3.6.12.284430 comprises a number of fixes, including a fix for the issue of FPS dropping when the Expanded Chat option is enabled in CHUI (MAINT-3375) – download and release notes
  • Namefix RC version 3.6.12.284383 changes installer naming without modifying channel or application names, but contains no functional changes to the viewer code – download and release notes.

SL projects update week 47 (2): server, viewer, general items

Server Deployments week 47 recap

As always, please refer to the week’s forum deployment thread for the latest news and updates.

  • Tuesday November 19th: the Main channel received the maintenance package previously deployed to BlueSteel and LeTigre in week 46. This package comprises further infrastructure changes for the yet-to-be-announced Experience Keys (experience tools) project
  • Wednesday November 20th:
    • Magnum remained on the same maintenance project as deployed to it in week 47, but which features a further update to the grey goo fence, now only applies to objects which are both large and physical. This alteration is in response to BUG-4448, wherein it was reported that building rezzers were running up against the fence when attempting to rez complex builds
    • BlueSteel and leTigre received a new maintenance package comprising those changes deployed to Magnum in week 46, with additional bug fixes.
Server Beta Meeting (stock)
Server Beta Meeting (stock)

Notes on the Deployments

Commenting on the BlueSteel / LeTigre updates during the Server Beta meeting on Thursday November 21st, Maestro Linden underlined the last four bug fixes listed in the release notes, together with the final “new feature” item, as being newly introduced with the deployment.

With regards to the BlueSteel  / LeTigre fix for  “Vehicles containing a mesh are returned to the owner upon region crossing when destination parcel is full”, he added, “I believe the issues with region crossing on vehicles due to ‘parcel full’ should be fixed, though there’s still that bug about certain vehicles sometimes going crazy upon region crossing.”

A question was asked if the change to the grey goo fence (BUG-4448) might impact llGiveInventory object-to-object transfers. Apparently there were reports n the Advanced Scripters of Second Life that people were encountering a “give inventory failure: grey goo fence: rapid or recursive inventory transfer” warning on Magnum regions following the update.

Commenting on this, Maestro Linden said, “I checked with Simon about this one; the GGF change should only affect rezzing of objects; when you simply pass items around with llGiveInvenotry(), the object geometry data hasn’t been loaded, so it wouldn’t have the opportunity to apply a penalty. However, he thinks that if you hit the GGF for rezzing objects , the GGF may also prevent llGiveInventory() from operating.”

Maestro also indicated that new restart scripts were using during the RC deployment which displayed the restart messages in “big, bold letters”. Whether these changes are in addition to the restart message changes made by Simon Linden and deployed in September is unclear; Maestro also referenced the fact that restarts will now occur as soon as the last avatar departs a region, rather than waiting for the countdown to complete, and this was a change initially deployed in September.

Week 48 (Week Commencing Monday November 25th)

A reminder that there are no deployments / rolling restarts planned for week 48 due to it being Thanksgiving week in the United States (which also means the Server Beta meeting will not be taking place.

SL Viewer

The SL release viewer was updated on Thursday November 21st to version 3.6.11.283787 (dated November 15)  – formerly the GPU table updates RC. This release contained no functional changes to the viewer, but saw support added for the following GPU families:  newer nVidia GTX 700 series; AMD R7/R9; Intel Iris Pro  (download page, release notes).

Fitted Mesh Project Viewer

RedPoly
Redpoly Inventor, who first looked into the use of custom bones for mesh garment deformation in SL

Thursday November 21st also saw the release of the Fitted Mesh project viewer 3.6.11.283899. This viewer includes a new avatar skeleton with additional collision bones which allow mesh garments rigged to the collision bone structure to adjust with changes to an avatar’s shape using the Edit Shape sliders.

The system is modelled at the approach first mooted during the Closed Mesh Beta and later prototyped by RedPoly Inventor, and which has been subsequently employed in approaches such as Redgrave’s “Liquid Mesh” range of garments.

The official blog post on the release can be read here, and I was fortunate enough to be given preview access to the viewer a little ahead of the launch, and my own overview is also available.

This approach to fitting mesh garments is still at a project status, and those trying it are requested to file any issues they have via a JIRA to the Fitted Mesh project.

Other Items

Copying Large Numbers of Items to the Inventory of an Object

Many people are likely to be familiar with this issue: select  a large number of items from inventory and attempt to drop them into the contents of a prim in a single go, and part / all of the process may fail. This is a long-standing problem, and there had been something of a limit of around 42 items which could be successfully transferred into an object’s contents in a single go. However, there have apparently been renewed reports of problems, and a suggestion that the threshold for moving a large number of objects in a single go may now be around the 30 mark. Maestro Linden has updated a bug report from Dan Linden on the issue with this information in the hope it will assist in narrowing-down the possible cause.

Aircraft Region Crossing Issues

Yuzuru Jewell reported further issues with some aircraft encountering problems on attempting to cross regions. It takes the form of aircraft using mono scripts with collision detection  are failing to cross region boundaries. A similar bug has been reported for mesh vehicles – BUG-4084 is “Mesh car starts to bounce like pinball after sim crossing”, but the Lab has been having problems reproducing that issue.  One workaround that seems to prevent the problem is for the collision event to be moved to a separate script compiled as LSL2 rather than mono.

In the discussion Maestro noted this approach had also been put forward in dealing with BUG-4084, except that in that case, all scripts were being compiled as LSL2, possibly because the issue hadn’t been identified as perhaps being with collision event handlers. Maestro believes the pointer towards collision events may well  be an interesting lead and has requested that anyone able to reproduce the issue and show that specific events / functions are responsible, it will obviously make it easier to determine a resolution.

SL projects update: week 47 (1): server releases, viewer

As always, please refer to the week’s forum deployment thread for the latest news and updates.

Main channel: Tuesday November 19th

The Main channel received the maintenance package deployed to BlueSteel and LeTigre in week 46. This package comprises further infrastructure changes for the yet-to-be-announced Experience Keys (experience tools) project

Release Candidate Channels, Wednesday November 20th

BlueSteel and LeTigre should receive a new maintenance package comprising the update deployed to Magnum in week 46, with additional bug fixes. However, at the time of writing, testing was still ongoing, and Simon Linden noted at the Simulator User Group meeting on Tuesday November 19th that things were “down to the wire” in terms of getting the release out. If it does go ahead, the package will include:

  • Bug Fixes
    • Fixed “Sim crossing on vehicle fails when parcel at opposite sim border is full.” (BUG-4152)
    • Fixed a case in which a viewer with a high draw distance would not connect to distant regions which are within the draw distance area
    • Fixed some crash modes
    • Fixed “Vehicles containing a mesh are returned to the owner upon region crossing when destination parcel is full”
    • Fixed “Temp Attachments are sometimes not removed on the viewer when detached from a region change event.”
    • Fixed “Avatars inside a private parcel can see other avatars 2 regions away” (BUG-4356)
    • Fixed an issue with object return to inventory on test grids
  • New Features
    • Objects which are rezzed by sat-upon or attached scripts no longer inherit the temp-on-rez or auto-return timer of the parent object
    • Estate managers and region owners are now prevented from being teleported by llTeleportAgentHome()
    • Estate managers and region owners are no longer affected by scripts which use ESTATE_ACCESS_BANNED_AGENT_ADD
    • The grey goo fence is now stricter for large physical object rezzes
    • More robust handling of inventory management within objects
    • Cleanup of controls-grabbing in LSL scripts (no functional changes)
    • Parcel owners are now prevented from being teleported by llTeleportAgentHome()

Magnum should remain on the same maintenance project as deployed to it in week 47, but which features a further update to the grey goo fence change made in week 46, but which now only applies to objects which are both large and physical. This alteration is in response to BUG-4448.

Thanksgiving Code Freeze

Week 48 (commencing Monday November 25th) is Thanksgiving week in the United States, so there will be no server-side releases during the week. Sever updates will resume in week 49.

SL Viewer

No updates as yet in week 47 to the SL viewer.

Default Object Permissions

A number of TPVs include the ability to specify the default permissions applied to a new prim object (cube, cylinder, torus, etc.) on creation. A similar capability is being developed for the LL viewer (STORM-68) by Jonathan Yap, a long-time contributor to the viewer. Currently, the work is awaiting some server-side capabilities tweaking which will likely be done by Andrew Linden. This work is unlikely to be completed ahead of Thanksgiving, so there is no date as to when the new capability might appear.

Default Region Restart Sound and Notification

Jonathan is also working on STORM-1980 (“Improve awareness of region restarting message”) to add  a default region restart sound added to Second Life. This would be played automatically by the viewer on receipt of a region restart message, adding an additional warning of an approaching restart for those who may miss the pop-up notices, giving them time to take the appropriate action prior to logging-out. The work on this is also progressing, with a modified notification which includes new colours and a countdown. again, further work is required on this, so there is currently no timescale as to when it will be showing up in an RC viewer.