SL project news week 2 / 1, 2013: avatar baking, materials processing, CHUI and more

SL Beta Viewer

There have been some rendering issues with the last release of the beta viewer (3.4.4.268497, December 20, 2012) which had caused the Lab a slight headache in that not all tests are giving the same results. However, a further 3.4.4 release is anticipated for either Monday 7th or Tuesday 8th January, 2013, which includes various fixes. Whether these are related to the rendering issues is unclear. However, they have not as yet been merged into the Sunshine Project (Avatar baking – see below).

CHUI – Communications Hub User Interface

As reported over the holiday period, the CHUI project is moving forward, with a further update of the project viewer and several updates to the development version of the viewer, possibly the result of code refactoring work which had been indicated as being required prior to the holidays. However, as of the TPV Developer Meeting of Friday 4th January, 2013, it was unclear as to whether this refactoring work has been completed.

CHUI: TPVs may cherry-pick from the code
CHUI: TPVs may cherry-pick from the code

Currently, the code has yet to be made available to TPVs, and concerns have been raised by some TPV developers that integrating the CHUI code could be as much a headache as the Avatar Baking code. Given the work some have put into the communications elements of their own viewers, it is also possible that some might opt to cherry-pick which elements of the CHUI code they will adopt. Whether CHUI is liable to be deployed before or after the Avatar Baking project remains to be seen, as the Lab has yet to make a decision either way.

Server-side Avatar Baking

Avatar bake fail
Avatar bake fail

Project Sunshine, the work to implement a new server-side baking process, kicked-off (as far as  TPVs are concerned) just before Christmas. This represents a substantial code merge for TPVs, and one which is going to take TPVs a while to handle as a result, hence the reason why LL have given TPVs a long lead-time on the project, with around an eight-week window available for them to work on the code, provide feedback and assist with testing.

As mentioned in my detailed look at the new service (see link above), any deployment of the server code will be dependant upon further and significant load tests, which are viewed as essential in ensuring the new compositing service has sufficient hardware for it to support avatar baking across the entire grid. At the time that article was written, Nyx indicated that details on how the load tests would be handed had not been finalised.

Speaking at the TPV Developer Meeting, Oz indicated that these tests are still under consideration, and as such, much in the project is still up in the air in terms of unknowns. Obviously, on way in which load tests can be carried out is to have more test / development viewers available to enable greater testing of the server-side code, so overall implementation of the new service is somewhat symbiotic, and it is unlikely there will be a large-scale deployment of the service prior to TPVs being sufficiently comfortable / up-to-speed with integrating the code into their viewers.

As such, it is unlikely that there will be any major move on the Lab’s part to push the project forward much before the end of February. With regards to this, Oz commented, “Obviously, what we’d like to know is that we’ve got at least one version of all the third-party viewers that are prepared to cope with it, and that certainly getting an affirmative on as many of those as possible before we make a final call on what our target dates are would be really great. So that’s why we’re keeping the pressure on you to do that testing, as we’d rather you were ready before we were.”

Materials Processing

The materials processing project continues to move forward, although there are growing concerns over the fact that the viewer will be required to run in deferred mode (i.e. with shadows & lighting active) in order for the new capabilities to be properly rendered. This means that computers which do not have sufficient processing capabilities to run in deferred mode will not be able to render the effects of normal and specular maps, and so will not see the effects of materials processing.

When life gives you lemons, map them: on the left, a normal map, on the right, a normal and a specular map together (credit: Mind Teat Studios)
When life gives you lemons, map them: on the left, a normal map, on the right, a normal and a specular map together (credit: Mind Teat Studios)

However, this does not mean that those unable to run SL reliably or reasonably with deferred rendering enabled will have their SL experience negatively impacted. The expectation is that users on such system will continue to see SL as we all see it today, regardless as to whether or not in-world objects and avatar attachments (prim, sculpt or mesh) are using the new materials capabilities.

However, this is also conditional on content creators understanding how to correctly make use of materials process as it will apply to Second Life (especially those trying to leverage the new capabilities, but who may not themselves be able to run the viewer in deferred mode), and ensuring they use underpinning diffuse maps (textures) of a suitable quality. To help ensure this, Oz Linden has stated he will give those at the Lab responsible for the Good Building Practices guide on the wiki a nudge so that it is expanded to cover materials processing.

