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 3.6.10.282997 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 Projects update week 43 (2): server and viewer notes

Things are in something of a lull server-side in terms of deployments and projects at the moment, so the news from the Lab is a little light.

Server Deployment

With just the one deployment to the Main channel in week 43, the entire grid is currently running on the same server release.

Commenting on the released package at the Server Beta group meeting on Thursday 24th October, Maestro and Simon Linden provided further information on the performance issue fix which is aimed at the experimental interest list viewer (which has yet to formally appear, but can be self-compiled by those with access to the code repository).

“The bug was about avatars not loading for ~70 seconds when you visit an area with ten or so avatars nearby, Maestro explained. “And by ‘not loading’,  you wouldn’t even see name tags.”

“I think the problem was when those viewers used new methods to download or check the cache state of some data … it would over-load the network and thus the avatar updates were really slow,” Simon added, before continuing, “Since the current viewer doesn’t do that, they don’t have the bug. Clubs and large crowds are always a problem because when you arrive you just get a ton of data to fetch and load.”

Week 44 should see what Maestro described as a “minor maintenance release” for the server appearing next week, which includes “a few miscellaneous crash fixes”. At the time of writing it is not clear if this will be the only RC deployment or whether anything else might also pop-up when the deployment thread is published.

SL Viewer Updates

The “Sharestorm” release candidate, version 3.6.9.282535, which combined the updates from the Snowstorm contributions viewer featuring the request teleport functionality with the SLShare release candidate, was promoted to the de facto release viewer on October 23rd. This leaves just the Maintenance release candidate viewer 3.6.9.282553 sitting in a release cohort, which will be updated in week 44, once it has been rebuilt using the release viewer code base.

Group Ban List

Baker Linden’s Group ban list work remains on internal testing within the Lab (with Maestro and Caleb Linden volunteering as Baker’s guinea pigs). The project has also apparently been awaiting internal QA resources.  Baker hopes to have a detailed update on progress in week 44, but as he said at the Server Beta meeting, “I’d rather take the time to do it properly than rush it out the door and have it be worthless! :).”

Other Items

As reported in week 42, A problem had been noted following-on from the recent updates to prevent people from using recursive rezzing which means some engaging in combat have found combat vehicles in regions with short auto-return times can have their ordnance immediately returned when a weapon is fired, and any temp vehicles are unable to rez attachments, even when sat upon. Maestro confirmed that as a result of a feature request having been raised, Andrew Linden is now looking at introducing a special exception for temp-on-rez / auto-return timer inheritance when the rezzer is a vehicle.

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.

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 (2): server, group ban list

Server Deployments – Week 42

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

Tuesday October 15th saw the Main channel updated with the server maintenance project previously on all three RC channels in week 41.

The planned deployment of a new server maintenance project to all three RC channels was threatened at the 11th hour by the discovery of a bug  which took time to resolved, and left the package teetering on the edge of whether it would pass QA testing in time to make the deployment cut-off.

Maestro Linden's disco-themed Server Beta meeting venue (stock)
Maestro Linden’s disco-themed Server Beta meeting venue (stock)

Speaking at the Server Beta meeting on Thursday October 17th, Maestro Linden expanded on this last-minute bug. He explained that it took the form of objects failing to vanish from a user’s field of view after being de-rezzed, and would instead remain as a ghosted object until touched, because the user’s viewer wouldn’t get the update message that the object had been de-rezzed. The problem for the Lab was that the issue would occur in some places but not in others, and seemed to be dependent on things like camera position and draw distance, making it hard to reproduce consistently.

Andrew Linden finally worked out that the problem would only occur in regions with a neighbour to the east and if the user’s viewer was connected to that region. So depending on the region, the object’s position, your camera position and draw distance, the bug might or might not trigger.

While the issue was successfully addressed and the update package successfully deployed on schedule, the Lab are still uncertain as to why the bug should only occur when there is a neighbouring region to the east; however, it’s fair to say that this is not the first “east related” bug to have been found.

Group Ban List

Baker Linden is continuing with internal testing with the new code, using Maestro and Caleb Linden as his guinea pigs. Apparently, the server-side code is hung-up in LL’s internal QA, possibly awaiting resources there. As such, it has yet to become visible and there are currently no regions available on Aditi which include the server-side updates.

Other Items

A problem has been noted following-on from the recent updates to prevent people from using recursive rezzing to grief regions (see my week 35 and week 37 reports). As a consequence of this, some engaging in combat in Second Life have encountered issues wherein combat vehicles in regions with short auto-return times can have their ordnance immediately returned when a weapon is fired, and any temp vehicles are unable to rez attachments, even when sat upon.

Commenting on the situation, Maestro agreed the use-case is legitimate and that some exemption should be made for sat-upon vehicles / objects in these circumstances. He’s agreed to put the matter to Simon and Andrew Linden for further discussion on the best way to approach and resolve the issue.

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.