SL projects update week 42 (3): viewer, AIS v3, HTTP

The following notes are taken from the TPV Developer meeting held on Friday October 18th. A video, courtesy of Northspring, can be found at the end of this report. The numbers in braces after each heading (where given) denote the time stamp at which the topic can be listened-to in the video.

A typical TPV dev meeting gathers (stock)
A typical TPV dev meeting gathers (stock)

SL Viewer Release Pipeline Updates

The Catalyst RC viewer (version 3.6.8.282367) was promoted to the de facto release viewer on Wednesday October 16th. This viewer was essentially a “hot fix” to address a start-up crash on viewers using the latest AMD Catalyst drivers (13.9, 13.10, 13.11).

At around the same time, the Maintenance RC viewer RC 3.6.8.282335 noted in part 1 of this report as being released on October 14th was withdrawn. It was subsequently superseded on Friday October 18th by a new build,  RC 3.6.9.282553, comprising the same updates: finer access control for estate/parcel owners; CHUI: toggle expanding Conversations by clicking on icon; GPU table update + more.

“ShareStorm” Viewer

Also on Friday October 18th, the SLShare RC (3.6.8.282036) and the Snowstorm contributions RC (3.6.8.281997) were withdrawn and superseded by a new “ShareStorm” RC viewer, version 3.6.9.282535, containing the updates from both.

Viewer Promotions – Time Frame

Due to the volume of work backed-up prior to the implementation of the new viewer release process by the Lab, RC viewers were initially being promoted  to a release status on almost a weekly basis. This has slowed a little more recently, with a promotion to release occurring around once every two weeks (with the exception of the Catalyst RC “hot fix” viewer mentioned above). Barring further situations like the Catalyst RC, the plan is to try to promote an RC to release status around every two weeks.

Interest List Viewer

[01:20 – 22:18]

Richard Linden attended the TPV Developer meeting on Friday October 18th to discuss the upcoming viewer-side changes for the interest list project. He started by giving a high-level overview of the work.

The primary focus of this work has been on scene loading – how things are presented to you when you log-in or teleport to a region. Historically, most of the work related to the interest list has been driven by the simulator. This is not the most optimal way of doing things, and could mean, among other things, that when arriving in a region, you’d start to see things far away from you rezzing first before those much closer to you – so if you arrived inside a house, you’d see the buildings and trees outside of the house appear before the walls of the house would pop into view.

Recent work on the interest list has been aimed towards improving scene loading in the viewer
Recent work on the interest list has been aimed towards improving scene loading in the viewer

So the first part of the work focused on the server end of things. Most of this has already been deployed to the grid, and the benefits can already be felt. There is more structure in how the server sorts and prioritizes data to be downloaded to the viewer, so that when you arrive in a region, the objects which are closer to you or are bigger than others should render first (e.g. when you arrive in the house mentioned above, the floor, walls and ceiling appear before those things outside of the house).

The upcoming viewer changes take this work a stage further, but in more subtle ways.  What is classified as a “cacheable” objects has been changed, for example, allowing the viewer to potentially store more information on objects locally, rather than perhaps depending on the simulator for information relating to them. Additionally, the viewer will be able to retain more overall information relating to a region than is currently the case – fewer “killobject” messages are sent by the simulator telling the viewer to remove objects from cache, allowing them to be re-used rather than the viewer necessarily having to request data on them from the simulator once more.

There are other improvements within the code to assist with better scene loading, such as when you arrive in a region you’ve never visited before (and so have nothing cached). Under the current system, the simulator will send queries to the viewer about every object in the region, because it has no way of knowing if the viewer has data for the region already cached. Under the new code, as the viewer connects to the simulator it will tell the simulator it has no data cached. The simulator can then get on with prioritising the data and getting it downloaded to the viewer, with the result that “several seconds” are shaved from scene loading times.

In other words, to borrow from Richard put it, the updates put the viewer far more in the driving seat with the interest list.

Continue reading “SL projects update week 42 (3): viewer, AIS v3, HTTP”

SL projects update week 42 (1): Server, viewer updates, misc news

Server Deployments – Week 42

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

Second Life Server (Main Channel) – Tuesday October 15th

The main channel received the server maintenance project previously on all three RC channels in week 41. This project includes a fix for a group notice delivery issue, introduces a missing JSON operation to LSL, and includes preparatory work for an upcoming viewer with scene loading (interest list) improvements.

Second Life RC BlueSteel, RC Magnum, and RC LeTigre – Wednesday October 16th