That materials processing does require running the viewer in deferred mode has given rise to concerns as to how widely the capability will be adopted. However, the Lab has no plans to try to implement materials processing in a way which does not require deferred rendering (assuming this could be done). This is not to exclude anyone from experiencing it, but rather because the capability simply requires deferred rendering to be enabled. Whether or not the capability will introduce an additional overheads to running in deferred has yet to be fully determined.

In the meantime, the repro for the viewer-side code required for materials processing will be officially made available (it was accidentally exposed just before Christmas), some time in the next two weeks or so, and a project viewer should appear shortly thereafter. The server-side code is thought to be in, “Pretty good shape.”

Continue reading “SL project news week 2 / 1, 2013: avatar baking, materials processing, CHUI and more”

SL project news: week 1, 2013: forthcoming RC releases, viewer, and new work

RC Deployments for Week 2

The Lab is still getting back up to speed following the Christmas / New Year break, so expect further information to be forthcoming on Main and RC releases for week 2, 2013 via the Server topic of the Technology Forum.

However, as it stands, there are two projects which it is hoped will reach RC channel release in the week commencing Monday 7th January, 2013. These are Caleb Linden’s threaded region crossing code and Andre Linden’s interest list code.

As I’ve previously reported, the threaded region crossing code was subjected to a pile-on test on Aditi towards the end of 2012. The results were, on the whole, a little disappointing for those taking part – although expectations may have been set a little high. While there were some improvements noted – particularly when travelling between regions on foot and with a heavy script load – overall, there were sill issues with crossing between regions in vehicles (particularly ground vehicles).

Airbourne antics: vehicles still exhibited region crossing issues duing the threaded region pile-on test in December 2012
Airbourne antics: vehicles still exhibited region crossing issues duing the threaded region pile-on test in December 2012

Issues arising from the pile-on test are still being looked at, and Caleb repeated his request that anyone noting specific issues should raise a JIRA directed for his attention. For those wishing to try out the code, the GC Test regions are still available on Aditi.

The Interest List code is still subject to receiving an OK from the Lab’s QA team. There will doubtless be an update on this – and on the planned RC releases in general – at the Simulator User Group meeting on Tuesday 8th January, 2013.

SL Viewer News

Not a lot to report on here at present. The Beta viewer reached the 3.4.4 code base Just before Christmas 2012, (3.4.4.268497, December 20, 2012). There may be a rendering issue which may require addressing and might lead to a slight delay in releases; apparently, not all tests are giving the same results, so LL are still investigating the matter. Work is continuing to update the GPU tables for the viewer; further cards have been added to the table, and several blanket entries have been removed (such as all unrecognised nVidia cards being detected as nVidia Ion GPUs).

As reported over Christmas, CHUI rolled through a number of rapid releases in its development version, and the main project version rolling to 3.4.3.268587 on December 22nd. Both the development and project versions of the viewer are on the 3.4.3 codebase, and the most recent development release was made on January 4th (3.4.3.268703). Both versions are available from the Alternative Viewers download page.

While the core of the Mac version of the viewer is built using OSX 10.7 (with Xcode 4.3.3), work is progressing in moving the viewer to OSX 10.8 Mountain Lion, which is expected to happen “very soon” according to Oz Linden, although no date is available as to when.

New Pathfinding Capability

VoidPointer Linden is working on a new flag for pathfinding characters. STAY_WITHIN_PARCEL is designed so that when set, pathfinding characters will only set goal points during wander, evade, pursuit, etc that are within the parcel they get created in. If the parcel is a non-regular shape, it is still possible a character will cross between it and neighbouring parcels (unless the navmesh is cut through the use of an exclusion volume), but goal points will only be set within the originating parcel. The code is still in development, and so the constraints on where a character can wander when it comes to irregular parcel shapes, but VoidPointer is not making any promises on this.

He's completely batty! - Voidpoint Linde at the Server Beta UG meeting, Jan 3rd, 2013
He’s completely batty! – Voidpointer Linden’s avatar at the Server Beta UG meeting, Jan 3rd, 2013

There is no stated delivery time for this new feature, other than it is currently being worked on.

Server Object Rezzing Code

Baker Linden has been looking to improve how objects with large file sizes are handled by the simulator software when being rezzed. He describes the work thus, “What I’ve been working on is hopefully significantly decreasing lag spikes when rezzing large, complex objects. Large does not necessarily imply size, but size of the files being read. When an object is rezzing, we have to parse the object / mesh files and create our in-world objects with that data.”

