Firestorm 4.6.7: rolling forward

firestorm-logoOn Sunday August 17th, the Firestorm team announced the release Firestorm 4.6.7.42398. As with the 4.6.5 release in May, this is far more of a stability and bug addressing update more than it is a release of major new features, although it does contain a lot of updates which most Firestorm users will find to their liking.

As always, the complete list of changes, together with attributions, can be found in the release notes / change log, and I refer readers to that document for specifics on all contributors, FIRE JIRA links, etc. The following is intended as an overview of some of the more major / interesting changes, updates and  fixes to be found in the release.

The Before We Begin Notes

For best results when installing this release:

Firestorm Blocking

Note that as a result of the Firestorm team’s policy to keep only 3 versions running, version 4.5.1 beta will be blocked in the coming weeks. The advice from the team is that If you are on 4.5.1, to please update now. Version 4.4.2 will continue to remain for Mac users until all the major Cocoa Mac bugs have been resolved. However, if you are not a Mac user, then there really isn’t any reason for you not to have updated, and the team again ask that you update as well

Mac 64-bit Version And Mac Fixes

This release of Firestorm sees the arrival of a Mac 64-bit version. As with the original windows and Linux 64-bit versions, this first release of the Mac 64-bit variant of the viewer is regarded as a beta release. However, the Firestorm team fully expect it to have far greater stability than the 32-bit version, and better performance, so Mac users in a position to do so are encouraged to download it and try it.

Blog posts on the 64-bit version can be found on Tonya Souther’s blog and in my blog.

As a heads-up to Mac users, please note that this release of Firestorm also includes a couple of partial fixes for known issues:

  • Alt-clicking while moving the mouse moves the camera significantly (see STORM-2041 and FIRE-12241) has been partially fixed by Linden Lab
  • The Firestorm team have implemented a partial fix for the keystroke entry lag issue (see FIRE-12172).

These may not entirely solve the issues to which they relate, but hopefully they’ll give at least some Mac users a degree of improvement.

One thing those experiencing the typing lag, and who are in a position to do so, might like to try is to create a clean virtual desktop in Spaces, switch to it and then start Firestorm, pinned it to that desktop, and make it full screen (see the suggestion from Spikeheel Starr here).

Lab Updates

This release sees Firestorm reach parity with LL’s 3.7.8 code-base, together with cherry-picked updates from later releases. Updates and fixes directly from the Lab include, but are not limited to) the following.

Project Interesting Scene loading Updates

Project Interesting has been a part of the Lab’s long-term Project Shining updates which were recently officially drawn to a close. The interest list work, primarily led by Andrew Linden prior to his departure from the Lab to join High Fidelity, is a set of improvements to how the viewer and simulator work together to know what information the viewer has or needs in order to render the world around your avatar.

