SL project updates 41/2: TPVD meeting, attachments & Interest List issues

Ironwood Hills; Inara Pey, October 2015, on Flickr Ironwood Hills (Flickr) – blog post

The following notes are primarily taken from the TPV Developer (TPVD) meeting held on Friday, October 9th, 2015. A video of the meeting is included at the end of this report, although the opening few minutes of the meeting are missing. Because of this, I’ve included an audio file as well to cover the opening of the meeting.  Time stamps to both the audio and the video are provided, and my thanks as always to North for the video recording and providing it for embedding.

Please note that any extraneous noises on either the audio or the video are the result of an open mic in the meeting itself, and not from myself or North

Server Deployments: Week 41 – Recap

As per the server deployment thread, there were no scheduled deployments / restarts for the three RC channels during the week, while the Main (SLS) channel received the same server maintenance package deployed to the RCs in week #40.

SL Viewer Updates


[00:00 – 02:10 on audio]

CEF Project Viewer

On Wednesday, October 7th, the Lab issued the long-awaited project viewer utilises the Chromium Embedded Framework (CEF) for media handling – and more – in Second Life. Version sees CEF replace the ageing llqtwebkit functionality for media management in Second Life (also see my separate update).

[13:25 video] The emphasis from the Lab is that if you use web media in-world test your products / projects / uses thoroughly with the CEF project viewer, and make sure you continue to test as the project viewer is updated, in order that specific issues encountered can be reported and looked at while the lab is still developing the viewer.

It also appears that QuickTime media may still work on this viewer, rather than being disabled, as had been indicated in my last TPVD update. However, this should not be taken to mean either QuickTime or Flash will be supported by the Lab going forward, or that media using them will be viewable by all users. CEF, HTML 5, etc., are the future of media in SL.

Other Viewer Updates

On Friday, October 9th the HTTP updates viewer (project Azumarill) was promoted to release Candidate status with the release of version This viewer provides improved performance and stability. Impacts include: asset uploads, AISv3 inventory manipulation, VMM, Experience management, LSL compilation, Simhost event polling, etc.

Currently, it appears as though the Maintenance RC viewer, version, is in line to be promoted to the de facto release viewer in week #42 (week commencing Monday, October 12th).

An update for the Oculus Rift project viewer (currently version, and now almost a year old), is still expected, but it is subject to other work being undertaken at this point in time.

Attachment Loss on Region Crossings

[03:44 audio;  00:00 video]

The Lab recently carried out extensive work to reduce the number of attachment loss issues occurring as a result of issues caused directly within the viewer itself (project Big Bird). However, while this work fixed a lot of issues, some still remain, particularly during region crossings, whether physical or via teleport (see BUG-7761 as an example).

Essentially, what happens when moving from one region to another is that all of the attachments on your avatar must get new IDs from the simulator to which you are moving. The viewer then has to associate these new IDs with the attachments you are wearing, and the locations where those item as actually attached. In doing so, it attempts to preserve continuity  by keeping things where they were according to the region you’re leaving, and then updating them with the information it receives from the new region.

A problem I sometimes encounter when flying / boating is returning home and finding one of my scripted mesh shoes has been detached at some point during the trip
A problem I sometimes encounter when flying / boating is returning home and finding one of my scripted mesh shoes has been detached at some point during the trip

This obviously involves a lot of messages being passed back and forth between server and viewer – and the more attachments you have, the greater the number of messages being passed back and forth.

Additionally, if the attachments are scripted, further messages relating to script states, etc., also need to be passed relating to their state, etc., which adds to the load. Finally, all of these messages may use different transport mechanisms to pass between server and viewer.

This means there are many opportunities for messages to arrive out-of order due to race conditions, etc., or to be dropped and lost because of possible network issues and some messaging mechanisms not having a retry option, etc. It is these problems which tend to result in issues with attachments being removed, etc.

