2025 week #11: SL TPVD meeting summary

Coda Haze, January 2025 – blog post

The following notes were taken from my audio recording + the video recording by Pantera (embedded at the end of this summary) of the Third-Party Developer meeting (TPVD) held on Friday, March 14th, 2025. My thanks to Pantera as always for providing it.

Meeting Purpose

  • The TPV Developer meeting provides an opportunity for discussion about the development of, and features for, the Second Life viewer, and for Linden Lab viewer developers and third-party viewer (TPV) / open-source code contributors to discuss general viewer development. This meeting is held once a month on a Friday, at 13:00 SLT at the Hippotropolis Theatre.
  • Dates and times are recorded in the SL Public Calendar, and they re conducted in a mix of Voice and text chat.
  • The notes herein are a summary of topics discussed and are not intended to be a full transcript of the meeting.

Official Viewers

  • Default viewer: 7.1.12.13550888671, formerly the ForeverFPS, dated March 1, 2025, promoted March 5th – NEW.
    • Numerous crash and performance fixes.
    • Water exclusion surfaces.
    • Water improvements.
  • Second Life Project Lua Editor Alpha, version 7.1.12.13858460198, March 14th, 2025 – NEW.
    • Will only work on Aditi, within the following regions: [Luau Yardang], [Luau Tombolo], [Luau Mesa] and [Luau Tideland].
    • See below for more.

Viewer Releases, Cadence and Open Source Contributions

  • As previously noted in these pages, viewer releases are changing:
    • The viewer version numbering will be changed to reflect the year / month of release, so 2025.03 (March 2025) will be the next viewer in the pipe, followed by 2025.04 (April 2025).
    • The new viewer numbering may not initially be reflected in installer / viewer About floater, but it is something Signal Linden would like to see achieve – and maybe even back in the viewer’s top bar.
    • The will be a move towards a monthly release cadence, although during the TPV meeting, Signal Linden indicated it might be every other month at times.
  • Overall the viewer release cadence is intended to better match the sever updates cadence, so that simulator updates with require viewer changes will not have to wait so long for those changes to appear in the release viewer.
  • In line with all of the above, Geenz Linden has put forward a proposal for revamping the open source programme and making it more responsive, inviting input from TPV and open source developers. This will likely include a new Contribution Agreement.

SLua Alpha Testing

  • SLua (Slew-ah, or SL Lua) is the name given to the server-side implementation of Lua as a replacement for Mono as the compiled scripting language for Second Life.
  • The alpha is now available on Aditi.
  • Please refer to the official blog post and (if you prefer) my blog post for more.
  • At the TPVD meeting, Signal Linden indicated that LL is considering open-sourcing the SLua virtual machine, once it is ready.

In Brief

  • It is likely that the open Source Developer meeting and the TPVD meeting will be merged, with one (or both) changing time (and frequency?) as a result.
  • With new simulator certificates coming in, it was recommended that older viewer versions on Aditi to ensure they can still access SL on simulators running with the new certificates. These Aditi simulators are:
    • Cloud Sandbox 1-4.
    • All of the Blake Sea regions.
    • Bonifacio.
  • The viewer-side implementation of Luau (as distinct from the SLua project) is described as being in a “project branch and liable to stay that way for now”, with no short-term plans for rolling it out.
  • Still no firm date on when the Vivox Voice service will be switched off in favour of WebRTC.

Next Meeting

† 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 gathering of people every week. They are taken from my list of region visits, with a link to the post for those interested.

2025 week #7: SL TPVD meeting summary

Poetic Moon, January 2025blog post

The following notes were taken from my audio recording + the video recording by Pantera (embedded at the end of this summary) of the Third-Party Developer meeting (TPVD) held on Friday, February 14th, 2025. My thanks to Pantera as always for providing it.

Meeting Purpose

  • The TPV Developer meeting provides an opportunity for discussion about the development of, and features for, the Second Life viewer, and for Linden Lab viewer developers and third-party viewer (TPV) / open-source code contributors to discuss general viewer development. This meeting is held once a month on a Friday, at 13:00 SLT at the Hippotropolis Theatre.
  • Dates and times are recorded in the SL Public Calendar, and they re conducted in a mix of Voice and text chat.
  • The notes herein are a summary of topics discussed and are not intended to be a full transcript of the meeting.

Vir Linden Departure

Vir Linden is one of the latest departures from Linden Lab. A long-time members of the Viewer Team and well-liked and respected for his work their and on a range of projects such as Bento (which he morphed into the Content Creators User Group), and will as running the open Source Developer meetings. No information on Vir’s departure was given, but his place for this meeting (at least) was taken by the Lab’s Director of Engineering, Signal Linden.

My personal best wishes to Vir, and thanks for all his work at the Lab, and time spent working with users.

Official Viewers

  • Default viewer: version 7.1.11.12363455226, formerly the ExtraFPS RC (multiple performance fixes, aesthetic improvements and UI optimisations), dated December 17, promoted December 20 – No Change.
  • Release Candidate: Forever FPS, version 7.1.12.12999043440, February 4, 2025.
    • Numerous crash and performance fixes.

Status

  • ForeverFPS is defined as “being in a home stretch” in getting the viewer to release status.
  • The focus now is on showstopper bugs and getting as much feedback as possible on the viewer.
  • And upcoming version of ForeverFPS will include all the updates to Linden Water (some of which are also in the latest Firestorm Beta versions undergoing testing).
  • Geenz Linden re-iterated the overall status on the work with Linden Water as stated at the last CCUG meeting, including outlining the new water exclusion surfaces (e.g. for keeping water out of boat hulls) and their limitations (e.g. they are not intended for use as exclusion volumes in underwater structures, that’s “for the future”).

Open-Source Contributions, Viewer Release Cadence and Roadmap

