Firestorm 7.1.10: WebRTC and performance tweaks

On Tuesday, September 17th (SLT), Firestorm released version 7.1.10.75913 of their viewer.

This release is primarily focused on a merge with the Linden Lab Atlasaurus release code base, which combines initial performance bug fixes to help correct some of the issues seen with recent viewer releases with the WebRTC code in preparation for the switch away from using Vivox Voice with Second Life.

In addition to the above, there are some cherry-picked updates from the Lab’s upstream code (DeltaFPS), and also updates from the Firestorm Team.

Note that the following is not a complete review of the 7.1.10 release and all the changes made therein; it focuses on the more visible and user-facing updates. Those requiring a list of all changes and updates to Firestorm 7.1.10 should refer to the Firestorm 7.1.10 release changelog, which also provides all proper credits for the work.

Table of Contents

Note: as this review was going to post, Linden Lab promoted the DeltaFPS viewer to de facto release.

General Notes

Installation

  • Only download Firestorm from the Firestorm website. Do not utilise and other third-party site purporting to offer the Firestorm viewer, and remember Firestorm will never ask for log-in credentials in order to download a release version of their viewer.
  • There is no need to perform a clean install with this release if you do not wish to.
  • Do, however, make sure you back-up all your settings safely so you can restore them after installing 7.1.10.

Linden Lab Updates

Atlasaurus/WebRTC Viewer

  • Viewer version number 7.1.9.10515727195 – release notes in full.
  • Date of promotion to release status: 26th August, 2024.

WebRTC

WebRTC communications protocol (RTC=”real-time communication”) is the new Voice communications protocol for Second Life, replacing Vivox Voice.

Why Make The Change?

Voice in Second Life has been supplied through an arrangement with Vivox. This has required Linden Lab to utilise a viewer plug-in tool – SLvoice.exe – to manage voice services within the viewer., which in turn has made LL both reliant on Vivox for bug fixes for the plug-in, and subject to changes in support for operating systems imposed by Vivox such as the latter ending native support for Linux some years ago).

WebRTC by contrast is the predominant telephony protocol used by web-based applications, such as Google Meet, and is integrated into most common browsers. It has almost all the features common to Vivox in supplying a voice service – spatial in-world voice; peer-to-peer sessions; Group voice (including moderation) and multi-user Voice conferencing – although the are some limitations (see below).

Benefits and Improvements

WebRTC Offers a range of benefits over Vivox, including, but not limited to:

  • 48khz audio bandwidth providing cleaner sound.
  • User control over:
    • Audio noise reduction – high reduction for noisy environments, no reduction for clean audio sources (performers, etc.)
    • Automatic gain control – less need to individually tune other user’s audio levels.
  • Audio/video device selection.
  • Improved: spatialization,  audio echo cancellation and audio sampling rates for improved audio quality.
Options for managing WebRTC Voice quality can be found under Preferences → Sound & Media → Voice

Most significantly, WebRTC removes all reliance on a third-party plug-in for the viewer. Instead, it is supplied as a  a library and wrapper within the viewer. This means:

  • Linden Lab has greater ability to address Voice related issues directly, without having to await fixes from a supplier.
  •  Potentially opens the door to adding features and capabilities to SL Voice in the future, including some which have been long-requested.
Limitations
  • WebRTC does not support the existing Voice Morphing capability in Second Life.
    • This is because voice morphs are tied to the Vivox service, and cannot be utilised with WebRTC.
    • Those who do use the current Voice Morphing capability are directed to this SL Wiki article on Voice Morphing, which provides a list of solutions which can be used with WebRTC.
  • Conferences and group voice calls are limited to 50 participants.
Security

The Second Life implementation of WebRTC addresses security issues such as potential eavesdropping, exposing users’ IP addresses, etc., by routing communication through proxy servers managed directly by LL .

Project Status
  • At the time of writing this update, back end support is available on the WebRTC “Pop Rocks” simulator channel: WebRTC Voice 1WebRTC Voice 2WebRTC Voice 3 and WebRTC Voice 4.
  • Deployment to RC channel should  commence on Wednesday, October 2nd, when the code will be deployed to the BlueSteel RC channel.
  • During this deployment period both WebRTC Voice and Vivox Voice will be supported.
  •  LL will turn off the Vivox support on the simulators some time after WebRTC has been fully deployed and there is sufficient support for the service across all viewers.
Additional Information

Usability Enhancements

Object Take
LL’s new object Take options, as displayed through the Firestorm right-click context menu

When picking-up in-world objects you can now chose to:

  • Take As Combined Item: return all the selected objects to inventory as a single, coalesced object.
  • Take Copy As Combined Item: return copies all the selected objects to inventory as a single, coalesced object, leaving the originals in-world as individual objects.
  • Take As Separate Items: return all the selected objects to inventory, but list them as individual items, not as coalesced.
  • Take Copies As Separate Items: return copies all the selected objects to inventory, but list them as individual items, not as coalesced, leaving the originals in-world.