Until now, reading and parsing of any files related to objects which require rezzing has been on the main thread. When several such objects requiring rezzing at the same time, the simulator stalls. Baker has been moving the reading / parsing operation to a background thread in the expectation that rezzing multiple “large” (again, in terms of file size, not the size of the object itself) objects will not choke the simulator.

The key point about this work is that it is specifically aimed at preventing the simulator processes from choking and a region stalling when there are a number of large object files being read / parsed, not at actually “speeding up” the physical rezzing process. As such, it is unlikely that objects will appear any faster in people’s in-world view as a result of this work. However, what it does mean is that the simulator code will be better able to handle rezzing multiple “large file” objects without the attendant region lagging which can occur as a result of the simulator being unable to process messages from viewers and other simulators, etc.

Information Sources

  • Opensource Developer meeting, Wednesday 2nd January, 2013
  • Beta Server meeting, Thursday 3rd January, 2013.

Related Links

CHUI: progressing towards mainstream release

I first took a look at the CHUI – the Communications Hub User Interface – project viewer on its announcement and release back in October. Since then, as noted in my SL project news updates it has gone through recent updates as it progresses towards readiness for mainstream release, quite possibly in the early part of 2013.

The past week has seen new updates to both the “release” version of the project viewer (December 22nd) and also to the “development” version of the viewer (December 24th). Both are available from the viewer download wiki page.

The “main” release – viewer 3.4.3.268591, was announced via a forum post, which highlighted the updates as:

  • Addition of notifications and notification preferences
  • Smaller Conversations and People windows with increased resizability
  • Adding more ways to get to certain functions. For example, we added a speak button to the Conversations window toolbar
  • Improved performance
  • Bug fixes and polish
The new "Speak" button in the confersations floater - available for IMs and open chat
The new “Speak” button in the conversations floater – available for IMs and open chat

The resized floaters is a good step forward, as is the greater control now available in resizing windows. There are still some elements missing from the conversations floater people my find convenient (or at least annoying because of their absence), in particular:

  • An ability to range IMs horizontally rather than vertically: many people prefer to have their IMs ranged horizontally, possible as a holdover from the “old” integrated conversations floaters which stretched back in 1.23.5. The problem here is that any move to incorporate this into the design would break with ergonomics of the “collapsible” nature of the current floater using the right / left pointing chevron buttons
  • The inclusion of a teleport button for the IM windows: this is altogether more useful, and it is hard to see why this was dropped from the redesign, given it is part of the current IM floater layout, and most likely a button which sees frequent use. OK, so teleports can still be achieved via the right-click context menu, but if convenience is the name of the game, it is hard to see why the teleport button has been ignored
The three compact views of the Conversations floater: one reason horizon IM tabs may not be incorporated
The three compact views of the Conversations floater: one reason horizon IM tabs may not be incorporated

Whither the Survey?

One thing still very much missing from the CHUI project is the promised user survey. When the project viewer was first launched in October, the Lab specifically asked people to try it out and consider a number of questions relating to it, noting that, “We’ll ask you to complete a survey in approximately one week to gather your thoughts on these questions.”

The survey has yet to appear. Whether this is because the feedback coming through the CHUI JIRA has been sufficient for the project team (and the amazing Whirly Fizzle has been generating an incredible amount of detailed and informative feeback!) is unclear.

Current Status

The precise status of the project is unclear, but it appears to be reaching a “feature complete” status – which again raises the question as to whether we ill see a survey on the project or not. Merging the project viewer to the 3.4.3 code base would appear to move it one step closer towards a viewer development  / beta viewer merge (both are now 3.4.4 code), but there are wider issues within the viewer still be rectified. For example, nothing happens at all when right clicking on any object contents – the usual context menu fails to appear. It’s therefore unlikely that the CHUI code will make an appearance in a development or beta viewer until such time as it has been confirmed problems like this have been identified and resolved.

In the meantime, and if you haven’t already done so and would like to, the CHUI JIRA remains open for comment, and the project viewer can be obtained from the SL Alternate Viewers wiki page (links below).

Related Links

SL project news week 51/2

Server Deployments

The RC channel deployment took place on Wednesday 19th December as planned, with no major hiccups or issues apparently being felt / reported. This release saw all three RC channels receive the same package, which is the Magnum deployment from week 50, with a single additional bug fix.

The release notes (for Magnum, but applicable to all three RC channels) can be found here, and the forum discussion thread is still open should anyone have comments (allowing to the start of the holiday period & delays in any replies from LL).