[Video: 3:43-5:18 and Video: 7:35-11:55]

  • Signal Linden has put forward a document for improving how open-source contributions are managed, including general communications between the Lab and contributors and offering more transparency on how contributions are managed.
  • Alongside of this, LL are hoping to introduce a more predictable release cadence with viewer updates, something delayed since the move to gitflow in 2024 due to the sheer volume of viewer changes and updates spread across multiple viewer RC branches which had to be directed into the core Develop branch.
  • The hope is that implementing the latter will:
    • Enable TPVs to have a more predictable calendar of viewer updates they need to pull and merge.
    • Open-source contributors can have a more reasonable expectation as to when they might see contributions reach the viewer.
  • The aim is to move to a monthly viewer update cadence, and to implement a viewer version numbering system which reflects this cadence (e.g. viewer version numbers with 2025.03 to indicate a March 2025 release, 2025.04 for April, etc.).
  • To achieve this, the plan is to make releases smaller and more digestible for TPVs to absorb (again, making the flow of contributions and key code updates faster) rather than having them face huge merge requirements and testing.
  • One possible caveat to this is might be with “significant” projects which do incorporate large numbers of changes to the viewer, leading to them being handled differently. However, exactly how they might differ will be dependent on what comes along in this regard (e.g. glTF mesh uploads (and scene imports?)) .
  • To further assist in viewer development visibility, LL hope to update and be more forward in maintaining a visible viewer roadmap, together with “public planning meetings”.
  • [Vide0: 28:50-37:45] A discussion on ways of highlighting issues among the 700+ LL have in github for which they really need help from TPV / open-source developers, including some form of rewards system (in addition to the SEC bounty payments) as used to be done with LL merchandise, credits in the viewer Help →  About, etc.