The Lab is interested in trying to eliminate as many of these problems as they can (allowing for the fact some might be related to your network connection, and possibly outside of their ability to control). However, in order to do so, they first need to identify exactly what is going on, and this requires examples of attachment losses, etc., that are consistently reproducible (e.g. attachment type X will always detach when crossing between regions Y and Z, for example). It is these kinds of consistent examples which are proving hard to find – so if you do know of one, please raise a JIRA outlining it step-by-step.

Continue reading “SL project updates 41/2: TPVD meeting, attachments & Interest List issues”

“Project interesting” viewer reaches release status

On Tuesday May 6th, the Lab announced the “Project Interesting”  viewer has finally made it to a release status with the arrival of version of the viewer as the de facto release version.

Available since mid-November 2013 as a release candidate viewer, this release represents the last stage in the current work on improving interest list functionality, the code which controls how the data relating to your in-world view is handled by both the server and the viewer. This includes what is sent to the viewer, what is retained by the viewer for reuse and things like the order in which objects are rendered when you log-in to SL or teleport (so that the “interesting” objects which are closer to you or which are particularly large should render first, for example).

To mark the viewer’s formal release, the Lab has re-issued a video by Torley Linden, originally released when the viewer first made it to release candidate status, which neatly encapsulates the key updates contained within the viewer, and how they relate to server-side changes which have already been implemented.

Related links

SL project updates week 3 (1) Server and viewer + misc items

Simulator User Group meeting (stock)
Simulator User Group meeting (stock)

Server Deployments: week 3, 2014

There are no server deployments this week on either Tuesday 14th (Main channel) or Wednesday 15th January (RC channels). The latter was anticipated to be the case, after Maestro Linden indicated there were no maintenance or other projects in the RC pipeline during the Server Beta meeting of Thursday January 9th.

While it had been thought that issues relating to STORM-1831 were not sufficient to prevent the RC package deployed in week 2 from being promoted to the Main channel, the decision has been taken to allow the package to run a further week on the RCs.

Week 4 Deployments

It now seems as if the plan is to deploy the RC maintenance project to the Main grid in week 4 (week commencing Monday January 20th), and to issue a new server maintenance project on the Wednesday of that week, although details on this have yet to be finalised.

SL Viewer

The Project Interesting viewer with the viewer-side interest list changes (notably the changes to how region information is cached and re-used by the viewer) gained a further update on Tuesday January 14th, with the release of release candidate, which includes a number of additional bug fixes – see the release notes and download page.

STORM-1831: LSL Syntax Highlighting

This contribution by Ima Mechanic will allow LSL syntax highlighting in the viewer’s LSL editor to be updated and defined using a file obtained directly from the simulator the viewer is connected to, with the intention to eliminate issues of the viewer using outdated versions of the file. The server-side updates for this work are currently deployed to all three RC regions. However, as of the end of week 2, additional work was required on the syntax file itself.

In addition, there are a number of issues which are currently being addressed with the viewer-side code. These are listed on the JIRA for the project – STORM-1831, and require resolution prior to the code being issued  in a release candidate viewer. Most of these are currently being worked on, and are not seen as major show-stoppers, but will delay the code’s appearance in the short-term.

Other Items

Values for brush constants in calls to llModifyLand

One issue which has (again) been raised through STORM-1831 is that the values for brush constants in calls to llModifyLand, used for scripted terraforming operations, are out by 1 each (they are set to 1, 2, 3 and should be 0, 1, 2). This means that, for example, a call using LAND_SMALL_BRUSH will edit an area of 4×4 metres, not 2×2. The wiki documentation for the function notes the error as well. As a result of discussing this issue in the Open-source Developer’s meeting on Monday January 13th, a STORM JIRA was raised to (again) highlight this issue (STORM-2006).

However, as the issue itself is actually related to either STORM-1831 per se and because it will actually require server-side changes, the issue is liable to be moved to a BUG status and triaged from there.

Snapshot uploads to the SL Feeds