SL Viewer Update

The last beta release of 2012 arrived on Thursday December 20th with the release of 3.4.4.268479 – which as the name suggests, uses the 3.4.4 code from viewer-development. Chief among the updates in this release include:

  • Moving viewer crash logger and SLPlugin from the Carbon API to Mac OSX Cocoa for the Mac viewer
  • Fixes for fontconfig crash-on-start issues experienced with Linux
  • Revisions for pathfinding options, including additional of tear-off option for Pathfinding menu when opened from Build menu; introduction of Region Rebake option to Pathfinding menu
  • Fixes for 3.4.2.266708 release issue of flexiprims stopping flexing after teleports
  • Further fixes for llTargetOmega() issues

The full set of release notes can be found here.

Forthcoming Viewer Graphics Enhancements

Alongside of the upcoming materials processing capabilities of normal and specular maps, the SL viewer will be receiving further rendering improvements in 2013, comprising:

  • Gamma correction capabilities
  • Improvements to the “Shiny” capabilities in the viewer (Build floater > Texture tab >Shiny button) when running in deferred mode, to make shine appear more as it does in the real world, with the level of shine based on the amount of reflected light / angle from which a shiny object is viewed from relative to the light source
  • In-world scene reflections on shiny surfaces.
Gamma correction: from Exodus to the SL viewer in 2013
Gamma correction: from Exodus to the SL viewer in 2013

Gamma correction is a process by which lighting on a screen can be adjusted to make it look more natural to the human eye by adjusting the RGB channels to give a more natural-light contrast. It can also be used to produce interesting photographic effects. Exodus viewer already has gamma correction, which can be adjusted via the Visual Settings floater (above).

A simple, if extreme, example of gamma correction: both images were taken under the same lighting conditions
A simple, if extreme, example of gamma correction used for a photographic effect: both images were taken under the same deferred lighting conditions, the image of the left with “normal” (default) gamma correction in the viewer, the one on the right taken with all three channels increased in value to produce an image with a much deeper contrast

As with materials processing, all three of the new capabilities are being introduced to the SL viewer via the Exodus team, lead by Geenz Spad, who indicated that in the case of gamma correction, the new capabilities will be somewhat more capable as a process within the SL viewer than is currently the case with the Exodus viewer.

As with material processing itself, which is still progressing, as I reported last time, there are no time frames as to when each of these new capabilities will be available within the viewer.

Threaded Region Crossing Code Test

Wednesday 19th December saw a “pile-on” test take place on Aditi for the new threaded region crossing code. The test has been called by Caleb Linden with a view to trying-out region crossing under a range of tests, including avatars with heavy scripted loads, repeated crossings by vehicles, via teleporting, etc.

In all, six regions were / are available for tests: GC Test 9, 10, 15 and 16 forming a block of four running in “threaded” mode, and GC Test 2 and 8 running in “unthreaded” mode, but otherwise the same server code.

Turn-out for the tests wasn’t particularly great (around 15 people together in the test region at any one time), with a range of ground and air vehicles being used to try-out the crossings and compare them directly with crossing between the two unthreaded regions (and testing between threaded / unthreaded).

The overall consensus from those at the tests were that crossings between threaded regions were somewhat improved – but the overall improvements were not that spectacular. At times recovery from loss of control of a vehicle appeared to be faster – a matter of one or two seconds – but at other times, things seemed to be the same, with vehicles ploughing through the ground / flying into the air for 6-7 seconds at a time before recovering, giving pretty similar results to those encountered crossing between threaded / unthreaded and between unthreaded regions.

Crossing between threaded regions in a vehicle: some improvements, but not a lot
Crossing between threaded regions in a vehicle: some improvements, but not a lot

Crossing between regions on foot, even under an excessive HUD / attachment script load (373 scripts accounting for 2.87800ms cpu time) and with vehicles zinging back and forth, did appear to me to be somewhat improved, with little or no “rubber banding” or walking off into the sunset, but a recovery of control after just a few paces.

Post-test, Caleb has requested those participating in the test file JIRA on any specific issues they encountered, and include “Region Crossing” in the description / subject heading for the report.

With thanks to Darien Cauldwell for information on the viewer enhancements discussed at the Opensource Dev meeting.

SL project news: week 51

Server Deployments week 51

