Firestorm 6.6.3: performance improvements

On Friday, September 9th, 2022 (PDT), the Firestorm team released version 6.6.3 of their viewer – the first such release since indicating they would be stepping up the cadence of releases with more in the way of “maintenance” cycles in order to better keep place with updates and improvements coming out of Linden Lab with the core viewer code.

Whilst technically a maintenance release, version 6.6.3 is significant for Firestorm users as it includes the Lab’s Performance Improvements code, which for this user yielded noticeable performance improvements in terms of general FPS. In addition, there are a number of additional updates from both the Lab and the Firestorm team.

Table of Contents

As per usual, this article is a not a full blow-by-blow breakdown of absolutely everything in this release, but it does include notes on some of the more significant updates and fixes people are liable to find useful, and some general notes.

For a complete breakdown of changes, please see the official release notes for Firestorm 6.6.3.

Sidebar: some may have received a premature notification of this article, together with an invalid URL. My apologies for any confusion: I boobed – sorry!

Installation

  • 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 6.6.3.

Linden Lab Updates

Firestorm 6.6.3.67470 is fully merged up to the 6.6.2 Linden code-base, plus some cherry-picked fixes from upstream, per the notes below.

Maintenance2 Viewer Updates

Viewer version 6.6.2.573358, August 2022

  • Copy and Paste capabilities in the build tools.
  • World  Map Legend: can now be hidden / revealed by clicking on the arrows on  the right side Map border.
The World Map Legend can now be hidden / revealed by clicking on the arrows on the right-side border of the World Map
  • Create and ungroup folders:
    • Create:
      1. Select multiple items within an inventory folder using SHIFT and or CTRL-left click.
      2. Right click on any part of the selection and select Create Folder From Selected the menu.
      3. A pop-up is displayed, prompting you for a folder name. Enter a suitable name and click OK.
      4. The folder is created and the selected items moved into it.
    •  Ungroup:
      1. Right click an inventory sub-folder.
      2. Select → Ungroup folder items.
      3. The items in the selected sub-folder are moved to its parent folder, and the subfolder is deleted.
  • Show avatar attachment in Inventory: right-click a worn attachment or HUD and select on of the following:
    • Context menu: Show In Inventory
    • Pie menu: More → Show In Inventory.

Maintenance (M)akgeolli Viewer Updates

Viewer version 6.6.1.572458, June 2022.

  • Edit Shape menu previously included every attachment, slowing down preview thumbnails significantly. With this update, only rigged attachments are displayed, in addition to prior avatar preview thumbnails .
  • Assorted fixes and UI tweaks.
  • Improved mouse responsiveness in situations where previously it would over-react to inputs.

Performance Improvements

Viewer version 6.6.0.571939, May 2022.

  • This update should see reduced image decoding time, decreased frame stalls and decreased initial font rendering time, and the viewer should feel generally more responsive.
  • These changes include updates to Vsync (vertical synchronisation):
    • Vsync can now be toggled on / off via Preferences → Graphics → Hardware Settings.
    • When enabled, Vsync will synchronise (/cap) frame rates to your monitor screen refresh rate (e.g. if you have a 60 Hz screen, FPS will be capped at 60 fps) and should deliver smoother game-play.
  • The Performance Improvements viewer also includes the MeshOptimizer Project .
    • By default, this replaces obsolete GLOD’s mesh simplification in the mesh uploader with the newer and more powerful MeshOptimizer package to provide better level of detail (LOD) modelling during the upload process.
    • Note that as an option, Firestorm also retains the GLOD capability – see below for more.

Tracy integration Viewer Updates

Viewer version 6.4.23.563771, November 2021.

  • This update adds the Tracy Profiler to the viewer to help developers interested in or working on performance improvements. For developers/self-compilers:
    • Running autobuild configured with –tracy will enable the telemetry.
    • At any time while running the telemetry recording can be disabled/minimised by deactivating it using the Developer menu entry profiling/telemetry → Profiling .
  • It contains no other user-visible changes.

Firestorm Updates and Improvements

UI Updates and Improvements

Notecards – Font Style, Size and Colour

Firestorm 6.6.3 brings the following capabilities to Notecards:

  • Set the font style and size:
    • Style: one of San Serif, Monospace, Scripting or Cascadia Code.
    • Size: one of Monospace, Scripting, Cascadia Code, Small, Medium or Large.
    • These can be set via Preferences → User Interface → Font → Notecard Editor Font drop-downs.