“It has to do with authentication under the hood when getting the credentials and then using them to fetch the snapshot config info,” Simon Linden said at the Simulator User Group meeting on Tuesday January 14th. The problem is still being worked upon for those still affected by it (I am), but there is currently no ETA as to a complete fix for the matter.

With thanks to Mona Eberhardt for the meeting notes.

“Project Interesting” arrives as a release candidate viewer

The long-awaiting “Project Interesting”  viewer has finally made it to release candidate status with the arrival of version of the viewer on Thursday November 14th.

This viewer represents the last stage in the current work on improving interest list functionality, the code which controls how the data relating to your in-world view is handled by both the server and the viewer. This includes what is sent to the viewer, what is retained by the viewer for reuse and things like the order in which objects are rendered when you log-in to SL or teleport (so that the “interesting” objects which are closer to you or which are particularly large should render first, for example).

The vast majority of the interest list work has already been delivered, and everyone should already be enjoying the broader benefits. However, the final phase of the current batch of work has been focused on both server and viewer changes, and the latter have been somewhat delayed due to a number of bugs, some of which were the result of the need to further tweak things server-side which in turn adversely affected the viewer’s behaviour, while others were bugs which appeared to have been dealt with, only to return in a later build.

The “project interesting” viewer updates should further improve scene loading for users through improved caching of region and object data, better use of memory, etc.

The core changes within this viewer relate to what can be cached locally. This should allow the viewer to store more information on objects and regions than is currently the case, enabling it to re-use object / region data without having to rely on the server to re-send the information, improving rendering times when you are exploring a region / teleporting back to a region previously visited.

One of the bugs which delayed the arrival of the “project interesting” viewermeant that some objects would not render (as is the case with the house in this image). Unlike the recent “missing prims” issue, no bounding box, etc., was loaded by the viewer, so right-clicking where the house should be would not resolve the issue – a relog was required (image courtesy of Whirly Fizzle)

There are other improvements to further assist with scene loading as well. For example, when teleporting into a region never before visited, the viewer can now tell the simulator that it has no data for the region cached, and the simulator can in turn simply get on with prioritising the data and downloading to the viewer, rather than it having to repeatedly ask the viewer if it needs the data, as is currently the case. The result of this is that “several seconds” can be shaved from scene loading times for uncached regions. Also, the viewer will no longer load objects from cache into memory if they are completely by scene geometry, thus reducing unnecessary memory use.

The viewer is currently a release candidate, which means it will be downloaded and installed for some users who have indicated a willingness to participate in the release candidate programme through their viewer Preferences (Set-up > Willing to update to release candidates). Those who wish to manually install the viewer can read the release notes and download it from the link below.

The Lab issued a blog post to accompany the viewer release (which I initially missed), which includes a video demonstrating the changes, narrated by Torley Linden.

Related Links

SL project updates: week 44 (1): server, viewer, interest list, anti-griefing

Simulator UG meeting (stock)
Simulator UG meeting (stock)

Server Deployments week 44

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

Main Channel

There have been no updates to the Main channel.

Release Candidate Channels

All three release candidate channels received the same new server maintenance package on Tuesday October 29th, which fixed some crash modes.

The reason for the RC channel updates being moved to Tuesday is because there was due to be a planned outage on Wednesday October 30th at the time the deployments usually take place to allow some database work to take place. This would have likely seen log-ins blocked for about an hour. However, Simon Linden believes the work has now been postponed for a week – although the recommendation is to keep a check on the Grid Status page – see the original notice for details.

SL Viewer Updates

A new release candidate appeared in the release channel  on Monday October 28th. Version has no functional updates, but includes an update to the GPU table.

About the GPU Table

The GPU table is used to define your graphics card to the viewer and the default graphics settings which are applied as a result when you first start the viewer (or if you never adjust them).

Graphics cards are defined by classes (currently 0-5), which can be defined as:

  • 0 – Defaults to low graphics settings. No shaders on by default
  • 1 – Defaults to mid graphics settings. Basic shaders on by default
  • 2 – Defaults to high graphics settings. Atmospherics on by default
  • 3 – Same as 2, but with lighting and shadows(now referred to as Advanced Lighting Model in the viewer) enabled
  • 4 – Same as 3, but with ambient occlusion enabled
  • 5 – Same as 4, but with shadows set to “Sun/Moon+Projectors.”