Tuesday 18th December saw the Main Release channel get the maint-server release as deployed to Magnum in week 50, as Maestro Linden indicated might be the case during the Server Beta meeting on the 13th December. There have been some reports of teleport issues following the deployment, but these are thought to be a network-side issue, rather than a problem with the server code itself.

Release notes.

All three RC channels should be receiving the same package on Wednesday 19th December, 2012 which is also the Magnum deployment from week 50, with a single additional bug fix.

Release notes (for Magnum, but applicable to all three RC channels)

Forum thread for the deployments.

This is the last set of server-side deployments for 2012.

A low-key Simulator User Group meeting on 18th December, the last for 2012
A low-key Simulator User Group meeting on 18th December, the last for 2012

SL Viewer Updates

The release version of the official SL viewer rolled to the 3.4.3 code on Tuesday 18th December, with the release of 3.4.3.268262. Among a range of updates, this release include the major GPU table updates seen in recent beta viewer releases, the additional graphics settings and the tiling fix for high-resolution snapshot (MAINT-638). This release also sees the return of JIRA numbers to the release notes, matching the recent beta viewer release notes update.

The new "intermediary" graphics settings intended to better represent the capabilities of different GPU classes
The new “intermediary” graphics settings intended to better represent the default SL capabilities of different GPU classes

The beta viewer should be moving to the 3.4.4 code with the next release, although it is not clear whether this will be before or after the holiday period.

Interest List Update

Andrew Linden has been tweaking and optimising his Interest list code. The first phase of the new interest list code is aimed at reducing the amount of information being sent to the viewer by the server. Speaking at the Simulator User Group meeting on the 18th December, Andrew commented, “Last week I managed to find an optimisation opportunity in my Interest List project, which shaves a few hundred usec off of some cases where there are a lot of Full Object Updates. So this would translate to better server FPS when in large groups of avatars or when in the presence of stuff that is generating lots of full updates.”

As I reported last time, object updates take three forms, Full, Terse and Delete. Full updates are generated when an object is seen for the first time, or which is undergoing a constant change in appearance / position. Terse updates are sent only when an object changes its appearance / position. Under the current Interest list system, both types of update are sent to the viewer, regardless as to where the viewer actually needs to process them. A primary part of Andrew’s work has been reworking the code so that updates – particularly terse updates – are only sent to the viewer when the object generating them is in the camera’s field-of view. This new optimisation work should further help reduce the number of updates being sent to the viewer regardless as to whether or not it has to process them.

Continue reading “SL project news: week 51”

Threaded Region Crossing pile-on test

I’ve been covering the upcoming improvements to region crossings – referred to as threaded region crossings – in my weekly SL project reports.

During the Server Beta meeting on the 13th December 2012, the subject came up for brief discussion, during which I suggested to Caleb Linden (who is heading-up the work) that perhaps a pile-on test would be an idea.

I’ve no idea if he read my suggestion, or was already planning to go ahead with such a test, but on Monday 17th December, 2012, he posted an announcement of just such a test to the Server thread of the TEchnology forums. The announcement reads in full:

In an upcoming server build, Linden Lab has changed the way agents and their attachments get carried over in the event of a region crossing. And we need your help to test region crossing in a pile-on fashion.

On Wednesday, December 19th at 16:00 PDT (Pacific Daylight Time) please join IRC (EFNET -> #sltest) to launch Second Life and join us via the following SLurl GC Test 9

The details of the tests are here

https://wiki.secondlife.com/wiki/Threaded_Region_Crossing_Beta_Tests

In the meantime, please let us know if you need access the test regions mentioned on the wiki or have additional questions.

How the tests will be carried out, and on the wiki page, Caleb invites suggestions to be e-mailed / forwarded to him. Currently, ideas for testing include:

  • Region crossing with regular avatar
  • Region crossing via manual TP
  • Region crossing on a vehicle (including Mesh based vehicles)
  • Region crossing while sitting on moving objects
  • Region crossing via scripted TP
  • Region crossing with attachments of varying sizes (including complex HUDs)

Issues have already been found with the new code when wearing script heavy objects during a region crossing and with repeated region crossings on vehicles, and the pile-on test looks in part to be a further investigation of these issues, as well as testing for other possible problems.

Note that this test will be on the beta Aditi grid, so you will need to be able to access that grid. If you haven’t done so in a while, you may want to check your ability to log-in, given recent issues. Also, as this is server-side code tests, it should not be required that you use a specific viewer, but keep an eye on the forum thread in case a decision is made to use a particular viewer.

Related Links