In Brief

  • [Video:  43:25-EndAccount Takeovers:
    • LL recently blogged on matter of account and L$ balances security, the post came in the wake of LL noting a rise in reports of what they call “account takeovers”.
    • One specific vector used for phishing for account credentials is the use of links sent via Group (or even direct) IMs and within Profiles which carry the user to a fake SL website (e.g. a false Marketplace page), encouraging the user to enter their credentials, or which hide a potentially malicious webpage with in link.
    • Given this, Philip Rosedale asked for ideas on how such false flag links might be better countered / reduced in their threat level.
    • Displaying external link found in Group IMs, Profiles, etc., could be via dialogues which display the URL, to help prevent phishing, etc.

      Numerous suggestions were made, including: new accounts shouldn’t be able to start a large group chats; only Group owners and moderators can share links; posting links in Groups should be made a specific Group ability to be granted by the owners / moderators; making users more aware that hovering the mouse over links in chat, Profiles, etc will reveal the link URL; having a dialogue interdict clicks on links which displays the URL and requests the users to confirm whether or not they wish to go to the website (as with licking in-world items with embedded links (see right); force the URL to be the link (rather than hidden behind text).

    • This discussion also encompassed logging-in and alerts based on geo-location (e.g. in cases where user X traditionally logs-in from one country, but suddenly logs-in from the other wise of the world, so they get an alert to confirm they are actually logging in).
    • Please refer to the video for the specifics of the discussion.
  • Still no firm date on when Voice services will become WebRTC only (and the Vivox service turned off), outside of “hopefully, early this year”. Several factors are delaying this, including the number of users who are not utilising WebRTC-enabled viewers (predominantly those who have not moved to a PBR-capable viewer).
  • Havok physics in the viewer: over a decade ago, Havok sub-libraries were added to the viewer specific to assist with Pathfinding mesh uploads.
    • These libraries are starting to prove problematic in various areas (e.g. getting the viewer to run with native Apple Silicon support).
    • As a result, there have been discussion internally at LL about removing Havok support from the viewer.
    • One suggestion for doing so is to switch over to the open-source Recast Navigation for Pathfinding, and to use a convex hull decomposition library for mesh uploads.
  • A general discussion on text rendering in-world on prims, etc., such as by using Signed Distance Field (SDF).

Next Meeting

† 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 gathering of people every week. They are taken from my list of region visits, with a link to the post for those interested.

2025 week #3: SL TPVD meeting summary

Simurg + Winter Valley, November 2024 – blog post

The following notes were taken from my audio recording + the video recording by Pantera (embedded at the end of this summary) of the Third-Party Developer meeting (TPVD) held on Friday, January 17th, 2025. My thanks to Pantera as always for providing it.

Meeting Purpose

  • The TPV Developer meeting provides an opportunity for discussion about the development of, and features for, the Second Life viewer, and for Linden Lab viewer developers and third-party viewer (TPV) / open-source code contributors to discuss general viewer development. This meeting is held once a month on a Friday, at 13:00 SLT at the Hippotropolis Theatre.
  • Dates and times are recorded in the SL Public Calendar, and they re conducted in a mix of Voice and text chat.
  • The notes herein are a summary of topics discussed and are not intended to be a full transcript of the meeting.

Official Viewers Status

[Video: 1:13-2:17 and [4:07-4:45]

  • Release viewer: version 7.1.11.12363455226, formerly the ExtraFPS RC (multiple performance fixes, aesthetic improvements and UI optimisations), dated December 17, promoted December 20 – No Change.
  • Release Candidate: Forever FPS, version 7.1.12.12793544240, January 17, 2025.
    • Numerous crash and performance fixes.

Upcoming Viewers

  • ForeverFPS surfaced somewhat faster as an RC viewer than had been anticipated at the CCUG meeting.
  • Other plans for viewer updates are under review; there a numerous code commits in the Develop branch awaiting a viewer, but collectively, they are regarded as to many to all go into a single viewer update, so the order of release over several viewer updates needs to be determined.

WebRTC / Updating to Viewers with WebRTC Support / Rendering Holdbacks

[Video: 5:22-24:14]

  • Further re-iteration of the desire to see as many users as possible to move from viewers which lack WebRTC support (e.g. Firestorm 6.6.17) to those (predominantly PBR-based) viewers with the WebRTC support, so that the Vivox service can be turned off across the grid.
  • A further request was made as to why people are resistant.
    • Once again, the response was largely around the quality of the reflections / general look of the Linden Water plane on PBR viewers, lack of exclusion volumes for water; darker ambient tones to natural lighting.
    • Ambient issues, particularly with legacy EEP skies should have been largely corrected in ExtraFPS.
    • It was also pointed out that there are cohorts of users who are happy with what works for them, even if half their in-world view seems to be “broken” in some manner, and simply will not update as long as the viewer they use can still access SL.
  • A particular issue here with regards to WebRTC, is that while a high percentage of users are not updating to viewers with PBR + WebRTC support, it is not clear how many would be adversely affected by the loss of Vivox voice, given that many in SL rarely, if ever use Voice.  If the number is small, turning off Vivox might not be an issue; if the number is large, it could cause people to abandon SL.
  • It was also suggested that wider communications from LL (and TPVs) on the nature of upcoming changes like WebRTC might help to make users more aware of what is going on.
  • In response to exclusion volumes and water quality  / reflections, Geenz Linden noted:
    • There might be a way to provide exclusion volumes for water (e.g. to prevent water rendering inside boat hulls, etc.), but the issue is complicated.
    •  There has been a regression in the way water appears and generates reflections; part of this was the result of the “pre-PBR” means of rendering water required multiple passes, which became a performance issue. However, improving water is on his list of things to do, and he hopes that some of the ideas he has will also help improve screen space reflections (SSR) .
    • However, he also indicated that bring back “full real-time reflections” on water  is a not insignificant ask, and will likely only be possible after the moiré system has been further optimised, as  reflection generation will likely piggyback off of that. As such, the work to recover water reflections will take time and will be iterative in nature, and there may be impacts on the general appearance of water.
  • Commenting on SSR, Geenz also noted that while improvements can be made, it will be “really hard” to return SSR quality to pre-PBR – but then, pre-PBR SSR had its own performance issues. As such, work in this area requires careful consideration on how to make improvements without impacting performance.

In Brief

  • [Video: 2:17-4:07] A further announcement on the departure of Runitai Linden (see: Runitai Linden departs LL for public service).
  • [Video: 24:14-29:30] General discussion / opinions on how and where to present assorted graphical settings and options within the Preferences / debugs, and how users understand / learn about the viewer’s internals.
  • [Video 30:16-32:25] Discussion on graphics and lighting – improving HDRi rendering, ambient like, introducing punctual lighting, using physical units for lighting.
  • [Video: 37:14-43:40] EventQueueGet is a simulator Capability that delivers messages from a simulator to viewers over HTTP using a long-poll scheme. It is core functionality without which viewer/simulator coordination is impossible. However, a number of defects in the design and maintenance of this capability have been found (see here for both defects and proposals to resolve).
    • Monty Linden  has implemented a “phase 1” project to address some of these issues, and has set-up a channel of several regions on Aditi (the Beta grid) for public testing of the changes to validate that they do not in fact break anything. He has also published information on how users can help with the test and what is involved in the “phase 1” work.
    • During the meeting, he requested that people take the time to visit the test regions, carry out TPs and physical crossing between regions, leaving suitably scripted objects running on the regions, etc., per the testing information forum topic and report back via the topic or via the Feedback Portal.
    • This work may become part of the Banana Bread simulator release (still in the process of being defined), and further references to the work will most likely be via the Simulator User Group meetings.
  • User groups for discussing Project Zero / SL Mobile:
    • The Project Zero viewer-in-a-browser project is open for discussion at the Web User Group (as Sntax Linden leads both the WUG group and Project Zero); and it has been indicated it might spin-up its own user group in time.
    • There are internal discussions going on in the Lab about starting a SL Mobile User Group. More to follow on this.

Next Meeting

† 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 gathering of people every week. They are taken from my list of region visits, with a link to the post for those interested.

2024 week #51: SL CCUG & TPV meeting summaries

Ashemi, October 2024 – blog post
The following notes were taken from:

  • My chat log of the Content Creation User Group (CCUG) meeting of Thursday, December 19th, 2024.
  • My chat log  of the Third Party Viewer Developer’s Meeting (TPVD) of Friday, December 20th, 2024.

Please note that this is not a full transcript, but a summary of key topics. .

Table of Contents

Meeting Purpose

  • The CCUG meeting is for discussion of work related to content creation in Second Life, including current and upcoming LL projects, and encompasses requests or comments from the community, together with related viewer development work. This meeting is held on alternate Thursdays at Hippotropolis.
  • The TPV Developer meeting provides an opportunity for discussion about the development of, and features for, the Second Life viewer, and for Linden Lab viewer developers and third-party viewer (TPV) / open-source code contributors to discuss general viewer development. This meeting is held once a month on a Friday, at 13:00 SLT at the Hippotropolis Theatre.
  • Dates and times of both meetings are recorded in the SL Public Calendar, and they are conducted in a mix of Voice and text chat.

Official Viewer Status

    • Release viewer: version 7.1.11.12363455226, formerly the ExtraFPS RC (multiple performance fixes, aesthetic improvements and UI optimisations), dated December 17, promoted December 20 – NEW.
    • Release Candidate: none at present.

ExtraFPS Notes and Rendering – Both Meetings

ExtraFPS Notes

  • The majority of legacy (non-PBR) skies should now look “extremely close” (if not “spot on”) to how they looked prior to the initial PBR release:
    • This is in part due to the default for the RenderSkyAutoAdjustLegacy debug setting being changed to False, which means that legacy skies should render close to the “pre-PBR” look, whilst leaving PBR skies unchanged.
      • This change in the default (from True to False) has caused some confusion among those using the Firestorm ExtraFPS beta versions, as they have been mistakenly switching the default back to True. This should not be done.
    • Tone Mapping is no longer applied the legacy skies, which should help eliminate legacy environments looking too bright / dark.
    • There is a chance that some legacy skies may have been missed, so the request is for those on non-PBR viewer to give ExtraFPS a try and check their preferred legacy skies, just in case. Issues should be reported via the feedback portal – including any noted issue with transitions when moving between different EEP settings.
  • Ambient lighting should be generally improved and “much more consistent” with pre-PBR viewers.
  • Exposure has been reset to 1.0.
  • As a part of the performance options for lower-specification machines, there is now an options to disable HDR rendering and emissives (single check box).
    • This should be automatically unchecked for those running on very low-spec systems (e.g. those running with Intel HD graphics), but those on lower-spec machines might want to check.
  • It terms of overall performance on older hardware types, LL believe theta in the “vast majority” of cases, ExtraFPS runs on a par with FPS rates seen on pre-PBR viewers.
  • Absent from ExtraFPS is the updated alpha/linear/exponential (aka alpha/gamma) settings. This is awaiting decisions around matter of permissions to allow people to apply the changes to legacy content they might own but for which they may not have the required permissions. The hope is to have this in an future viewer as an update.

General Rendering Comments and Feedback

  • The PBR deployment has made LL particularly aware that significant changes which may impact viewer performance need to be monitored far more on a case-by-case basis in terms of older hardware types (graphics cards / types, etc.), rather than looking at across-the-board averages.
    • As has been previously mentioned in CCUG meetings (and elsewhere), this has led to the graphics and viewer teams spending time pulling together older hardware and cards to build what has been unofficially dubbed the Potato Farm, so that changes can be tested against specific older hardware known to be popular among SL users.
  • The Graphics Team acknowledge Linden Water still “doesn’t look anywhere near as good as it should”, and is part of a series of legacy consistency issues they are still addressing.
    • In particular, Geenz Linden noted that Screen Space Reflection (SSR) is “in need of improvement”, but LL just have not had the cycles available to work on it. He has ideas on how things can be improved without having to uproot everything, and hopes that there may be an opportunity to work on them in 2025.
    • One suggestion was to place a glTF transmission texture on Linden Water to help resolve problems. However, this doesn’t appear to be an option due to Linden Water rendering being “kind of incompatible” with the glTF materials specification.
    • Bringing back water reflections to a point where they matched pre-PBR water reflections is seen is expensive in terms of performance, ergo while improvements will be made, they are unlikely to offer the same level of real-time reflections as seen “pre-PBR”.
  • Firestorm ExtraFPS Beta: Firestorm have been iterating on a beta version of their viewer incorporating the ExtraFPS updates. However:
    • Geenz Linden noted that there are some “broken things” in the Firestorm ExtraFPS beta which are leading to some “very noticeable differences” between it and the official ExtraFPS. He is currently working with the Firestorm team to try to correct these issues.
    • The environment doesn’t always change over to the local shared environment on a region crossing (physical or teleport), together with ambient reflection probes getting discarded and rebuilt as a Day Cycle advances to the next preset (keyframe). This is not something the Lab’s graphic’s tam have noted on their viewer; if it can be reproduced on the official ExtraFPS release, bug reports would be appreciated.
  • It has been noted that cube reflection probes do not affect water (although spherical probes do appear to affect water). It’s not clear if this is an unintended breakage as a result of various testing (e.g. with water reflections) or intended (as those in a position to address this question are out of the office on holiday breaks).
  • Tone Mapping:
    • Tone mapping is a highly subjective area – what looks good to one person might not appeal to another.
    • Because of this, and without changing defaults beyond what have been set within the ExtraFPS viewer – the Lab is seeking to provide choice by making options available (e.g. the Khronos Neutral Tone Mapper as well as ACES), and through options to adjust tone mapping (which will eventually be including in the Sky Settings floater), enabling people to make choices for themselves.
  • To assist with manging environment-related settings, Geenz Linden hopes to move things to enable asset versioning for sky / water assets, thus allowing for easier maintaining of legacy code paths when required, which in turn should help with avoiding some of the issues seen with the likes of sky settings in the move to PBR / glTF.
  • Requests:
    • Allow arbitrary meshes to be used as reflection probes. Whilst this could help with fitting probes into difficult spaces (e.g. within cave tunnels), arbitrary mesh shapes as probes are not seen as particularly performant, particularly WRT lower specification systems.
    • Allow blending on reflection probes so that neighbouring / overlapping probes offer smoother transitioning (such as at the entrance to a cave or tunnel or an entrance into a darker interior. In theory this could be done.
    • Provide a new means to “hide” Linden Water from the interior of boats, etc., in a manner similar to using invisiprims under the (now defunct) Forward Renderer. Unfortunately there is no easy means of providing occlusion volumes for Linden Water to replace invisiprims in this use.
  • A lot of questions on PBR Materials which really boiled down to the need for more informative documentation / FAQs / tutorials.

TPVD Meeting

The Lab Using TPVs

  • A long standing policy at the Lab is that staff and contractors have been required to only use the official viewer, and that bugs reported to the Lab need to be reported using the official viewer.
  • In recognition of the widespread use of TPVs – notably, but not exclusively, Firestorm – this policy is now changing.
  • The Lab has already taken steps to implement the ability to build Firestorm internally and with the necessary security options in place to make it “safe” for use by Linden personnel and contractors.
We’re all using Firestorm more … so we can be helpful if need be on integration work and stuff like that with Firestorm. There were security changes in general to allow Lindens to log-in to any third-party viewer, but we’re definitely changing to respect that Firestorm in particular comprises almost all active use of Second Life today and we’ve got to do everything we can to make sure it’s working first, even before our own viewer.

– Philip Rosedale, TPVD Meeting, Friday December 20th, 2024

  • This does not mean that the Lab is adopting Firestorm or taking any form of control over it (or any other TPV); the Firestorm team remains in control of their viewer,  and the roadmap and plans for it. Rather, the aim is to provide assistance for Firestorm and other TPVS where it is needed.
  • Right now for Firestorm, this assistance – as noted above – is focused on evaluating the ExtraFPS code and performance updates for inclusion in Firestorm as quickly as possible.

The Viewer Structure and Open-Source Development

  • The above led to Philip expanding on some of the issues which have arisen due to the way in which the viewer was coded and opened out as a open-source project.
Looking all the way back to 2005, which is when I think we open-sourced the viewer, we didn’t have the team then – nor do we have it now – to properly separate the viewer into into a bunch of modular components that could connect to each other and have plug-ins attached to them in a way that Chrome does. I think that coming back now and being the CTO and looking at what’s going on, one of the elephants in the room is that the structure of the code doesn’t support extensions and plug-ins in the way that would make sense for a properly-run open-source project. I say that without a specific solution in mind, I’m just recognising it. 

– Philip Rosedale, TPVD Meeting, Friday December 20th, 2024

  • Because of the approach taken, the viewer code has become “a plate of spaghetti”, with third-parties developers able to open the code up and make changes then deem necessary at any point in the code.
  • This has been further exacerbated by the lack of overall documentation for the viewer that might be constructively used by developers internally and externally to the to the Lab to understand the viewer code – a point that is again acknowledged.
  • Ideas for trying to make the viewer code more modular are being looked at, but no decisions  – much less a roadmap – for starting to do so have yet been reached.
    • As both Philip Rosedale and Vir Linden noted, the fact that there has been 15-20 years of open-source viewer development, with TPVs (and the Lab) picking their own paths does make doing so “tricky”.
    • One possible avenue being considered here is trying to separate the viewer UI more from the underlying rendering engine, potentially making updates to either less intrusive either way.
  • An additional goal of the work currently being carried out to support Firestorm with ExtraFPS is to try to ensure the code in question can be more easily pulled-in by other TPVs as well.

General Discussion Points

  • Web development:
    • The Marketplace is written on Ruby on Rails, communicating with a SQL running on Redis, an infrastructure which is making it hard to chase down query optimisation problems.
    • As a result, there is a likelihood that some engineering support is going to be pivoted towards SL’s web properties and infrastructure, which may result in work in the viewer / server areas slowing down.
  • Open positions at LL:
    • Time was taken in discussing current (at the time of the meeting) open positions at LL – server developer, Mobile developer and senior product manager.
    • This touched on some of the upcoming features coming to Mobile – such as the Lobby capability due to surface in SL Mobile during Q1 2025 (see: Second Life Blogger Town Hall, December 2024: Mobile, marketing and more).
    • Specifically, there was a request for any Second Life developers / users who have the requisite skills for the posts and who might be looking for a career change (or who know someone who does / is) to considering applying / pointing people to the Lab’s careers page.
    • In addition, Philip noted, in line with the above web development, the Lab is seeking expertise in Ruby on Rails development (preferably with SQL experience as well) – although this is not currently advertised on the LL careers page. Anyone who has / knows of such experience can contact him – preferably via e-mail.

Next Meetings

 

† 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 gathering of people every week. They are taken from my list of region visits, with a link to the post for those interested.

2024 week #47: SL CCUG & TPV meeting summaries

Silent Melody, September 2024 – blog post
The following notes were taken from:

  • My chat log & the live stream video (embedded below) of the Content Creation User Group (CCUG) meeting of Thursday, November 21st, 2024.
  • My chat log and Pantera’s video (embedded towards the end of this article) of the Third Party Viewer Developer’s Meeting (TPVD) of Friday, November 22nd, 2024.
Table of Contents

Please note that:

  • This is not a full transcript, but a summary of key topics.
  • “[Video]” time stamps refers to the CCUG meeting livestream recording;  “[Pantera]” refers to the TPVD meeting video provided by Pantera.

Meeting Purpose

  • The CCUG meeting is for discussion of work related to content creation in Second Life, including current and upcoming LL projects, and encompasses requests or comments from the community, together with related viewer development work. This meeting is held on alternate Thursdays at Hippotropolis.
  • The TPV Developer meeting provides an opportunity for discussion about the development of, and features for, the Second Life viewer, and for Linden Lab viewer developers and third-party viewer (TPV) / open-source code contributors to discuss general viewer development. This meeting is held once a month on a Friday, at 13:00 SLT at the Hippotropolis Theatre.
  • Dates and times of both meetings are recorded in the SL Public Calendar, and they are conducted in a mix of Voice and text chat.

Official Viewer Status

  • Release viewer: version 7.1.10.10800445603, formerly the DeltaFPS RC (multiple performance fixes, etc), dated September 11, promoted September 17 – No change.
  • Release Candidate: ExtraFPS RC, version 7.1.11.11750364439, November 12.
    • Performance improvements: enhanced texture memory tracking, broader hardware compatibility and higher FPS gain;  additional code to improve texture streaming on rigged attachments (e.g. if an earring is made with 2K textures, the viewer will correctly calculate the required resolution for the textures and download them, rather than downloading the full 2K textures), etc.
    • Aesthetics improvements: new Antialiasing setting – SMAA; Contrast Adaptive Sharpening; Khronos Neutral Tone Mapping (can be changed to ACES via the RenderTonemapType Debug setting).
    • UI Optimisations.

Mobile Notes – CCUG Meeting

[Video: 45:24-47:42]

  • Adding PBR support to SL Mobile is on the roadmap, with ah hoped-for target of some time in Q1 2025 (Jan-March).
  • SL Mobile voice support is experimental, and utilises WebRTC.

CCUG Meeting

Graphics Team Work – General Recap

[Video 0:28-5:31 and 25:04-32:33]

  • Core focus remains on performance work and will remain so until “everyone is happily on PBR-enabled viewers.”
  • Hope is still to have ExtraFPS promoted to release status by the end of 2024.
    • This viewer should see some “significant [performance] improvement” on certain types of hardware – e.g. the Intel HD4000 series (launched May 2012), which is “remarkably popular” among SL users.
    • This work is focused on developing a “classic” mode (also known as a “potato mode” which will see various rendering options disabled (e.g. HDR, Tone Mapping, Reflection Probes, the Emissive channel) to render SL more in keeping with its pre-PBR appearance when running with ALM enabled (aka Deferred Rendering).
    • To achieve this and ensure decent frame rates, comparative benchmarking is being carried out:
      • If an older GPU runs a non-PBR viewer at a higher FPS with ALM enabled than with it disabled – then the aim is to try to match or better that FPS when the same hardware is running a PBR viewer. Or;
      • If an older GPU runs a non-PBR viewer at a higher FPS with ALM disabled (thus using the old Forward Renderer)  – – then the aim is to try to match or better that FPS when the same hardware is running a PBR viewer, but with ALM-like graphics fidelity.
    • A major element of this work is to get older harder performance back up without creating a rendering schism through the re-introduction of something like Froward Rendering.
  • This work is being carried out alongside “various end of year this and kick-off the next year things.”
[We’re] doing our level best to ensure everybody who can use Second Life on Firestorm 6.6.17 can upgrade to some version of 7.x [PBR] without suffering negative consequences. That’s what we’re doing; we’re chasing all the crashes that we can and all the performance issues that we can. 

– Runitai Linden.

  • [Video 33:28-35:10] A reiteration that a lot of the issues impacted older / lower spec systems are not PBR-related per se (they just happen to have been surfaced within PBR-enabled viewers). Rather, they are the result of things like running out of VRAM due to the updates made to the texture streaming system.
    • Where issues have been due to PBR (e.g. exceptionally heavy PBR in-world builds) there are additional optimisations that are being done.
    • A point to remember here is that PBR is a part of the glTF 2.0+ specification which LL are adopting – and glTF is designed to support a very wide range of hardware, including mobile ‘phone upwards, and so is not itself particularly resource-intensive.
  • Until now, issues with the quality of water reflections on PBR viewers has not been seen as a priority to fix, as it is not performance related and has thus been “taking a back seat” in the queue of fixes. However, if it is seen as a significant issue that prevents users from moving to a PBR viewer, this might be reviewed.

Texture Blurring and downscaling

[Video: 6:54-14:25]

  • In response to comments about texture blurring, Runitai Linden noted that the viewer will start down-scaling textures as it detects a system is running low on available VRAM.
  • This can result in some scene textures close to the camera remaining blurred until focused / zoomed-in upon.
  • Runitai believes there is more work that could be done as to how the fall-off curve for this works to reduce the need to zoom “right in” on textures doing this in order for them to render properly.
  • He further noted that the old behaviour of just using mouseover on a texture to get it to load is no longer applicable, as that actually caused most of the textures in a scene to load at full resolution, causing a performance hit.
  • In addition, there are still some bugs which can result in the viewer getting the wrong answer as to how much VRAM is available on a system (and start downscaling textures when it may not need to). To check if this might be the case:
    • Open the viewer’s texture console (Develop(er) → Consoles →  Texture Console / CTRL-SHIFT-3).
    • Check Est. Free (top line of the Console display) and compare the number with something like GPU-Z or Task Manager (via GPU option).
    • If the two are very different, then there is likely a bug. Please file a bug report with hardware details (Help → About → Copy to Clipboard and paste info into report).
    • Note that on integrated graphics system, the amount of VRAM usually gets reported as the amount of system RAM, and this is referenced by the Sys Free number in the viewer’s Texture Console. Sys Free also reports based on the fact that the viewer tries to minimise its total memory footprint to under 16 Gb.
  • There is no set “minimum” or “maximum for VRAM with SL; LL are committed to enabling SL to run on GPUs with as little as 2 Gb of VRAM, and it is felt that systems with a minimum of 4 Gb and a Draw Distance of 128 metres should be able to manage most scenes – but this is a very broad rule of thumb; the viewer will continue to use VRAM until it runs out, if necessary – there is no upper limit, although some TPVs do allow caps to be set.
  • When downscaling occurs, it should be a) because VRAM has been used; b) commence with textures in the background / off-camera before moving to those in-view.
  • Note that textures will also be off-loaded from VRAM when SL is minimised  / put in the background, to allow other applications access to VRAM. This can also cause blurring as textures are reloaded when SL is brought back to the foreground and resumes using all available VRAM as best it can.

In Brief

  • [Video: 18:32-21:02] WebRTC: LL are still awaiting more users to move to viewers with WebRTC support prior to disabling Vivox.
  • [Video: 23:31-24:40] Older EEP (e.g. Windlight, they’re that old – such as CalWL) settings can look blown-out on PBR views.
    • LL have been attempted to auto-adjust them, but this has proven subjective in terms of results.
    • Therefore, going forward, work will be limited to trying to make them look like they used to, which is acknowledged as not being great for PBR content, but is the “least bad” in terms of keeping EEP settings people like looking the way people like to see them.
    • Hopefully, this work will be finished in time to be included in ExtraFPS; however, if it misses ExtraFPS, it may be issued as a viewer hotfix.
  • [Video: 39:15-40:10] A note of two long-term risks, graphically speaking, that have to be addressed within SL at some point:
    • COLLADA support: support for COLLADA is waning world-side, and so SL needs an interchange file format that is not dependent on COLLADA. Again, glTF is seen as the best solution here.
    • Similarly, OpenGL support is waning, so SL requires a rendering engine that does not rely on OpenGL [and this has been an on-going discussion for the last couple of years or so].
  • [Video: 40:12-45:10] Land Impact: it has long been acknowledged that the Land Impact calculation needs to be revised; there is both a lack of real incentive within it for creators to optimise their builds, and  it misses some key adjustments for things like large builds. The question here is more when it will be revised – although doing so may not eliminate all the ways in which some people game the system to produce lower LI items, as this is something of a separate issue.
  • A general discussion on glTF and mesh imports (incl. scenes) via glTF. In short, no-one working on things at present, given the focus on the performance issues. The local preview remains available in those viewers with the code – by Runitai reminded people that the preview does not use texture streaming; everything gets pulled in at full resolution – and so VRAM can easily be gobbled up.

TPVD Meeting

Much of the TPVD covered ground already walked during the CCUG meeting. Therefore, the following is thus a summary of additional points discussed. Time stamps reference Pantera’s video, below.

Note the meeting formally ended at around 29 minutes, although the video runs through until just shy of 41 minutes, covering a more generic conversation.

  • A recap of the “classic”  / “potato” mode work (get PBR viewers running on lower-spec machines running at the same or better FPS than the hardware can run a non-PBR viewer).
  • Debunking the PBR myths:
    • It is not necessary to run the viewer on Ultra quality in order to view PBR content.
    • LL are not removing support for Blinn-Phong (or “classic” or “legacy”, however you want to call them) materials. PBR is an extension to materials support in SL, not a replacement.
  • A general conversation on Blinn-Phong and PBR Materials, notably in terms of providing the former as “fallbacks” to the latter to accommodate people on non-PBR viewers and prevent them seeing grey / white / plywood surfaces  / features.
  • [Pantera: 9:42-10:42] Some people may experience issues with PBR not just because of computer hardware limitations, but also because of network / router issues (e.g. instead of a single diffuse map, PBR calls multiple maps, resulting in multiple HTTP requests which can cause some routers to choke).
    • To counter this, the “classic / potato” mode LL is developing already doesn’t use the emissive map; if this is shown to work and push up performance, then LL will likely go through as see what other maps might be ignored without compromising the overall visual look of “classic” mode, and hopefully further lift performance in these cases.
  • [Pantera: 15:11-16:45] A reiteration that LL are continuing to work on trying to resolve performance issues, and that anyone experiencing such issues should file a feedback report with as much detail as possible (including hardware information (Viewer Help and use the Copy to Clipboard button and paste info into the report).
    • Specifics are important, as there is only so much info LL can pull from their stats. This is particularly true when terms such as “performance craters” are used, as these are so broad-ranging as to be meaningless.
  • [Pantera: 16:50-20:00] SL viewer’s use of CPU cores and threads: thread usage is variable depending on the number of CPU cores.
    • Those with a specific interest in this, the Steam Hardware Survey is “pretty close” to SL, although SL’s install base tracks “a little closer” to the lower end of hardware, so reduce what is reported in the Steam Hardware Survey 10-20%, and that’s fairly representative of SL.
    • Overall with SL, the main processing loop is single-threaded; texture rezzing and some audio processing occurs on background threads.
    • Runitai Linden has been experimenting with adding threads – such as a dedicated idle thread – and these are showing a “lot of promise”, particularly when Vsync is used.
    • As most GL processes are multi-threaded, hints are sent to things like Nvidia drivers to put themselves into multi-threaded mode.
  • [Pantera: 20:38-25:35] Frame limiters / Vsync: some TPVs use frame limiters to assist with performance, and LL would be interested in receiving a code contribution for one of these.
    • However, it is felt that if trying to limit frame rate to screen refresh, then Vsync remains the better option; whilst a frame limiter is more suited to use in other situations. But, and  depending on the frame rate, Vsync can cause more screen jitter than a frame limiter.
    • In this discussion it was noted that a fix from Apple at the OS level means Vsync with work at 100/120 Hz.
    • It was noted that Firestorm are now defaulting to 60fps with their frame limiter.

Next Meetings

 

† 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 gathering of people every week. They are taken from my list of region visits, with a link to the post for those interested.

2024 week #43: SL TPVD meeting summary

Grauland / Primary Colors, September 2024 – blog post

The following notes were taken from my audio recording + the video recording by Pantera (embedded at the end of this summary) of the Third-Party Developer meeting (TPVD) held on Friday, October 25th, 2024. My thanks to Pantera as always for providing it.

Meeting Purpose

  • The TPV Developer meeting provides an opportunity for discussion about the development of, and features for, the Second Life viewer, and for Linden Lab viewer developers and third-party viewer (TPV) / open-source code contributors to discuss general viewer development. This meeting is held once a month on a Friday, at 13:00 SLT at the Hippotropolis Theatre.
  • Dates and times are recorded in the SL Public Calendar, and they re conducted in a mix of Voice and text chat.
  • The notes herein are a summary of topics discussed and are not intended to be a full transcript of the meeting.

Official Viewers Status

[Video: 0:00-2:30]

  • Release viewer: version 7.1.10.10800445603, formerly the DeltaFPS RC (multiple performance fixes, etc), dated September 11, promoted September 17 – No change.
  • Release Candidate: ExtraFPS RC, version 7.1.11.11296522354, October 18.
    • Performance improvements: enhanced texture memory tracking, broader hardware compatibility and higher FPS gain;  additional code to improve texture streaming on rigged attachments (e.g. if an earring is made with 2K textures, the viewer will correctly calculate the required resolution for the textures and download them, rather than downloading the full 2K textures), etc.
    • Aesthetics improvements: new Antialiasing setting – SMAA; Contrast Adaptive Sharpening; Khronos Neutral Tone Mapping (can be changed to ACES via the RenderTonemapType Debug setting).
    • UI Optimisations: lessening the impact of UI rendering on frame rates / performance (discussed more fully at 16:52-18:04].

Upcoming Viewers

  • ExtraFPS is described as having some “high priority” bug which require fixing before it progresses to release status.
  • The next RC viewer to follow ExtraFPS is likely to be the Maintenance B build, which includes work put on hold while the focus was on PBR and non-PBR related performance fixes.
  • Performance improvement will continue to be part of the on-going work with the viewer, but once ExtraFPS is promoted to release status, it is unlikely that the Lab will produce viewers dedicated only to performance fixed for a while.
  • From the comments made, it appears as if LL are going to try to pull work from what had been the Maintenance C RC viewer (also put on hold whilst the performance work was going on) into the next viewer build as well.
    • It was acknowledged that this approach may need toa delay in getting the updated Maint B viewer out and to release status, but it is hoped that in the long run, it will mean a faster release cycle with the viewer builds which eventually follow behind Maint B.
  • [Video 21:09-22:27] Vir reiterates that as the Maint B(/C) viewer appears, it should mark the return  of Linux to the list of official viewer builds.
    • However, the Linux flavour will be based on code contributions rather than dedicated support from with in the Lab.
    • If things break with it, the Lab will attempt to fix them, but will not hold back viewer releases as a result of Linux-specific breakages / bugs.

WebRTC

[Video 2:31-4:20]

Summary

  • The replacement of the Vivox Voice service and plug-in, with the WebRTC communications protocol (RTC=”real-time communication”). Roxie Linden is leading this work.
  • Key benefits:
    • WebRTC supports a wide range of real-time communications tools in common use (e.g. Google Meet), supporting audio, video and data communications, and is thus something of a “standard” approach.
    • Offers a good range of features: automatic echo cancellation, better noise cancellation and automatic gain control, much improved audio sampling rates for improved audio quality.
    • Opens the door to features and capabilities to voice services which could not be implemented whilst using Vivox.

Status

  • There is now a “pretty significant fraction” of users still using a non-WebRTC capable viewer.
  • LL would like this number to be further reduced before they completely pull the back-end support for Vivox. As such, the exact time frame on when the switch might be thrown is still TBA.
  • [Via chat throughout the 10-25 min point in the meeting, and with some Voice from approx 18 mins] It was noted that Voice roll-off under WebRTC should work the same as for Vivox, BUT the range at which is rolls-off completely is greater (60m).
    • Some have reported that this does not appear to be the case, with roll-off potentially not working at all (also reported at the last TPVD meeting).
    • LL to investigate further.

Graphics Work

[Video: 5:28-end]

  • The first part of this update referenced rigged attachment texture streaming as noted in the ExtraFPS summary, above.
  • Also as noted above, the work on improving performance has reached a point of diminishing returns for dedicated viewer updates, so future performance improvements will be folded in ither other viewer updates making it to the Develop branch.
  • The above noted, LL is still digging into specific hardware types where the viewer does not perform well (e.g. some AMD graphics chips) in order to determine what might be done to improve things.
    • If people running a viewer with the DeltaFPS code included are still fining they have very poor performance (e.g. single-digit FPS; an already low FPS cut in half, etc.), they are asked to file a Canny report and included information on their hardware (e.g. copy-paste their hardware information as displayed in Help → About, in the viewer).
  • [Video: 7:57-9:07] A change was introduced with the Delta FPS code such that if the viewer is running in the background on a system for more than 10 seconds, it will down-rez textures to prevent over-use of VRAM when it is not the application in focus.
    • This has received completely mixed feedback: some feel 10 seconds is too long a period to wait; others feel it is too short; those running multi-screen systems with SL on one monitor dislike the fact that when they focus away from SL to work on their other screen, SL “goes blurry”, etc.
    • As a result, LL is considering making this a switchable option, so users can decide whether they want to utilise it or not.
  • [Video 9:20-11:13] A discussion on using Vsync in the viewer vs. limiting frame rates (e.g. through the viewer or via something like the Nvidia control panel).
  • [Video 27:29-33:33] A discussion on brightness and  gamma / PBR vs non-PBR / use of HDR rendering + tone mapping.
    • In terms of tone mapping, the decision is to move back o ACES as the default in light of feedback, but people will remain able to select Khronos Neutral or ACES through Preferences.
    • The long-term plan is to have tone mapping and colour correction per sky setting, allowing region holders / designs to choose which ones they want.
    • As such, content creators are reminded no to bake tone mapping in their base colour / diffuse map but let the viewer’s post-processing handle the tone mapping.
  • [Video: 33:25-38:33] Alpha / gamma work:
    • As per previous meetings: in order for PBR lighting to render anywhere close to correctly, alpha blending had to be switched from SRGB to linear colour space. This can cause some older content using Blinn-Phong, to look either more opaque or more transparent than in did pre-PBR.
    • The fix for this giving people the ability to adjust the alpha/gamma on per texture entry for the object (including no mod items)
    • A link was provided to an installer for a viewer with the code at the meeting, but this later generated a 404 error.

In Brief

  • The latter part of the meeting included a discussion on documentation + communication (e.g. communicating more fully the reasoning behind PBR – the move towards better and more consistent content using glTF).

Next Meeting

† 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 gathering of people every week. They are taken from my list of region visits, with a link to the post for those interested.