The new Notecard font options in Firestorm’s Preferences
  • Set the colour of: a notecard background, text, cursor and highlighted text.
    • Set via Preferences → Colors → Miscellaneous → Notecard Colors .

Note: these setting will only apply to notecards you view in Firestorm. Other users will see the notecards you send in whatever font / colours (if the latter can be set should the FS code be adopted by other TPVs) set within their viewer.

Other UI Updates
  • Inventory:
    • It is now possible to open Inventory folders in their own floaters. Right click an inventory folder → Show in new window.
    • The selection count is  now given when deleting multiple items from inventory (FIRE-31816).
With Firestorm 6.6.3 you can open an inventory folder in its own floater
  • The Create Landmark floater (menu bar → World → Landmark this Place) will now open centred on the viewer window by default.
  • 360-degree snapshot floater should now open at last-used quality setting  in a session.
  • Region Details → Region should now:
    • Show the correct length of the region name text (no truncations).
    • Report the correct grid position for the region.

Avatar and Appearance

  • Avatar:
    • The avatar should now turn the full 180-degrees when editing appearance (FIRE-31959 / BUG-232502).
    • All mesh bodies/objects should now show in the shape editor previews (FIRE-31966 / BUG-232503).
    • Animesh attachments should no longer show in shape editor previews.
  • Appearance:
    • Attempted fix for mesh attachments sometimes vanishing after teleports which should either fix / reduce the number of cases where this may occur (FIRE-31906).
    • Update to the warning given when attaching rigged meshes to HUD.
      • The new message reads: “An attachment named ”[NAME]“ contains rigged mesh but is attached to the HUD point ”[HUD POINT]“,/a>
      • Attaching rigged meshes to HUD was never supposed to be supported, per BUG-232489.
      • Also see: FIRE-31955.

Building and Scripting Updates

GLOD Option In Mesh Uploader

As noted above, Linden Lab introduced Mesh Optimizer as a new way to generate improved level of detail (LOD) models for mesh uploads. However, this can lead to higher upload costs and can cause issues in maintaining UV layout. To help prevent issues Firestorm 6.6.3 retains GLOD alongside of Mesh Optimizer.

To this end the Firestorm mesh uploader presents the following options when specifying a model’s LOD:

  • Load from file: Manually upload .DAE files for models at any level of detail. This enables you to control how your model looks at each level of detail, preserving key visual features that the automated algorithms may otherwise distort. If the viewer could “auto-detect” lower LOD models when it first loaded the model, these will be shown in the corresponding LOD “slots” here.
  • Generate Auto: Generate a new model at the currently previewed level of detail based on the model you uploaded. This method currently defaults to using the sloppy method and tries to set a target number of triangles based upon the high LOD. This is the method applied when first selecting your model if no auto-detected LODs are found.
  • Generate Precise: Uses the newer method (Mesh Optimizer) to construct a LOD model. This is more accurate than the “sloppy” method but will result in a more detailed model. Target triangle settings and thresholds are very loosely adhered to.
  • Generate Sloppy: Uses the newer method (Mesh Optimizer) to construct a LOD model. The “sloppiness” relates to the accuracy of the result compared with the original. Target triangle settings and thresholds are very loosely adhered to .
  • Generate Reliable: Uses the older method (GLOD) to construct a LOD model. This method is what we have been used to in the past; it gives reliable results based upon the target settings.

For more information, please refer to: Mesh Upload – Level of Detail.

Other Building / Scripting Related Updates
  • The “remaining capacity” LI count has been returned to the Edit / Build floater.
  • Flip texture scale buttons should no longer “magically jump” when switching texture modes.
  • The animation preview window should now have a link to the correct wiki page (FIRE-31836).
  • Full bright rigged meshes should now correctly display as full bright.
  • Full bright transparent objects should no longer render as solid when using highlight transparent – CTRL-ALT-T (FIRE-31986).
  • 100% transparent objects on HUDs should now show when highlighting transparent – CTRL-ALT-T (FIRE-31917).
  • The Firestorm Bridge can now display object rez time with the Script info in extended info mode (enabled via Preferences → Firestorm → Build 2 → Enable extended script info details).

Other Updates of Note + Key Fixes