The interest list updates provide more predictable and faster scene rendering, such as large objects and those closest to you appearing first, rather than at random. More use is also made of the viewer's cache (so the warning for not clearing cache as a first action in "fixing" issues becomes even more important
The interest list updates provide more predictable and faster scene rendering, such as large objects and those closest to you appearing first, rather than at random, as with the scene shown here. More use is also made of the viewer’s cache (so the warning for not clearing cache as a first action in “fixing” issues becomes even more important

The work has seen several server-side and viewer updates, and the updates included with this release of Firestorm enable the viewer to more intelligently store and reuse scene data, helping to make regions you’ve previously visited load faster (as long as you don’t clear cache!), and help improve viewer performance.

Further information on the project interesting work can be found in the following blog posts:

Google Breakpad Updates

Google Breakpad is the tool used in gathering information used in reporting underpinning reasons for viewer crashes to help with tracing causes, etc. Linden Lab have been engaged in a programme of improving when and where Google Breakpad becomes active as the viewer starts, and ceases reporting as the viewer shuts down. This release of Firestorm sees the most recent updates and improvements made to Google Breakpad integrated into the viewer, allowing the support team to improve the triaging and debugging of issues.

Other Updates of Note

  • Added a viewer check box to extend parcel entry limits to a higher ceiling (World > Region Details > Region > Block parcel fly over): when checked, extends access checks vertically to prevent parcel flyover
  • Opening large chat histories from conversation log no longer eats huge amounts of memory resulting in a viewer crash (see: BUG-4517 and FIRE-12242)
  • Searching inventory for “online” now correctly returns online friends calling cards in search results (see BUG-4409 and FIRE-12178)
  • Merchant Outbox fixes: includes fixes for accurately detecting Merchant status and improves recovery for Merchant Outbox errors
  • Improved discoverability of the Region Debug console has been moved to Develop > Consoles > Region Debug Console. Also added to World > Region Details > Debug > Region Debug console
  • Having a space after your cursor and pressing return to add a new line no longer forces an extra space to be made in the next line in notecards and script editor
  • Opening square textures now sets the 1:1 size constraint.

Building and Scripting Updates

LSL Functions for Materials

Firestorm 4.6.7 sees the addition of LSL support for materials capabilities. Materials can be added to object faces with llSetPrimitiveParams() and llSetLinkPrimitiveParams functions using the following parameters:

  • [PRIM_SPECULAR, integer face, string texture, vector repeats, vector offsets, float rotation_in_radians, vector color, integer glossy, integer environment]
  • [PRIM_NORMAL, integer face, string texture, vector repeats, vector offsets, float rotation_in_radians]
  • [PRIM_ALPHA_MODE, integer face, integer alpha_mode, integer alpha_cutoff]
    • Valid alpha_mode options are PRIM_ALPHA_MODE_NONE, PRIM_ALPHA_MODE_BLEND, PRIM_ALPHA_MODE_MASK, PRIM_ALPHA_MODE_EMISSIVE
LSL support for materialsarrives in Firestorm with the 4.6.7 release
LSL support for materials arrives in Firestorm with the 4.6.7 release

Materials can be read with  llGetPrimitiveParams() and llGetLinkPrimitiveParams functions using the following parameters:

  • [PRIM_SPECULAR, integer face] returns [string texture, vector repeats, vector offsets, float rotation_in_radians, vector color, integer glossy, integer environment]
  • [PRIM_NORMAL, integer face] returns [string texture, vector repeats, vector offsets, float rotation_in_radians]
  • [PRIM_ALPHA_MODE, integer face] returns [integer alpha_mode, integer alpha_cutoff].

For further information, please refer to the relevant LSL documentation as linked-to above.

In addition:

  • CTRL + mouse grab of objects is now disabled by default in all of Firestorm’s log-in modes other than V3. This is because the option offers no “undo” option should it be used accidentally. A toggle option has been added to Preferences > Firestorm > Build 2 (Use CTRL+mouse to grab and manipulate objects) to enable / disable the ability.
  • Clicking the area in between the Full Bright check box and the Materials drop down box no longer incorrectly opens the colour picker.

Continue reading “Firestorm 4.6.7: rolling forward”

Firestorm Mac 64-bit: coming soon

firestorm-logoOver recent months we’ve seen 64-bit versions of some third-party viewers arrive, notably Singularity and Firestorm, both of which are available in Windows and Linux flavours. Their arrival has raised questions both on when we might see a 64-bit version of the official Linden viewer and  – more particularly in this case – when users might see a 64-bit Mac viewer arrive for Firestorm.

Well, the answer to this second question might be in the famous phrase, Real Soon NowTM.

Tonya Souther, a member of the Firestorm development team, brought word on Wednesday July 2nd that a 64-bit version of Firestorm for OS X should debut with the next Firestorm release – although it is liable to be a few months before that release is made.

Tonya has been building on the work started by Cinder Roxley – whom she acknowledges in the blog post – and has been getting things to a point where it is possible to compile a 64-bit version of Firestorm which will run on Mac OS X 10.7 (Lion) or later.

Firestorm developer Tonya Souther
Firestorm developer Tonya Souther

A major part of this work has been in rebuilding the third-party libraries used in compiling the viewer, and Tonya explains some of the bumps in the road she encountered along the way to getting things sorted out. She also offers her own code repository for people to see what she has done in bringing everything together.

The results of Tonya’s efforts now resides in the Firestorm master repository, and will build successfully in either 64-bit or 32-bit, should anyone who self-compiles the viewer wish to give it a try.

Tonya advises anyone who does so, that in order to build a 64-bit Mac version, they must use Nicky Dasmijn’s version of the autobuild tool and specify the -m64 switch, although nothing else changes.

Tonya also goes on to state in reference to self-compiling:

If you’re switching from building a 32-bit Firestorm to building a 64-bit version, you should probably specify --clean to make sure you start fresh with everything at 64 bits. You also need to do a --clean when building for OS X from repository revisions after the change (revision 42327 or higher) if you’ve previously built for revisions before the change (42298 and lower).

As noted towards the top of this article, .DMG files for the Mac 64-bit build will probably not be made available until the next formal Firestorm release for all three platforms, so please do not request them from the Firestorm team before then. Also, and as with all 64-bit viewer versions, there will be no SL-specific version of the Mac 64-bit release when it does officially arrive, until such time as the Lab provides a 64-bit version of the Havok library used within SL-specific viewers.

Finally, and as advanced warning, Tonya notes that once the 64-bit version of Firestorm for Mac officially debuts, the Firestorm team will cease their support of Mac OS X 10.6 Snow Leopard – which is in keeping with the Lab’s ceasing support of OS X 10.6 in April 2014.

For further information, and for technical enquiries, please see Tonya’s blog post.

Related Links

May 17th Firestorm meeting: audio and transcript

firestorm-logoOn Saturday May 17th 2014, the Firestorm team hosted another of their Q and A sessions to discuss Firestorm and Second Life, and to address users’ questions. Unfortunately, no public video for the meeting is available. The following transcript is therefore provided from a personal audio recording made by myself.

For those who wish to listen to the audio, and for ease of reference, it has been broken down into a number of files, each of which precedes the text to which it relates

When reading, please remember:

  • This is not a word-for-word transcript of the entire meeting. While all quotes given are as they are spoken in the audio, to assist in readability and maintain the flow of conversation, not all asides, jokes, interruptions, etc., have been included in the text presented here
  • If there are any sizeable gaps in comments from a speaker which resulted from asides, repetition, questions to others etc,, these are indicated by the use of “…”
  • Questions / comments were made in chat while speakers were talking. This inevitably meant that replies to questions would lag well behind when they were originally asked. To provide context between questions and answers, questions in the transcript are given (in italics) at the point at which each is addressed by a member of the Firestorm team, either in voice or via chat
  • This transcript is provided for informational purposes only. I am not an official member of the Firestorm team, and technical or support issues relating to Firestorm cannot be addressed through these pages. Such requests for assistance should be made through the in-world Firestorm Support groups or at the Firestorm support region.
Firestormers Assemble: Takoda, Tonya, Jessica and Ed settle-in for another Firestorm Q&A session
Firestormers Assemble: Takoda, Tonya, Jessica and Ed settle-in for another Firestorm Q&A session

Firestorm 4.6.5 and the Release Cycle

 

00:00 Jessica Lyon (JL): So we released 4.6.5 two months early – surprise! It’s been a more-or-less, pretty much across-the-board, a really good release for folks, with few problems and lots of improvements, although it is primarily just bug fixes which are in it anyways. So that was sort-of to be expected and hoped.

00:25 JL: It was a bit of an experiment, because we’ve had a lot of people complain about how long our releases take, including some of our own developers and even some support people. So it was a bit of an experiment in some ways just to see what happens if we do a release in half the time. And the results are interesting.

00:48 JL: Adoption – the rate at which people upgrade from whatever older version they’re on, has been very slow compared to other releases; although that’s not to say it’s non-existent. We have … 85,000 people on 4.6.5 now, and that’s not quite in a full week [since release]. So that’s no slouchy number; but in a typical release, we’re usually up around 140,000, so almost twice that.

01:28 JL: It’s easier for support, certainly, because fewer people are updating all at the same time, so I guess that stretches out the support load. [It’s] easer for QA, that’s good to know. But that doesn’t mean we’ll be able to do releases in that two-month time frame all the time.

01:56 JL: For example, our next task is going to be project interesting, which I’m sure most of you are aware of, Linden Lab just finally released it, and it’s apparently really, really good. Things rez much faster, and we can’t wait to get … to the point after we’ve merged it … [there’s a description of the interest list work, as per the blog post linked to above].

The interest list updates provide more predictable and faster scene rendering, such as large objects and those closest to you appearing first, rather than at random. more use is also made of the viewer's cache (so the warning for not clearing cache as a first action in "fixing" issues becomes even more important
The interest list updates provide more predictable and faster scene rendering, such as large objects and those closest to you appearing first, rather than at random. More use is also made of the viewer’s cache (so the warning for not clearing cache as a first action in “fixing” issues becomes even more important)

Continue reading “May 17th Firestorm meeting: audio and transcript”

Firestorm 4.6.5: steady as she goes

firestorm-logoOn Sunday May 11th, the Firestorm team released Firestorm 4.6.5.40833. Given this release comes just two months after the 4.6.1 release, it does not have a huge raft of new shiny. What it does offer is a nice package of new features and updates, together with a fair few bug fixes from both the Lab and the Firestorm team.

As always, the complete list of changes, together with attributions, can be found in the release notes, and I refer readers to that document for specifics on all contributors, FIRE JIRA links, etc. The following is intended as an overview of some of the more major / interesting changes, updates and  fixes to be found in the release.

The Before We Begin Notes

  • Downloading – a reminder: while the Firestorm download server performed perfectly for the 4.6.1 release, please remember it is the only server handling downloads. So in the unlikely event you encounter delays or a slow download, please be patient / consider re-trying a little later
  • Version blocking: Jessica informs me that there are no plans to block any older Firestorm versions following this release
  • Installation: as always, a completely clean install of the viewer is recommended.

Lab Updates

This release sees Firestorm reach parity with LL’s 3.7.4 code-base, and add a number of fixes and updates from the Lab, including (but not limited to):

  • Vivox 4.6.x updates
  • Advanced Lighting Model can no longer be enabled for Mac OSX 10.6.8 as Mac OSX 10.6.8 is no longer supported by Linden lab (The ability to enable ALM on 10.6.8 was removed because it caused rendering glitches when enabled)
  • Fix for huge amounts of memory being used & viewer crashing when opening large chat histories from the conversation log
  • Fix for BUG-5537, introduced as a result of changes made to the avatar_lad.xml for Fitted Mesh. These changes caused a non-rigged mesh attachment object worn on the chest attachment point shape to look fine in the wearer’s view whereas anyone else it would appear as if the wearer’s chest was showing through the clothing item
  • Fix for crash when editing certain rigged meshes at high altitude
  • Fix for crash when uploading corrupt .DAE file (BUG-4961)
  • Fix for BUG-997,terrain texture changes caused by changing texture elevation ranges or terraforming can not be seen until after relog or teleporting out and back to the region
  • Fix for a suspected thread race crasher in the FmodEx library.

A Note on Interest List Updates

The recent LL viewer-side interest list updates are not a part of the Firestorm 4.6.5 release. As noted elsewhere in this blog, the interest list code is a non-trivial merge due to the extent of changes included alongside of the core interest list updates. It’ll therefore take a little longer for this work to appear in Firestorm.

Building and Scripting Updates

Firestorm 4.6.5 see the Build options in Preferences revised, with two Build sub-tabs (Build 1 and Build 2) under Preferences > Firestorm.

The revised Build-1 sub-tab in Preferences > Firestorm
The revised Build-1 sub-tab in Preferences > Firestorm

Build 1 (above) contains the options for setting defaults for all newly created prims (size, settings, texture, permissions and pivot point) and the LSL pre-processor options.

The Build 2 sub-tab contains the six check-boxes (Save Scripts Edited from Inventory to Mono, Save Textures from Inventory to Disk as PNG Instead of TGA by Default, etc, which had been in the previous Build sub-tab). It also contains four new options.

The new Build 2 sub-tab in Preferences > Firestorm
The new Build 2 sub-tab in Preferences > Firestorm

The new options are:

  • Limit select distance (meters) – disallows selection of objects beyond the specified selection distance from your avatar
  • Limit drag distance (meters) – when enabled, this limits the translation distance of objects in a single operation of the translate tool (metres from start point)
  • Constrain rotations to multiples of X degrees, when not using ‘snap to grid’ – all rotations via the rotation tool are constrained to multiples of this unit (degrees)
  • Preview animations on own avatar during upload – when enabled, you can preview animations during the upload process on your own avatar instead of on the avatar dummy in the upload window.

Firestorm 4.6.5 also includes the following build related items:

  • An option to prevent avatar from turning to selected object when editing (Preferences > Move & View > Firestorm > Turn Avatar Towards a Selected Object)
  •  A fix so that when previewing an animation for uploading it (in paused mode), moving the track of the slider will now correctly change the displayed frame of the animation.

Communications Updates

There are a number of new options for communications with this release, together with a number of fixes. The new features include:

voice-warn
The new multiple voice instances option should enable you to run voice on multiple viewer instances on the same computer & without generating warnings like this
  • An option to allow voice to connect in multiple viewer instances simultaneously (Preferences > Sound and Media > Voice Settings), allowing you to run voice on multiple viewer instances, and without seeing the connection warning pop-up message (shown right)
  • An option to hear voice equally from everyone, rather than being dependent upon either avatar position or camera placement. This is a useful addition for meetings, etc., where attendees may be located at difference distances from your avatar / camera position, thus impacting voice quality when they are speaking.
The new voice options in Preferences > Sound and Media > Voice Settings
The new voice options in Preferences > Sound and Media > Voice Settings
  • A new option has been added to enable the full profile of an avatar to be opened when clicking on an inspect SLurl (Preferences > Firestorm > General > Open Avatar Profile Directly When Clicking on its Name).

Continue reading “Firestorm 4.6.5: steady as she goes”

April 12th Firestorm meeting: video, transcript and notes

firestorm-logoOn Saturday April 12th 2014, the Firestorm team hosted a meeting and Q and A session to discuss a number of issues, including the OpenSSL issue and how it affects SL / Firestorm, Firestorm blocking, the next Firestorm release and more, and answer audience questions.

While the meeting was recorded, the Firestorm team are aware that many of their users have hearing difficulties, and / or prefer to read text, so this transcript has been supplied on their behalf.

When reading, please remember:

  • This is not a word-for-word transcript of the entire meeting. While all quotes given are as they are spoken in the video, to assist in readability and maintain the flow of conversation, not all asides, jokes, interruptions, etc., have been included in the text presented here
  • In the interests of readability, topics in the transcript are not necessarily presented chronologically compared to the video. For example: specific topics of interest raised in the Q&A session, and which are self-contained, are presented under their own heading outside of the Q&A section.
  • If there are any sizeable gaps in comments from a speaker which resulted from asides, repetition, questions to others etc,, these are indicated by the use of “…”
  • Timestamps are provided as guidance should anyone wish to hear the comments in full from any speaker on the video
  • Questions / comments were made in chat while speakers were talking. This inevitably meant that replies to questions would lag well behind when they were originally asked. To provide context between questions and answers, questions in the transcript are given (in italics) at the point at which each is addressed by a member of the Firestorm team, either in voice or via chat.

Please note: This transcript is provided for informational purposes only. I am not an official member of the Firestorm team, and technical or support issues relating to Firestorm cannot easily be addressed through these pages. Such requests for assistance should be made through the in-world Firestorm Support groups or at the Firestorm support region.

With thanks, as always, to North for the video.

The TL;DR Summary

The following is a brief summary of topics discussed. Timestamps in braces refer to times in the video where the relevant commentary can be heard. All sections are expanded upon in the main transcript – click on the timestamp to go to them.

  • 0:00:15 Ebbe Linden – a review of Ebbe Linden’s (LL CEO Ebbe Altberg) presentation and Q&A at the VWBPE conference on Friday April 11th (video and transcript)
  • 0:05:15 Firestorm 64-bit download: an issue with the certificate for the 64-bit Firestorm expiring meant the download had to be temporarily pulled. It has now been restored.
  • 0:08:22 Firestorm DUI: the dynamic User Interface is very proof of concept and requires a lot of work and if it is developed, will possibly require as much as a year before it is remotely usable, and this with the collaboration of over TPVs and developers. Right now, it doesn’t require bug reports.
  • 0:23:04 The Heartbleed SSL bug: a error in versions of an OpenSSL extension called Heartbeat can be used to expose server-side information to attackers. The SL servers are safe, the Firestorm server is safe, however, people can be at risk when connecting to external sites using MOAP or the built-in web browser. Firestorm 4.5.1 and 4.6.1 use OpenSSL, but the chances of them being vulnerable are negligible, and because of the log-in hash, users names and passwords are secure. The very, very small risk will be removed in the next release.
  • 0:39:21 Firestorm blocking: older versions of Firestorm are blocked to try to encourage users to keep reasonable pace with the latest updates and capabilities in the viewer, and to meet with LL’s requirement that as many users as possible are on up-to-date viewers. It is not a Trojan, backdoor, spyware or malware. Log-in IDs, etc., are not compromised, nothing is passed to the FS server. Period.
    • 0:56:19: Why Firestorm doesn’t use an auto-update process and the pain of clean installs
    • 1:02:00: Due to a coding error, Firestorm 4.4.2, 4.5.1, 4.6.1 will be blocked from accessing OpenSim when the time comes to block them. This is not deliberate; it is the result of the code required to limit blocking to Second Life not making it into the viewer, which will be rectified with the next release. Firestorm remains committed to support OpenSim.
  • 1:09:30 Due to the use of automatically-generated SLurls with images uploaded to Facebook accounts using SL Share to Facebook, the snapshot upload capability was blocked by Facebook. This situation has now been resolved between the Lab and Facebook, and photo uploads work once more.
  • 1:14:05: The Next Firestorm release hopefully will be available in early May, and will include updates, fixes and new features, including some Mac updates, the new Vivox files, etc.
  • 1:31:36: bugs don’t get fixed in either Firestorm or the LL viewer without people filing bug reports via the JIRA. Please help in making Firestorm, the SL viewer and SL better
  • 1:36:25 Oculus Rift is coming, but it’s coming via Linden Lab. If you want to have a play, join the closed LL beta, or try CtrlAltStudio (just make sure you have a headset!)
  • 2:02:02 a look at the SL Share 2 capabilities, and why they won’t be in the next release of Firestorm
  • 1:51:06 Ed’s reminder about Firestorm Classes
  • 1:28:36 Start of the Q&A seesion

Continue reading “April 12th Firestorm meeting: video, transcript and notes”

Firestorm 4.4.0 blocking to commence

firestorm-logoThe Firestorm team have announced that version 4.4.0.33720 of the Firestorm viewer will be blocked from accessing Second Life and OpenSim starting on Thursday April 10th.

According to statistics from Linden Lab, there are some 5,500 people still using Firestorm 4.4.0.33720, which lacks support for many significant features, including Sever-side Appearance, Materials Processing and Fitted Mesh. Nor does it include support for many of the server / viewer improvements released over the course of the last year, including interest list updates and HTTP improvements.

Those people still running 4.4.0 are being strongly urged to update their Firestorm viewer to 4.4.2 or later prior to the block commencing on Thursday (no actual time is given in the blog post). Those already running 4.4.2 or later need not take any action – this does not affect you.

The block is being implemented as a part of Firestorm’s policy to, as far as is possible, only have three active versions of the viewer accessing Second Life at any given time. Unfortunately, OpenSim is also affected as the team do not currently have the means to selectively block older versions of the viewer from accessing individual grids at this time. However, this is expected to change when the time comes to block another release in the future.