All three RC channels should receive a new server maintenance project.  However, at the time of writing, it is unclear whether the RC deployment will occur due to a last-minute bug being identified. Speaking at the Simulator User Group meeting, Andrew Linden indicated that while it had been fixed, it has yet to pass internal QA.

Assuming it does go ahead, the deployment includes fixes for the following issues:

  • “Group member access to parcels fails when ‘Sell passes to’ is enabled” (BUG-3992)
  • “‘Ghost’ avatars and vehicles sometimes appear to an observer at the sim border” (BUG-3872)
  • “Vehicles which exit a region with a passenger are incorrectly auto returned and become ‘ghost shapes’ in the physics engine” (BUG-4024)
  • A performance issue with avatar loading speed in the experimental ‘viewer-interesting’ viewer.
Simulator User Group meeting, Tuesday October 15th 2013
Simulator User Group meeting, Tuesday October 15th 2013

In addition, extremely high Avatar Render Weights reported to the server are now capped at 500,000 (BUG-4010)  – so the server will take any report over 500k and treat it as 500k.  Simon explained that this cap had been arrived through a process of observation and data-gathering he undertook himself or resident supplied to him, all of which suggested the average for ARW among users is around 100K. In describing the cap in general, he went on:

You should consider anything close to 500k as just “way too high”. The system is a compromise that’s needed because some people will try to game it You should not trust the values too much. They are from viewers, which (don’t take this personally, anyone) cannot be trusted to be accurate 500k is at the very high-end of usage.

Really, anyone near that in a public place is hogging your viewer display power if you’re up by 500k – you’re using roughly 5x the viewer render resources as everyone else Also remember that SL is not doing anything with this data. It’s up to scripters and land owners to react.  So I can imagine a popular club maybe sending a warning IM to someone who’s really complex.

 I hope some people can find it useful within its limitations.   As it currently works, it should give scripts a good idea if some people are extra-costly.   It’s up to the scripter to handle that well or not.

SL Viewer Updates

Two new release candidate viewers were deployed to the release channel on October 14th and 15th. These are the Catalyst Viewer and a further Maintenance Viewer.

Maintenance Viewer

Release on October 14th, Maintenance RC 3.6.8.282335 includes:

  • finer access control for estate/parcel owners
  • CHUI: toggle expanding Conversations by clicking on icon
  • clean up messaging & notifications
  • fix crashes & hangs
  • GPU table update

Catalyst Viewer

Release on October 15th, the Catalyst RC, release 3.6.8.282367, is intended to address a start-up crash on latest AMD Catalyst drivers: 13.9, 13.10, 13.11.

Interest List

Not much to report here, the viewer-side code has yet to emerge as an RC, but Andrew Linden has been working on comparisons with scene loading in the hopes of producing a film to demonstrate the improvements. He’d recorded the “before” footage a while ago, and has been focusing on the “after” footage.

“I brought the regions up on some old simulator code from before any of the latest interest list work… from Dec 2012. Andrew Linden: and I was reminded as to how poorly the scene used to load;  everything arrived in mostly random order,” he said during the simulator User Group meeting, “I found a very small room in one of my test regions. So I logged out while standing in this closet, cleared my cache, and logged back in… On the old simulator code you could see the world streaming in and then BAM! the walls of the room would obscure everything. On the new code… the walls are there as soon as the login curtain raises. Not that the scene loading is perfect now, but some of you may remember… it used to be much worse.”

Hopefully we’ll be able to see the video soon, and Andrew will be able to avoid further plays on him coming out of the closet…

Group Ban List

Again, not a lot to report at the moment. Appearing at the Simulator User Group meeting, Baker Linden said:

I wanted to give an update on group bans:  I’m currently working through the bugs found by internal QA testing, trying to fix them as quickly as I can. Later today I’ll be doing another round of code reviews, and hopefully everything there will go smoothly.

SL Projects update week 41 (2): TPV developer meeting, group ban list, interest list

Server Deployments Summary – Week 41

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

  • There was no update to the Main channel
  • The three RCs remained on the same package as deployed in week 40, with one additional fix for objects using llGetCameraRot() as a result of an interest list related issue.

Potential Server Deployments  – Week 42

Speaking at the Server Beta meeting on Thursday October 11th, Maestro Linden indicated that allowing for QA testing and final decisions, it looks as if week 42 (commencing Monday October 14th) should see:

  • The Main channel receive the package currently deployed to the three RCs
  • At least one RC package which should contain fixes for the region crossing issues noted in my week 40 report, namely: vehicles being incorrectly autoreturned on crossing a region boundary under certain circumstances (and the collision body being left behind) and “ghost” avatars and vehicles sometimes appearing to an observer when the region crossing is at the limits of their draw distance.
