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.

“Tiling” snapshot fix (and more) now in the SL release viewer, Dolphin, Niran’s and RLV

Snapshot Tiling Fix

The snapshot tiling fix (MAINT-628) can now be found in the following viewers:

  • Dolphin viewer 3.4.6.26773+ (current release now 3.4.7.26856)
  • Niran’s Viewer 2.0.5+
  • Restrained Love 2.8.3.5+ (Windows)
  • SL release viewer 3.4.3.268262+ (released: 18th December).
Tiling test for Dolphin
Tiling test for Dolphin (3.4.6.26773+): image taken at 3500×2134 resolution using Dolphin 3.4.6.26773. Location: The Island of Armenelos (M) (click to enlarge) – fix also in the latest SL official viewer (3.4.3.28262), Niran’s Viewer (2.0.5+) and RLV (2.8.3.5+)

Graphics Preferences Updates for GPU Classes

The SL viewer, Dolphin and RLV all include the new Graphics Preferences settings related to the ongoing GPU table updates. These new options place additional “stops” on the Quality and Speed slider between the four original settings of Low, Mid, High and Ultra, which are intended to better represent the default SL capabilities of different GPU classes,

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

SSAO Fix for Horizon Haze

Also included in the recent Dolphin and Niran’s Viewer releases, is Tofu Buzzard’s SSAO improvements for generating horizon haze over Linden Sea (“ambient  distance fog”). This helps overcome a long-standing bug within the viewer which has effectively broken / nerfed horizon haze over Linden Water for a considerable time.

SSAO haze effect - fix from Tofuu blizzard, available in deferred mode on Dolphin and Niran's viewers.
SSAO haze effect – fix from Tofu Blizzard, available in deferred mode on Dolphin and Niran’s viewers. (image courtesy of Niran V Dean) – click to enlarge

Space Reflections

Niran’s viewer also introduces an interesting / experimental viewer-side feature from Tofu Blizzard called “space reflections”, designed to create reflections on shiny surfaces when running in deferred mode and with the appropriate Graphics Preferences option enabled. It’s not perfect, but it can be used to produce some interesting effects, as shown below, if only for those running a viewer which can render the desired results.

Tofu blizzard's "space reflections": (l) a viewer running in deferred mode; (r) Niran's viewer running in deferred with "space reflections" active
Tofu Blizzard’s “space reflections”: (l) a viewer running in deferred mode; (r) Niran’s viewer running in deferred with “space reflections” active to produce reflections both on the floor and inside the large sphere (click to enlarge)

Related Links

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”

SL project news week 50/2: server and viewer

Server Deployments Update

The RC channel deployments went head as scheduled, and included the promised fix for offline IMs from scripted objects failing to reach people’s e-mail (BUG-1002). A further issue (BUG-1027) with group owners receiving garbled messages on ejecting group members was reported over the weekend of the 9/10th December, and this also received a fix which formed a part of the deployments.

As reported in part 1, Magnum received code to double the server-side memory allocation from 60KB to 120KB. Animations within SL have two core limits: loop time (30 seconds) and memory allocation (60KB). Apparently, some complex animations which ran within the 30-second time frame have been hitting the memory allocation limit. This initial change should help to ease that issue when encountered. A future change on the viewer-side of things should eventually increase the animation run-time as well, allowing for animations longer than 30 seconds to be uploaded and used.

Server Deployments Week 51

Given Magnum has all the same changes as both BlueSteel and Le Tigre, plus the additional stability improvements and memory leak fixes, it now looks likely that this code will be promoted to the Main Channel on week 51 (week commencing Monday 17th December).  No news was provided during the Server Beta meeting on any proposed RC releases during week 51.

Again, as a reminder, there will be no server code releases during weeks 52 (commencing Monday 24th December) and week 1, 2013 (commencing Monday 31st December). There will also be no further Server Beta meetings until Thursday January 3rd, 2013.

Viewer Updates

Linden Lab continue to work on the beta and development viewers in order to clear the backlog of releases resulting from the memory leak / crash issues. Currently, they are “almost” at the end of catching-up on the release schedule. Some of the focus at present is on the Mac side of things, with Oz Linden reporting that there should be “A bunch of changes for the Mac build and the Mac implementation coming into viewer development” over the next few days.

The beta viewer has seen a further 3.4.3 code release (3.4.3.268139 on December 14th). This should mark the last of the 3.4.3 code releases for the beta viewer prior to that code moving to the release viewer, possibly in week 51. After this, the beta viewer will move to the 3.4.4 code base, which will include the changes for the Mac side of things as well. This should then see the viewer branches all more-or-less back to a normal pace of development and update, with fresh releases on the order of every three weeks or so, including more HTTP service updates and improvements.

Tcmalloc has been set off to one side in order to clear the backlog, but “has not been forgotten”. Currently it is still enabled in the beta release, but appears to be disabled in upcoming viewer development versions.

Avatar Baking

The biggest news of the week came with the announcement that for Avatar Baking, the countdown has commenced. This is going to take the next few months to implement, and requires both changes on the server-side of things and significant changes to the viewer. An update had actually been promised at the Content Creation User Group on Monday 17th December, but given the large impact the changes have on viewers, Nyx Linden rightly announced the news relating to the project at the TPV Developer meeting on Friday 14th December.

Nyx linden discusses server-side baking at the TPV Developer meeting, Friday 14th December
Nyx linden discusses server-side baking at the TPV Developer meeting, Friday 14th December

Threaded Region Crossings