Third-Party Library + RLV Updates

  • FMOD Studio updated to version to 2.02.07.
  • Updated Collada with a C++17 compatible version.
  • Firestorm 6.6.3 is running Restrained Love API RLV v3.4.3 / RLVa v2.4.2.67470, and includes a fix for focus going unexpectedly to menu bar after calling llMapDestination with “@showworldmap=n” (FIRE-31920).

Linux Updates

  • 3p Library Updates:
    • Boost updated to boost-1.72-linux64-222121224.
    • Collada updated to colladadom-2.3.222130404-linux64-222130404.
    • Curl updated to curl-7.81.0.222121724-linux64-222121724.
    • Libxml updated to libxml2-2.9.4.222130358-linux64-222130358.
    • Meshoptimizer updated to meshoptimizer-0.16.222121104-linux64-222121104.
    • Minizip updated to minizip_ng-3.0.2.222121607-linux64-222121607.
  • New Simple DirectMedia Layer-2 (SDL2) support for Linux to future-proof Firestorm, providing better low-level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. See the SDL2 Documentation.
  • The Linux viewer now uses xdg-open ahead of x-www-browser, as requested in FIRE-31929.

OpenSim Updates

There are no OpenSim updates with Firestorm 6.6.3.

Key Fixes

  • FIRE-31852 – Modified hotkey gestures should no longer play from any window.
  • FIRE-31823 / FIRE-31648 – torn-off menus should now correctly update enabled/visible state
  • FIRE-31882, FIRE-31896 / BUG-232463 – The main menu bar should no longer become the focus when minimising docked floater or after changing graphics preset
  • FIRE-31913 – CTRL+Tab should now correctly switch to the active floater.
  • Crash fixes:
    • FIRE-31818 – Firestorm should not longer crash when inspecting a Linden tree.
    • FIRE-31942 – Firestorm should no longer crash when taking a 360 snapshot when “Improve graphics speed” is enabled – note that this may mean that slower machines timeout during a 360 snapshot, so a new debug setting FSUseCoRoFor360Capture – Use co-routine to extract 360 photos – has been added. By default, this is set to False to prevent crashing. Setting it to True may result in crashes.
    • FIRE-31473 – “Internal Error”/“Uncaught Exception”.
  • Again, please refer to the 6.6.3 release notes for the full list of fixes with this release.

Feedback

As noted towards the top of this article, Firestorm 6.6.3 is the first release of the viewer since the Firestorm team moved towards a faster release cadence, allowing the viewer to pretty much reached parity with the official viewer, which should ease matters of parity going forward, assuming a 6-8 week release cadence can be maintained – and hopefully, it will be.

Probably the most significant inclusion in this release is that of the Lab’s updated viewer code and thread handling, intended to improve general performance. As I noted at the time this code reached release status in the official viewer, this code gave me an average boost of around 20 fps compared to a version without the improvements; in comparing Firestorm 6.5.6 and 6.6.3, I noted a similar fps boost. This is also the first viewer I’ve ready played around with the updated Vsync functionality, and have found that it does offer a far smoother experience for me when flycamming.

Elsewise, I’ve not had a a lot of time to test this release, but have found it to be stable during my personal use, so those updating may want to keep an eye on the Firestorm in-world support groups and the Jira for info on any possible issues.

Related Links

9 thoughts on “Firestorm 6.6.3: performance improvements

  1. For me this new Firestorm release is about 2.5 to 3 times as fast and in ultra I am getting near constant 60 frames now with this new release. It is a huge vast improvement!

    Like

    1. That’s good – be sure to thank Ptolemy, Runitai, Euclid and Brad Linden for the work in refactoring the core rendering code! 🙂

      Like

  2. Handles Alpha worse, as the former version did; speaking about issues with occlusion. My Lady is wearing a Kupra, matched with VAW-Nipples. Horrible, horrible, horrible.
    Everything else, fps etc. is top-notch and progressed to never seen stats before.

    Like

  3. Hello. Thanks for your work. I have a question – I lost my shadows. Everything is on but I can’t see shadows from objects. You don’t know what’s the problem?

    Like

    1. Your best place to obtain assistance is via the in-world Firestorm support groups; I’m not actually a member of the Firestorm team and unfortunately do not have the bandwidth to help troubleshoot issues with this (or others) viewers.

      Like

Comments are closed.