In the guise of my "Crash Test Alt", I doogie with a top-hatted Simon Linden at the Server Beta meeting
In the guise of my “Crash Test Alt”, I boogie with a top-hatted Simon Linden at the Server Beta meeting

SL Viewer Updates

RC Updates

The Second Life Share (SLShare) RC viewer has been rebuilt using the current de facto viewer release code and a new version – 3.6.8.282036 – on October 9th. This should see all of the current RC builds now rebuilt using the release viewer code base.

Mac Viewer  / OS X 10.6

The Mac 3.6.4 viewer which was offered to Mac OS X 10.6 users as a result of issues with the recent Cocoa updates impacting them has been closed, as the Lab believes all the important bugs on this issue are fixed.  Those who had either been rolled back to this release, or opted to install it, have been updated to the current release.

Interest List Viewer

The interest list RC viewer has yet to appear, although the code is available for those able to access it for self-builds. Two issues have been identified by those compiling the viewer. The first of these appears to be a known bug, SH-4552, wherein objects and linksets previously cached by the viewer fail to load following a teleport, and will generally only render following a relog (right-clicking where the object should be, as with the “missing prims” issue earlier in the year, does not work). The second causes objects to vanish from the user’s field-of-view until after a relog  if draw distance is reduced and then returned to its prior settings.

Whether either of these issues is sufficient to stop the viewer emerging as either a project or RC viewer remains to be seen. The code had been sitting awaiting the button to be pushed to move it into one or the other. It had been hoped that members of the team who have been working on the viewer would be available to discuss the viewer during the TPV Developer meeting on Friday October 11th. Unfortunately, they didn’t manage to attend.

Upcoming Viewers

Other viewers on the horizon include:

  • A further maintenance release, which may include Baker Linden’s Group Ban List code
  • Monty Linden’s viewer-side HTTP updates, which have been “snarled up” as a result of some rebuild dependencies.

Continue reading “SL Projects update week 41 (2): TPV developer meeting, group ban list, interest list”

SL project updates week 41 (1): Server, viewer, general updates

A quick summary for now, as I’m a little caught-up in RL bits.

Server Deployments – Week 41

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

Second Life Server (Main Channel)

There have been no updates to the Main channel.

Second Life RC BlueSteel, RC Magnum, and RC LeTigre – Wednesday October 9th

The RC channels should all receive on update, but otherwise remain on the package deployed in week 40.

The one addition to the package is the fix for the llGetCameraRot() LSL function, which I reported on here, and relates to a “lazy” update to scripted objects using this function as a result of recent interest list updates.

Release notes for the package are the same for all three RCs, BlueSteel is the one linked to.

If all goes according to plan, this RC deployment should be promoted to the Main channel in week 42, and new packages deployed to the RCs.

SL Viewer Updates

Following the promotion of the Maintenance RC viewer to the de facto release viewer, Monday October 7th saw the Snowstorm contributions RC updated to version 3.6.8.281997, based on the new release viewer code base, and the Google Breakpad RC viewer was similarly updated on Tuesday October 8th, to version 3.6.8.282050.

Interest List

Andrew Linden reports he is trying to get some regions up and running on Aditi to test scene loading. All things being equal, the viewer-side code which utilises the recent interest list updates deployed to Agni should make a debut appearance  (probably as an RC maintenance viewer) in week 41, however, Andrew also commented on the fact that odd little bugs keep showing-up on the server side which impact the viewer

Group Ban List

Baker reports that he’s working hard to get everything up and running on Aditi over the course of the next two weeks. Internal testing of his code should commence this week, and he warns he may miss his target as a result of personal commitments.

SL projects update week 40 (1): server releases, group ban list, interest list

Server Deployments – Week 40

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

Second Life Server (Main Channel)

There have been no updates to the Main channel.

Second Life RC BlueSteel, RC Magnum, and RC LeTigre – Wednesday October 2nd