The work on multi-threaded region crossings is still with the LL QA team. In the meantime, further regions have been added to the simulator version (server code  DRTSIM-184) running the new code. Four of the latter are GC Test 9, GC Test 10, GC Test 15 and GC Test 16, which form a block of four regions which may assist with testing the capability (remember these SLurls are all to Aditi!). Caleb Linden has been testing the capability and reports that he has encountered some issues himself, with crashes during “automated horde testing” and with repeated crossing with heavy scripts. He’s interested in hearing constructive feedback from anyone willing to carry out informal tests on the code.

Related Links

SL project news week 49

SL Viewer Updates

Things have been relatively quiet viewer-wise with only two updates to the official viewer branches. The development viewer rolled to 3.4.4.267614 December 4th, while on December 5th, the beta viewer rolled to 3.4.3.267755. The latter included a good crop of updates, including a number of graphics and GPU support related changes, and the long-await snapshot tiling fix.

Rough the same image shot using the new beta viewer at the same resolution  - no tiling line (click to enlarge)
The MAINT-628 fix in action: an image taken with the latest beta viewer running in deferred mode and at a resolution of 3500×2154 pixels, well above the 1400×900 of my monitor – and no tiling! There are limits to how well the fix works at ultra-high resolutions, as noted in the JIRA comments included in my report on the release.

Server Deployments

Following-on from last week’s RC deployment issues, there was no main channel deployment on Tuesday December 4th, although a number of regions were restarted during the course of the day.

Wednesday December 5th saw the same maintenance release rolled to all three RC channels. This comprised the release originally aimed at Magum in week 48 and which included all bugs fixes for the problems which required the roll-back on Thursday 29th November. Initial statistics for this update during the brief time it was available last week showed a clear improvement in stability, and this seems to have continued with this week’s release, although there has been one major issue come to light and is under investigation.

This relates to IM messages sent by scripted objects failing to trigger e-mails to the object’s owner if they are off-line. The problem appears to be related to the use of llInstantMessage(llGetOwner(), and appears to affect regions on all three RC channels, but not every case where llInstantMessage(llGetOwner() is used appears to be affected.

Currently, it is thought that a fix will be available for deployment during week 50, and should reach the RC channels om Wednesday December 11th.

Details of the week’s RC release can be found in the release notes and in the forum discussion thread (including some discussion on the current scripted object / e-mail issue).

Continue reading “SL project news week 49”

WOOT! Snapshot tiling fix is here!

Back in July 2012, I indicated that Runitai Linden had a long-awaited fix for the “tiling” issues affecting high-resolution snapshots for some people.

The issue was initially reported in JIRA MAINT-628 at the end of 2010, and has impacted viewer releases since then, becoming the subject to intense investigation by users and LL alike. The problem has tended to make itself known when taking images at a higher resolution than that of your monitor, resulting in lines breaking-up the captured image in a tiling effect.

In July Runitai commented on the JIRA thus:

Runitai Linden added a comment – 18/Jul/12 1:57 PM

Fixed in viewer-cat

Fix was to use a large render target for snapshots that are larger than the window, but only when lighting and shadows is enabled. Screen space effects will still show seams when lighting and shadows is disabled.

If the graphics card is unable to allocate a single render target large enough for the high res snapshot, the old method of tiling is still used. On my GTX 580, I could take artifact-free snapshots up to 3500 pixels wide, but could not allocate a full set of render targets at 4000 pixels wide, so the old method is used.

Changes involve an invasive set of changes to LLRenderTarget, so QA should be careful to check various shadow modes, ambient occlusion, depth of field, and anti-aliasing with lighting and shadows enabled. Running with Debug GL enabled will likely cause a crash now when taking high-res snapshots (expected and acceptable behaviour), since the driver reports “out of memory” when trying to allocate a large render target. When Debug GL is not enabled, the viewer handles this error condition gracefully and continues to function.

Sadly, in the interim, things went slightly pear-shaped with LL’s viewer code, with major bugs appearing in the beta code branch which brought updates to a juddering halt which they were sorted out. Those reading my weekly project news updates will be aware of the issues, which were finally sorted out last month. However, in the interim, a LOT of high-priority work has backed-up, with the result that MAINT-628 appeared to be in a holding pattern with a lot of other work, waiting for the high-priority stuff to clear. When I asked Oz Linden about the situation, he could only say that the JIRA looked likely to be out “pretty soon” – which suggested a potential wait of a few more weeks.

However, for those using the SL viewer – the wait is over!

Beta viewer 3.4.3.267755 was released on December 5th, 2012, and the release notes contain a small but significant entry:

MAINT-628[c] Highres snapshot – Rendering artefact (Window sized frame buffer regardless of snapshot size)

I’ve just been playing with the release, having long suffered from the tiling issue when trying to capture images at almost anything over my screen resolution of 1440×900 and the results are superb. The following two images were captured at the same image resolution (3500×2154). The top was captured using the current SL release viewer, and the lower image with the new beta viewer. The results are clear – but click to enlarge each, if required. Note the tiling line across the sky in the first image and the lack of any such line in the second.

The problem again: an image captured on my PC at twice my screen resoltuion (1440x900), using the release SL viewer, 7th December. Note the tile line in the sky (click to enlarge)
The problem again: an image captured on my PC at 3500×2154 resolution, using the release SL viewer, 7th December. Note the tile line in the sky (click to enlarge)
Rough the same image shot using the new beta viewer at the same resolution  - no tiling line (click to enlarge)
Roughly the same image shot using the new beta viewer at the same resolution – no tiling line (click to enlarge)

So, for those who have been afflicted by the tiling bug, the wait is almost over. You can either grab the beta viewer and start snapping in high res, or wait for the fix to arrive in your favourite viewer – the wait shouldn’t be that long now, hopefully!