Note that for Firestorm 7.1.10, these options are ONLY available as a sub-menu set in the right-click context menu; they have not as yet been added to the Pie menu (see: FIRE-34438).

Avatar Rendering Updates

Linden Lab added new options to enable the prioritisation of rendering avatars using the following criteria:
  • Limit by complexity – any avatar with a complexity greater then your Avatar Maximum Complexity” setting will be rendered as a Jellydoll.
  • Always show friends – your friends will never be rendered as Jellydolls, no matter what their complexity
  • Only show friends – all avatars except your friends will be rendered as Jellydolls.

Within Firestorm, these options can be found as follows:

  • In  the  top menu → World → Avatar Display.
  • In the Performance Floater → Avatars Nearby.
Linden Lab’s avatar rendering options, as located within Firestorm 7.1.10
  • Notes:
    • In addition to these updates, Firestorm 7.1.10 retains the Firestorm option World → Show Friends Only. When enabled, the viewer will only renders your friends.
    • The now redundant Always Display Friends In Full Detail checkbox has been removed from the Performance Floater → Avatars Nearby.

Avatar-Related Improvements

  • Avatar height now correctly displays  in edit appearance window (see: FIRE-34192).
  • Worn clothing layers now all correctly report as such in inventory (see: FIRE-34343).
  • Fix for integer underflow causing issues with wearables.
  • Fix for avatar attachments & surroundings not rezzing after teleport when teleport screens are disabled (see: FIRE-33981).
  • Setting for AvatarRotateThresholdSlow and AvatarRotateThresholdFast added back into Firestorm following their removal as part of a viewer code clean-up by LL (see: FIRE-34196 and LL Bug #1963).

General Updates / Improvements

  • Add Images to Inventory Items in Bulk: select up to 50 inventory items → Right click selection → Image.
  • Option to control the amount of lights: Preferences → Graphics → General → Max Nearby Lights slider.
Control nearby lighting through the nearby lighting slider
  • GLTF model preview: use a prim to preview the appearance of a glTF scene / model:
    • Edit the prim. then Top menu bar → Developer → GLTF → Open.
      • To enable the Developer menu, either go to Advanced → Show Developer Menu or press Ctrl-Alt-Q or go to Preferences → Advanced → check  Show Developer Menu
    • Note that this feature is still in the early stages of development and that glTF models will only appear locally in your own viewer, they will not be rendered for others to see in their viewers.
  • Better MOAP URL handling in order for users to not only be able to CTRL-C or Cmd-C copy but also to see decoded URL payloads for easy inspection. In the nearby media list, you can also right click a media/data link and Copy URL/Copy Data.

Performance Improvements Summary

  • Mirrors disabled by default for all graphics quality levels to improve performance.
    • You can choose to enable mirrors manually in Preferences → Graphics → General → Mirrors.
  • Improved general performance with PBR – Issue 1769.
  • Fixed performance regression since Graphics Featurettes viewer – Issue 1831.
  • Fixed viewer failing to detect more than 4Gb of video memory on Windows – Issue 1583.
  • Improved texture memory calculation – Issue 799.
  • Various performance improvements for Mac:
    • Improved PBR viewer performance on Apple Silicon – Issue 1527.
    • Fixed setting a map beacon causing extreme lag on Mac – Issue 999.
    • Fixed severe stall and stutter in PBR viewers on Mac when editing objects – Issue 1203.
  • For the full list of fixes and improvements from Atlasaurus, please refer to the Atlasaurus release notes, linked to above.

Upstream Fixes from LL

  • Added error handling for intel crashes from the GLTF Scene shader – this fixes the login crashes on systems with older Intel HD graphics (see Issue 1856).
  • Fixed visual corruption caused by divide by zero in lighting functions – this fixes black & white areas in certain locations (see Issue 1852).
  • Fixed the voice call button being greyed out when you logged in to a voice disabled parcel (see this Canny bug).

Significant Firestorm Updates

Camera Roll

Ever wanted to physically roll the camera with ease when taking pictures? With Firestorm 7.1.10 you can, using an update based on an Alchemy viewer feature.  Both the large and the small camera control floaters have new camera roll buttons (see image below):

The new camera roll buttons and the button for re-centring the view
  1. The left button will roll the camera view clockwise on your screen through 360º.
  2. The right button will roll the camera view counter-clockwise on your screen through 360º.
  3. Clicking the button at the centre of the rotation controls will revert the viewer to “normal”.

General Improvements

  • Check folder limit safeguard:
    • If you select the Wear Items option in the Inventory folder context menu, and the total number of items in the folder(s) exceeds the maximum limit for wearable items / attachments, a warning pop-up is displayed.
    • This prevents multiple items withing a folder (and sub-folders) being worn / removed / worn in excess of the limit when the Wear Items option is clicked.
A new safeguard warning is displayed when clicking on the Warn Items Inventory menu option for a folder containing items that exceed the maximum number of wearable items / attachments
  • Raised the 512×512 limitation for uploading snapshots to inventory to 2048×2048.
  • Multiple bug fixes for memory issues, RAM detection, texture management, UI bugs, stability and improvement fixes, crash fixes and more – please refer to the Firestorm 7.1.10 changelog for specifics.

OpenSim Updates

  • Fix for inventory fetching issues on OpenSim (see FIRE-34403).
  • Fix for occasional crashes on large inventories or slow grid asset servers (see  FIRE-34403).
    • Previously, an assertion failure would occur if mComplete.size() was zero. This has been downgraded to a warning message and early return, improving stability especially for large inventories or slow grid asset servers.
    • This entire code path is only accessed by OpenSim pending their implementation of AISV3, when it will be removed.

Feedback

As with the PBR release, I have no feedback to offer with this release, as I’ve not had time time to bounce around with it to any great degree.

Note that the performance improvements from the Lab’s Atlasaurus viewer constitute a first round of fixes; more will be coming with the upcoming DeltaFPS viewer (promoted to release status, Tuesday, September 17th) and the ExtraFPS viewer (still to be issued by LL at the time of writing).

2024 SL SUG meetings week #38 summary

Winchester Harbor, August 2024 – blog post

The following notes were taken from the Tuesday, September 17th, 2024 Simulator User Group (SUG) meeting. They form a summary of the items discussed, and are not intended to be a full transcript, and were taken from my chat log. Pantera’s video is embedded at the end – my thanks to her for providing it.

Meeting Overview

  • The Simulator User Group (also referred to by its older name of Server User Group) exists to provide an opportunity for discussion about simulator technology, bugs, and feature ideas.
  • These meetings are conducted (as a rule):
  • Meetings are open to anyone with a concern / interest in the above topics, and form one of a series of regular / semi-regular User Group meetings conducted by Linden Lab.
  • Dates and times of all current meetings can be found on the Second Life Public Calendar, and descriptions of meetings are defined on the SL wiki.

Simulator Deployments

  • On Tuesday, September 17th, the SLS Main channel was restarted without any deployment.
  • On Wednesday, September 18th:
    • A new version of the Picnic simulator release (which includes the WebRTC support) called Doubtfire should be deployed to the BlueSteel RC channel.
    • Ferrari and the remaining RC channels will be restarted without update.

SL Viewer Updates

  • The DeltaFPS RC, version 7.1.10.10708851543, dated September 11th, was promoted to de facto release status on September 19th. This includes:
    • Performance boosts. Memory management has been optimized and users will experience a higher FPS across various systems. A comprehensive range of bug fixes are also provided. This includes better PBR material handling and resolving frequent crashes. See the release notes for more.
    • UI for scheduling region restarts now available via a new button located in the Region/Estate floater. (Note: there is currently an issue with scheduled region restarts working correctly and a fix is due to come in the next server release).
  • Release channel cohorts:
    • None at the time of writing.

Region Crossings Update

We have some attachment fixes available for testing on the Beta grid. Channel is ‘ghi-1419’.Some Blake Sea regions are running on it: Binnacle, Flotsam, Half Hitch, Hawser, Jones Locker, Lanyard, Swab.

– Monty Linden

Note that these fixes are entirely separate to the general tweaks Monty has been making to improve simulator performance on avatars entering / leaving a region, which are due to be deployed to the main grid soon.

In Brief

Please refer to the video below for the following:

  • 2K BoM texture bakes on mesh now available for testing on Aditi (the Beta grid). See my 2K BoM blog post for more.
  • A further discussion on attachment losses / attachments getting stuck following teleports. In the case of the latter, Monty suggested a potential workaround:
As for the stuck attachment, there may be a workaround: 1) once stuck, TP to another region (not adjacent), 2) wait one minute, 3) TP back. You may find your attachments in the correct state. But they will get stuck again on re-attachment.

– Monty Linden

  • Github issue #1519 (also Canny issue: llDetectedTouchPos returns TOUCH_INVALID_VECTOR when used in touch_start or touch) affecting Touch when in mouselook has been confirmed as a viewer-side issue, and not simulator-side (the viewer is reporting the wrong initial data). However, no current ETA on a fix.
  • Rezzing delays affect all scripts in an object is currently being tracked, and Rider Linden indicated he hopes to get to grips with it and have it available for the Barbecue simulator update package. Barbecue (or BBQ, as the notation seems to change between meetings) will be the simulator update to follow-on from the WebRTC deployments currently in progress via Picnic and Doubtfire. This issue sparked a discussion commencing roughly half-way through the meeting.
  • Note that the next SUG meeting (Tuesday, September 24th) will be a party to mark the autumnal equinox.

† The header images included in these summaries are not intended to represent anything discussed at the meetings; they are simply here to avoid a repeated image of a rooftop of people every week. They are taken from my list of region visits, with a link to the post for those interested.