All three RCs should receive the same maintenance package comprising:

  • A fix for a bug affecting group notice delivery to large groups whereby the notice randomly fails to reach some group members
  • Interest list preparatory work for more correct sort order during scene load
  • New JSON_DELETE option to llJsonSetValue(), for deleting elements in JSON strings. Usage: ‘string output_json = llJsonSetValue(string input_json, [list location, JSON_DELETE)’ will delete the element specified by the location argument

Release notes: BlueSteel, LeTigre and Magnum.

Simulator UG meeting, October 1st, 2013
Simulator UG meeting, October 1st, 2013

Region Crossing Issue Update

Speaking at the Simulator User Group meeting on Tuesday October 1st, Andrew Linden reported that both he and Maestro had been looking into the recent problems with region crossings which have been hard to pin down to a specific cause. However, Andrew was confident one cause had now been identified, saying:

It appears that there is a bug when vehicles cross region boundaries on parcels with autoreturn. “In particular, if the vehicle has been on the parcel long enough to trigger autoreturn, it won’t actually get autoreturned because someone is sitting on it. But when it tries to cross the region boundary with the rider things fall apart.

Simon Linden indicated he had a proposed fix for the issue, which he wanted to discuss with Andrew outside of the meeting, but hopes that the fix will be in a position to be deployed in week 41 (commencing Monday October 7th).

Group Ban List

The obligatory Baker Linden shot :)
The obligatory Baker Linden shot 🙂

Following-on from the update given on his behalf at the TPV Developer meeting on Friday September  27th, Baker Linden appeared at the Simulator User Group meeting to provide a rapid-fire update on his latest state-of-play with the group ban list work (see JIRA VWR-29337):

Today I’ll be working on merging the viewer code with what’s in release, and I’ll be working on getting up some actual builds to deploy to a grid for internal testing (it is not Aditi yet). so by the end of the day, I should have all the components deployed and ready for internal testing, and depending on how well that goes, it’ll be ready for Aditi soon!

In terms of the viewer code becoming visible, Baker believes his project viewer repository will become visible soon, most likely around the time of the next TPV developer meeting, when he is due to explain the new functionality.

In the meantime there’s still some further work required on the code, as he explained. “There are still a few small bugs and issues I have to work on in the code — I’ll be working on those while internal testing is happening. There’s a major refactor in llpanelgroupinvite, which is what I’m trying to hand-merge today.”

Interest List Work and Video

Andrew Linden has been finishing-up on some additional interest list work, and is now looking to produce a video showing the “before” and “after” scene loading within a region. The “before” part of the filming is already in the can, but the region he used is now “long gone”, and so he picked-up a few suggestions from the Simulator group on regions which may offer go locations for shooting the “after” segment of the film. Essentially he’s looking for regions with lots of objects be which are not ridiculously overloaded with textures.

Other Bits

Render Weights and Calculations

Work has been going on around the issue of render weights and how they are calculated. The current Maintenance viewer has code for a new “automatic avatar render limit and feedback system”.

Que Niangao raised concern at the meeting and on the SLU forum that a constant forming a part of this system – OBJECT_RENDER_WEIGHT, which requires feedback from the viewer, and so might be used for grefing people; such as through a viewer tweaked to return highly inflated numbers for others in a region, thus allowing it to become a tool for griefing.

Responding to Que’s enquiry, Simon Linden said, “Yes … OBJECT_RENDER_WEIGHT needs to be used carefully. First, the way that is calculated is likely to change … I’m going to be working on it today, in fact.”

He went on to indicate that he’s been gathering data on avatar weightings (samples from about 500 avatars) which he’ll be using to make the changes, although he may be seeking further assistance. The changes he’s looking to make are on the server, but he was a little circumspect on details out of concern that going too deeply into how things work on the server as do so could make it easier for the unscrupulous to game the system.

One area where the new system will hopefully have an impact is in preventing the use of worn sim laggers impacting a region as can currently be the case.

SL projects update week 39 (3): viewer, interest list, HTTP, SSA and more

The following notes are taken from the TPV Developer meeting held on Friday September 27th. A video, courtesy of North, can be found at the end of this report. The numbers in braces after each head denote the time stamp at which the topic can be listened-to in the video.

A typical TPV dev meeting
A typical TPV dev meeting

SL Release Candidate Viewers

SLShare

[03:00]

Following my coverage of the release of SLShare, the opt-in capability for those wishing to link their Second Life accounts with their Facebook accounts, A question was asked as to whether the feature would be available to TPVs. Speaking at the TPV Development Meeting, Oz Linden provided comments which answered this question more fully, and and Merov Linden gave further information on the functionality in general.

“One of the design considerations is that this is a feature you [TPV developers] can all integrate without any problem,” Oz said. “All of the actual connections to Facebook, all of the handling of the requisite authentication tokens and permissions and [the] relationship with Facebook itself, is all handled server-side. So the code that’s in the release candidate viewer is something that you can integrate so that you can also make this feature available on whatever schedule you would like to.”