The table is a .TXT file which is located in a viewer’s installation location on your computer. For Windows, this means it can be found either in C:\Program Files\[viewer name] or in C:\Program Files (x86)\[viewer name] (if you are running a 32-bit version of a viewer on a 64-bit system).

It is not recommended that you amend this file in any way, unless you know what you are doing. You can, however, open it and use it to determine which class your viewer falls under, and the default settings it is given.

To make it easier for those wanting to quickly reference common graphics cards, Garvie Garzo has produced a .PDF file of the table. However, do bear in mind that the table is subject to updates (as the release candidate mentioned above demonstrates), so the PDF may become outdated over time. Also, some TPVs have been working on updating the GPU table themselves.

When perusing the table, cards are listed alphabetically by maker, and the first digit following the card name refers to the class it has been assigned to, while the far right column defines the overall family of GPUs the card belongs to (you may find when viewing the table that the columns do not align well).

The settings within the GPU table are subject to some debate, as they are used to determine which graphics cards present a “reasonable” enough performance in order to have ALM enabled by default. Linden Lab consider anything qualifying as a class 3 or above is capable of adequately running with ALM enabled; some TPVs do not agree.

The problem here is how “reasonable” is defined; it’s a subjective term, and everyone will have their own opinions on the matter. As I reported back in week 39 and week 34, the Lab had statistics to show that class 5 cards GPUs (e.g. ATI Radeon HD 7800, 7900, 8900, 8950 + similar, nVidia GTX 460/460SE, 465, 550TI, 580, 660/660TI + similar) actually performed better with ALM enabled than with it off, while class 4 GPUs showed little difference between having ALM enabled and disabled. However, because measurements do tend to be subjective (again, frame rates, etc., can take on different levels of importance depending upon what you are doing in SL), Oz Linden had been hoping to establish a means by which more controlled testing could be undertaken within the Lab; it’s currently unclear how far this has progressed, if at all.

Interest List Viewer

Andrew Linden revealed that the interest list RC / project viewer (however it appears) is now unlikely to debut before November 12th. “There was a performance regression that we’re working on — lower FPS in project interesting,” he informed the Simulator User Group meeting on October 29th, “Probably because it is rendering more objects — more small objects in view get rendered (that’s my theory anyway).”

Andrew Linden: Anti-griefing Work

Andrew Linden
Andrew Linden

Andrew Linden is back working on various pieces of anti-griefing work.

For obvious reasons, he doesn’t want to go into specifics, but he did indicate that he’s looking to address new griefing modes that are aimed at estate managers. He’s also been thinking about ” raising the arms race against landbots”, although he admits he is “still in the planning/discovery phase on that.”

There are a number of other items in his list as well he may well be taking a look at.

Other Items

Slow loading Sculpts?

Some people are reporting they are seeing sculpts loading a lot more slowly since the last set of server-side interest list updates. It’s not clear how widespread this might be or if it is a possible placebo effect. For his part, Andrew Linden felt that sculpts potentially download faster with the interest list viewer code (which, as noted above, has yet to make a public debut), but again he caveated why this might appear to be the case. Andrew indicated he’ll look a little more into this.

Last Owner / Previous Owner

Many TPVs expose details of the “last owner” of an object through the build floater. A request has been passed to make this information, which is stored as a field in the object data, accessible through scripts. Both Simon and Andrew Linden didn’t see why this could not be done, with Andrew stating he’ll see what’s involved and will look to someone to nudge him about it next week.

SL project updates week 43 (1): Server releases, interest list

Simulator UG meeting, Tuesday Octber 22nd, 2013
Simulator UG meeting, Tuesday October 22nd, 2013

Server Deployments – Week 43

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

Second Life Server (Main Channel) – Tuesday October 22nd

