Monday, August 8th saw Firestorm release version 18.104.22.168527 of their viewer. Coming a little over four months since the last release, 4.7.9 brings with it a lot of important changes from the Lab – perhaps most visible Avatar Complexity and graphics pre-sets – as well as a large number of nips, tucks, fixes and improvements from the Firestorm team and open source / TPV contributors.
As per my usual MO, what follows is not an in-depth review of the release, but rather an overview, highlighting some of the more significant / interesting changes, updates and fixes, which I feel will be of most interest to users.
For full details of all changes, and all due credits to contributors, etc., please refer to the official release notes.
When installing this release, uninstall the existing version and then install the new 4.7.9 release – no need for a clean install.
Prior to getting stuck into the details, please note that with this release:
- There is no 32-bit Havok version for OS X, due to incompatibilities with the RLVa update
- Firestorm have discontinued producing a 32-bit Havok version of the viewer for Linux, due to the relatively low demand for it.
Firestorm is and will continue to be available as a 64-bit non-Havok (“OpenSim”) version for OS X and in both 32-bit and 64-bit non-Havok (“OpenSim”) versions for Linux. These versions can obviously be used with Second Life, and are available for the 22.214.171.124527 release.
This means it is unlikely there will be any Firestorm Havok support for either Max OS X or linux until Linden Lab release the 64-bit versions of the Havok library alongside their own upcoming 64-bit viewers. In the meantime, the Firestorm team offer their apologies for any inconvenience caused, and ask that those on either OS X or Linux who require Havok functionality (e.g. for mesh uploads reliant on Havok physics or for pathfinding purposes) to briefly switch to the LL viewer.
Log-in Credentials Display Update
The first noticeable aspect in this release is the log-in credentials area at the bottom of the splash / log-in screen have been revised, offering a slightly more Viewer 4 style look and bringing all the options together alongside of a single, obvious log-in button.
Note that if you prefer the old login screen layout, you can set the debug setting FSUseLegacyLoginPanel to TRUE.
Another change with this update is that opening Preferences from the log-in screen should no longer cause splash screen layout problems, thus fixing FIRE-17518.
Lab Derived Updates
Firestorm 4.7.9 brings the viewer up to parity with the Lab’s 4.0.6 code base, and so includes the Avatar Complexity (aka “Jelly Dolls”) and graphics presets, as noted above, and includes many maintenance fixes, things like Voice updates and the most recent HTTP updates.
Avatar Complexity – or “Why is everyone I’m looking at an odd colour?”
Avatars can often be the biggest single rendering load on our computers. Hence why the bottom falls out of your viewer performance in a crowded place. Avatar Complexity is a means to offset this impact by allowing you to set a “complexity limit” for avatar rendering. Any avatar (including their attachments) exceeding this limit will be rendered as a solid colour – a “Jelly Doll” – putting a lot less load on your computer. You can adjust the limit according to your needs, and you can also override the setting for individual avatars around you. Do note as well that the setting only applies to other avatars in your view; your own avatar will always be rendered fully.
When first installed, a viewer with Avatar Complexity will set a default limit for you based on your current viewer graphics settings. Hence why you might see a lot of solid colour avatars around you when logging-on for the first time with Firestorm 4.7.9. These default limits are:
- Low: 35,000
- Low-Mid: 100,000
- Mid: 200,000
- Mid-High: 250,000
- High: 300,000
- High-Ultra / Ultra: 350,000
You can adjust you Maximum Complexity setting at any time in Firestorm in one of two ways either via Preferences > Graphics or via your Quick Preferences.
In both cases, moving the Max(imum) Complexity slider to the right increases your threshold, allowing more avatars around you to be fully rendered, while moving it to the left decreases your threshold, increasing the number of avatars liable to be rendered as solid colours.
Note that you can set the Max(imum) Complexity slider to No Limit (all the way to the right). However, this isn’t recommended simply because it leaves your viewer vulnerable to any graphics crashers some inconsiderates still occasionally try to use. It’s far better to simply set your viewer to a high limit (e.g. 350,000) if you don’t want to be bothered by seeing Jelly Dolls
Displaying Avatar Complexity Information
You can display Avatar Complexity information for all avatars (including your own) in Firestorm in one of two ways, depending on your preference (or both can be active at the same time, if you so wish):
- By going to the Advanced menu (
CTRL-ALT-Dif not visible) > Performance Tools > Avatar Complexity Information (previously Show Render Weight for Avatars). This displays three items of information over the heads of all avatars Including yours):
- The render complexity for each avatar
- A ranking of the avatar’s distance from your camera (1=closest)
- The attachment surface area for an avatar, expressed in square metres
- Or by going to Preferences > General and checking Show Avatar Complexity (if not already enabled). This will display the render complexity for each avatar in their name tag, and includes two sub-options, which are pretty self-explanatory:
- Only [show avatar complexity, when enabled] If Too Complex
- Show Own Complexity.
Other points of note with Avatar Complexity:
- To help you understand how complex your own avatar is, every time you change your appearance, each time you change the appearance of your avatar, a small notice with your new complexity value will appear in the upper right of your display for a few seconds
- Your current rendering complexity is also displayed at the bottom of the Appearance floater
- The complexity value of your avatar is transmitted to each simulator as you travel around Second Life. In return, you’ll get a brief notice in the upper right of your screen telling you the approximate percentage of avatars around you who are not fully rendering you because of your avatar complexity
- If you always wish to fully render certain other avatars, no matter what your Max(imum) Complexity setting, you can right-click on those individuals and select “Render Fully” from the context menu / pie menu
- Conversely, if there are avatars around you whom you’d rather render as grey imposters, right-click on them and select “Do Not Render” from the context menu /pie menu
- Note that in both the abovecases the per-avatar settings persist between log-ins (unlike the official viewer)
- You can also revert any avatar exceeding your (Max)imum Complexity setting by right-clicking on them and selecting Render Normally from the context menu / pie menu
- You can also back-up all your complexity settings by going to Preferences > Backup and then checking Avatar Render Settings and then backing-up your viewer settings
- Avatar Complexity does not replace Avatar Imposters, but rather is intended to work alongside of it, offering another means to reduce avatar rendering load on your computer.
Graphic Presets or “What’s that monitor screen icon in the top right corner of the viewer?”
Graphics Presets allows you to save and restore different sets of graphics settings within the viewer. The idea being that users can then switch between these different pre-sets according to circumstance to help with viewer performance. So you might have one with all the performance-hitting options enabled for when you’re taking photos, and another with many of them turned off, as they’re not really needed (e.g. for shopping or clubbing, etc.). You can then swap back and forth between them as needed via a drop-down options list and without any need to relog.
There is no limit to the number of presets you can create, and any you no longer require can be easily deleted.
To create a new preset: go to Preferences > Graphics and set your viewer according to the needs of the preset you are defining (e.g. set draw distance, lighting options, LOD options, avatar rendering etc., etc. When done, click on Presets: Save at the bottom right of the Preferences tab. Enter a suitable name for the preset in the dialogue box and click Save again (note, you can also use this option to update an existing preset with new values – just select the preset name from the drop-down list).
To delete a preset: go to Preferences > Graphics and click Preset: Delete at the bottom right of the Preferences tab. Use the drop-down list in the displayed dialogue box to select the required preset and click Delete. note that a confirmation isn’t requested.
To Load a preset: you can load a preset via the Preferences > Graphics and use the Presets: Load button at the bottom right of the Preferences tab. However, a quicker way is to use the Graphics Presets icon (aka “the TV screen icon”.
When the mouse is hovered over this icon, a list of all saved pre-sets you have created is displayed, a tick appearing alongside the one currently being used. Clicking on any other pre-set will immediately apply it. In addition, this panel also has a button which will open the viewer’s graphics settings in Preferences.
Note that any Graphics Presets you create can also be saved / restored via the Firestorm Back-up capability.
Firestorm 4.7.9 includes multiple Voice improvements from Vivox by way the Linden Lab, including fixes for SLVoice process continuing to run after logging out; Voice quality issues; Voice remaining connected after teleporting to another region (requiring s re-log to fix); Voice crashing on a USB device change – see the release notes for a full list of fixes. See also Voice on Linux, below).
Under-the-Hood HTTP Changes (aka Coroutines)
This version of Firestorm includes the latest HTTP changes from the Lab. While invisible in normal viewer operations, these new HTTP capabilities provide improved performance and stability, and allows the viewer a greater degree of control and management over the numbers and types of HTTP requests that can be simultaneously outstanding.
The changes impact all aspects of the viewer which use simulator capabilities, and should result in fewer problems with high volume operations like loading inventory whilst also taking a load off of the region simulator (allowing it to get on with the job of simulating). The affected SL operations include, but are not limited to:
- Asset upload (Images, Meshes, Animations)
- AISv3 inventory manipulation
- Experience Keys (incl. allowing, blocking and creating Experiences)
- LSL script compilation
- Viewer Managed Marketplace
- Simhost event polling
In addition the updates from these changes remove a considerable amount of deprecated and unused code from the viewer. Those interested in the minutiae of these changes, please refer to the Lab’s video presentation on them.
Other Notable Updates from the Lab
Many updates and fixes, including:
- Extensive reworking in handling mini profile icons: these updates drastically reduce the amount of texture menu used by mini profile and group icons, thus helping to reduce instances of texture thrashing
- When Trash capacity reaches 5000 items, the viewer will prompt you to empty Trash
- Fixes for:
- BUG-10434 / FIRE-17400: unable to texture meshes with spaces in the material names
CTRL-Znot working on no-mod objects
- BUG-7337 / FIRE-14661: No copy/Yes transfer clothing and body parts not being transferable directly from inventory
- BUG-10779 (non-public) / FIRE-17370: viewer allows you to locally retexture anyone’s content including attachments
- BUG-10759: attached lights still rendering from blocked avatars
- BUG-11570 / FIRE-17922: unable to add a space before closing curly brace in chat bar, note cards & scripts
- BUG-18263 / FIRE-19407: after editing an object with a large number of contents, contents in any object will not load until relog
- STORM-2094: Save button not activated if spelling corrected in note card and no other changes made.
In addition to the preferences updates for Avatar Complexity and graphics presets, Firestorm 4.7.9 also has the following updates the the Preferences floater and tabs:
- Graphics > Hardware Settings: Viewer Texture Memory Buffer limit raised to 2048Mb – so if you’re running the 64-bit version of Firestom 4.7.9 and have a graphics card with at least 4Gb of memory, you can new set texture memory to up to 2Gb
- Sounds & Media > UI Sounds 3: now includes the ability to add an alert sound for OpenSim region restarts
- Network and Files > Directories: if the Conversations logs location is invalid, log will now be saved to the default location
- Notifications People: Flash the App Icon When Receiving A Message and Firestorm Not In Focus now has a new sub-option to disable the Firestorm application icon from flashing on received of an object IM
User Interface > 2D Overlay: now has two additional Pie Menu sub-options:
- Enable Text Animation – animates the Pie Menu text and well as the Pie Menu shape when rendering it
- Enable Outer Ring Shade – adds shadow shading to the outer circle of the Pie Menu
- User Interface > 2D Overlay > UI Scaling: limit increased to 2
- User Interface > Top Bars: includes an additional option to enable / disable all the status bar roll-over pop-up menus on mouse over: Enable Mouse Rollover Popup On Menu Bar Status Icons . Affects quick graphics presets, volume, and media rollover menus
- Skins > Colour Scheme: removes the CtrlAltStudio option from the drop-down
- Firestorm > Avatar: new option to disable all eye movement: Disable Random Avatar Eye Movements
- Firestorm > Build 2:
- includes an option to Highlight Boundary of Currently Selected Parcel, with a sub-option to Show Boundary Up To Maximum Build Height
- Enable Highlighting of Selected Prims should no longer revert to unchecked on a relog (see FIRE-17951)
- Backup: includes check boxes for backing-up Avatar Complexity (including render settings for individual avatars – normal, fully or do not render – and graphics presets settings.
In addition, the Apply button has been removed from the Preferences floater as it was incompatible with the graphics presets feature. Preferences should now change as soon as the setting is altered, and closing the Preferences window using the OK button will save all changes.
Voice on Linux
Vivox are no longer updating the SLVoice package for Linux. In addition, as previously reported in my weekly SL project updates, on-going improvement to Voice by both Linden Lab and Vivox mean that in the future, older versions of SL Voice will cease working.
The recommendation for those on Linux going forward is to run the 32 bit Windows SLVoice executable using Wine. To facilitate this, Firestorm have added a new debug setting:
- Advanced > Show Debug Settings > FSLinuxEnableWin32VoiceProxy – set this to TRUE.
RLVa is updated to version 3.1.4 (RLV) / 126.96.36.199479 (RLV) of the API, with many changes, fixes and updates. Highlights include:
Addition of the RLV 2.9 camera commands and restrictions – vision spheres not yet included due to time constraints, but coming soon!
Formalized documentation of the nine existing RLVa-specific commands and restrictions.
Added 5 general new commands, 12 new camera related commands and 14 extensions to existing commands.
Fixed a number of issues relating to folder locks – @unshared / sharedwear / detachthis etc.
Given the size of the update, however, please refer to the RLVa 2.0 release notes for specific information, as well as the Firestorm 4.7.9 release notes.
Other Updates of Note
- Chat should continue to show in the console if floaters get minimised (see FIRE-18007)
- IM fixes:
- IM messages received when the conversations floater was minimised should now display correctly
- New IM tabs should no longer steal focus if chiclets are disabled
- Firestorm application icon in the taskbar should now flash receiving IM and the Firestorm window is not the focus
- Replace Outfit in Inventory should now always been enabled when it should be
- Edit Outfit > Add more button should now display the correct type (see FIRE-19480)
- New inventory filter for transferable items (Inventory > Show Additional Options Gear Icon > Show Filters > Transfer only
- Flickr snapshot floater now displays “Firestorm” as a default tag and does not display “Secondlife” when used on OpenSim grids
- Appearance floater (Avatar > Appearance):
- Can now be opened directly via
- As noted earlier, now displays your current rendering complexity
- Can now be opened directly via
- The viewer should no longer disconnect if you take too long to select a save location when saving snapshots to disk
- Radar should now correctly report all avatars entering the region
- Help > Check Grid Status should now open in built-in browser if if SL links set to do so (fixes FIRE-19400)
- Group updates:
- Group notices are now sorted by date descending by default
- The per group snooze duration should now work from the chiclet context menu
- Legacy group searches should no longer truncate at the first 20 results
- URLs in group notices should no longer open a blank place profile window instead of the expected URL
- Avatar hit boxes are now shown in the colour as on the mini map, allowing those allows those using avatar hit boxes in combat to recolour them for friends and enemies. Enabled via Developer > Render Metadata > Avatar Hitboxes, with the priority:
- Special mark colour
Contact set colour
Special avatar colour (friend, muted, etc.)
Default mini map colour
- Firestorm icon will flash as a part of a region restart notification.
- KDU updated to version 7.8
- Windows / Linux Chrome Embedded Framework (CEF) for media updated to version 1.5.3.FS6-(CEF-WIN-3.2526.1366.g8617e7c) (Chrome 47.0.2526.80)
- Curl updated to version 7.47.0
- Linux 32bit updated SDL and ndofdev to consume the latest libpng
- Windows 64bit updated Boost to version 1.57.
OpenSim Improvements and Fixes
Firestorm will support upload of sound files up to 60 second in length (OpenSim ONLY)
Property lines on the mini-map should no longer get corrupted OpenSim with VarRegions, and the viewer should no longer crash as a result (see FIRE-17419)
- Region names should no longer go missing from the world map
- MapBlockRequest messages should no longer spam a region at certain map zoom levels
- “Xecondlife” removed from the Flickr snapshot floater tags when logged into OpenSim
- Help > Check Grid Status menu item should no longer display when logged into OpenSim
- HttpPipelining is forced off on OpenSim
- Added support for OpenSim VarRegion width scaling in CoarseLocationUpdate message
- Own group chat should no longer be muted if FSMuteAllGroups is set to TRUE
- InWorldz IZURLs should now work as expected.
This has been a major update for the Firestorm team, largely as a result of the HTTP coroutine updates. Most people will hopefully be aware of the most visible updates in the viewer – Avatar Complexity and graphics presets. But just in case, I’ve covered them at length here to save cross-referencing other posts.
The additions that Firestorm have made to Avatar Complexity are particularly nice – and it would be good if, were it contributed, the aspect of having right-click rendering options (“Normal”, “full”, “Do Not”) persistent across log-ins found its way into the official viewer. I also like the alternate information display options Firestorm provide through Preferences.
In terms of running the viewer, I’ve had no noteworthy issues with 4.7.9 (although a couple of early 4.7.8 pre-releases were a bit – bouncy – on my PC!). I have noticed a general improvement of around 10 fps in my average FPS (if there is such a beast as “average” for anywhere in SL for any system); quite possibly the first real boost I’ve seen in Firestorm in a good while.