He went on to confirm that given this, no Facebook information for users of the service is exposed to TPVs.

As to how soon it might be before the SLShare RC is promoted to the release viewer, Oz again reiterated that it depends on how well the various candidates currently in the release channel perform. Currently, the metrics for the viewer look good, according to Merov, so it may still leapfrog its way to becoming the release viewer. However it is more likely that it will not become the de facto viewer for at least another two weeks.

Despite the negative reactions to the feature which have appeared in the comments following blog posts, etc., reporting on the functionality, the Lab believes SLShare is already “getting a lot of use”. This view is based on the numbers of people who have pro-actively gone and downloaded and installed the RC viewer manually.

While this may be a case of the Lab greasing the wheels a little bit (downloading and installing the viewer isn’t necessarily the same as running the feature),  Firestorm are reporting that they’ve had at least one request for the feature to be added to their next release.

During the meeting, a series of questions were raised on the feature:

  • Will the feature become opt-out in the future, rather than opt-in? Merov Linden:  “It’s opt-in. We’re not doing anything [behind] the back of the residents.”
  • Will the feature create a Facebook account on behalf of anyone using it? Merov Linden:  “There is no API to create an account on Facebook on behalf of someone.”
  • Will it lead to a merging of the current SL feeds with the Facebook feed?  Oz Linden: ” No, there is no connection between the Second Life profile feeds and the Facebook feed. They have no relationship at all … In theory one could probably build a viewer that did that, but we’re not planning on it.”

(Further questions passed unanswered due to the region in which the meeting was being held being subjected to a griefing attack which left it in a poor state and prompted a change of meeting venue.)

Viewer Statistics

[33:26]

The Lab has been putting together a new statistics reporting system, which is now starting to be used to generate a range of reports. Commenting on some of the information which is coming out of the system, primarily in response to questions asked at both Open-source dev and TPV dev meetings, Oz indicated that:

  • Almost one-third of regions within SL have at least one materials-enhanced object in them, which is described as “dramatically faster” than the adoption of mesh
  • The number of avatars wearing materials-enhanced mesh / prim clothing is “steadily climbing”
  • The number of people who have Advanced Lighting Model (ALM) enabled on a “class 3” (mid-range Graphics cards) or above is just under 20%

One of the problems here – from the Lab’s point of view at least – is that both Singularity and Firestorm have ALM turned off by default for almost all graphics settings, except perhaps High-Ultra, and Ultra. The flip side to this is the view that the Lab enables ALM by default on cards which are barely able to support it, with the result that people’s SL experience suffers through poor frame rates.

In the past the Lab has pointed to data which tends to show that viewers running on low-end graphics cards card do indeed suffer performance issues with ALM active; mid-range GPU show little difference in performance between running with ALM active or not and have “reasonable” fps rates; high-end (“class 5”, as they call them) cards  – e.g. ATI Radeon HD 7800, 7900, 8900, 8950 + similar, nVidia GTX 460/460SE, 465, 550TI, 580, 660/660TI + similar – perform significantly better with ALM active.

The problems here are how one defines “reasonable” frame rates and how one interprets ALM. For the Lab, it would appear that “reasonable” frame rates is anything in double figures – e.g. above 10; many users would disagree with this. At the same time, many users still appear to equate having ALM active with having Shadows enabled (which actually leads to a far larger performance hit), but the two are actually quite separate. As had been pointed out a number of times in these pages, ALM can be active without having to enable shadows.

Running with ALM active does not require shadows to be enabled
Running with ALM active does not require shadows to be enabled

Nevertheless, part of the new viewer statistics system should enable to Lab to gather and present performance numbers for cards with and with ALM enabled, filtered by viewer, so that TPVs can better judge matters for themselves.  In addition, Oz is going to be looking at ways and means of doing systematic testing with cards in order to generate more meaningful statistics, and which may allow for other factors which influcence performance (other avatars in the same region, the amount of movement going on, viewer settings, etc.).

Understanding Viewer Performance

[45:41]

A further problem with the viewer is that it is complicated, and while there are many tools to help monitor performance, people either focus on the wrong tools or cannot find those that would be helpful to them in diagnosing an issue when they do encounter unexpected performance drops.

To this end, Oz floated the idea at the TPV Developer meeting for TPV devs to give thought as to which tools and information feeds within the viewer would be useful to users to help them understand what is going on, and how best to present said tools, etc., in a way which would make sense to users and enable them to make use of the information they are seeing.

Continue reading “SL projects update week 39 (3): viewer, interest list, HTTP, SSA and more”