The Main channel was updated with the server maintenance project that was previously on all three RC channels.  The package includes:

  • A fix for “Group member access to parcels fails when ‘Sell passes to’ is enabled”
  • Fixes for two region crossing issues:
    • “‘Ghost’ avatars and vehicles sometimes appear to an observer at the sim border”
    • “Vehicles which exit a region with a passenger are incorrectly auto-returned and become ‘ghost shapes’ in the physics engine”
  • Extremely high Avatar Render Weights reported to the server are now capped at 500,000
  • A performance issue fix for avatar loading speed in the experimental ‘viewer-interesting’ viewer.

Second Life RC BlueSteel, RC Magnum, and RC LeTigre – Wednesday October 23rd

There are no updates planned for the three RC channels, as a result, there was no rolling restart across the RCs.

SL Viewer Updates

The Google Breakpad RC was removed from the viewer release cohorts at the end of week 42.

Interest List Viewer

The interest list RC viewer is once again delayed.  Commenting on it at the Simulator User Group meeting on Tuesday October 22nd, Andrew Linden indicated the hoped-for schedule for its appearance is before the end of the month, but there is something of a low confidence level in the estimate.

Apparently, there is still a performance issue to be dealt with (whether this is the same issue Richard linden mentioned in discussing the interest list viewer at the TPV developer meeting on Friday October 18th is unclear). Also, it seems that the recent issues of objects steadfastly refusing the render in the interest list viewer without a relog  – thhought to have been resolved in week 42 – have also regressed into the viewer code with recent builds.

The issue of prims failing to render in the Interest List viewer, as demonstrated by Whirly Fizzle in the images above and once thought to have been solved, has apparently returned to haunt the code in recent builds, helping to further delay the appearance of the viewer as a release candidate.

Andrew also clarified that the definition of objects which are cacheable by the viewer has been revised such that it is now objects which have not changed outward appearance or transformed in the last two minutes, rather than the one minute Richard Linden indicated, so as to allow for temp-on-rez objects (otherwise additional logic would have been required to check on these). The changes to the definition also mean that some scripted objects which have certain script calls in them, but which do not change appearance as a result of the calls, can also now be cached by the viewer.

As an adjunct to the interest list viewer discussion, Andrew indicated his “before / after” video for scene loading has received the “Torley treatment”, and the results are “impressive”. This is for the changes already implemented server-side, and which should already be visible to people without the Interest List viewer. There’s no date as to when this video may make its public debut.

Other Items

LSL Control for Materials

There have been renewed enquiries for the introduction of scripted control for materials. This has been requested in the past, and was always considered “out-of-scope” for the initial release of materials. A (further?) JIRA has been raised on the topic (MATBUG-359), but is light on suggestion on what might be required, etc.

Those Lindens attending the meeting (Andrew, Kelly and Simon) could see the advantages of extending LSL to handle materials (and Brooke Linden has indicated she feels the JIRA is a valid request). However, how best to achieve this, and the time-frame in which it might be achieved (not just in terms of a technical approach, but also in terms of the Lab’s internal priorities and workload) are unclear at this point.

Both and Andrew and Kelly felt that requiring the normal / specular maps to be in the object contents might be a means by which to both enable and constrain the use of LSL manipulation of materials because of the lack of permissions associated with UUIDs  and concerns of misuse. While no promises were made as to whether the work would proceed, Simon Linden suggested a further step would be to lay out a clearer proposed API and the exact behaviour required for manipulating materials via script. Andrew also indicated he has a “few” LSL calls to add, so he’ll try to take a look at the materials system o see how hard it would be to give script access to it.

llGetObjectDetails() and keyframe animation states

Simon Linden indicated that there has been some talk within the Lab of adding some new parameters to llGetObjectDetails() which would return an object’s keyframe animation states, so it would be possible to get the step number, state (paused, looping, ping-pong, etc.). Again, if / when this might appear is unclear; Simon appeared to be putting the idea out for feedback from the meeting attendees.