2021 TPV Developer meeting summary, week #49

DARYA, October 2021 – blog post

The following notes are taken from the TPV Developer meeting held on Friday, December 10th, 2021.

These meetings are generally held every other week.  They are recorded by Pantera Północy, and her video of the meeting is embedded at the end of this report – my thanks to her for allowing me to do so – and it is used with the chat log from the meeting and my own audio recording to produce this summary, which focuses on the core topics discussed.

SL Viewer

  • The combined Simplified Cache and 360 Snapshot project viewer, version 6.5.1.566335, issued on December 7th.
  • The Jenever Maintenance RC viewer, version 6.5.1.566306, dated November 30th, and the Koaliang Maintenance 2 RC viewer, version 6.5.1.565905, also dated November 30th, both issued on December 6th.
  • The Performance Improvements project viewer updated to version 6.5.1.566443 on December 8th.

The remaining official viewer flavours remain as:

  • Release viewer: version version 6.5.0.565607, formerly the Maintenance RC and dated November 10, promoted November 15 – this viewer now contains a fix for the media issues caused by the Apple Notarisation viewer.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself):
    • The Tracy Integration RC viewer, version 6.4.23.563771 (dated Friday, November 5) issued Tuesday, November 9.
  • Project viewers:
    • Performance Improvements project viewer updated to version 6.5.1.566443, dated December 8.
    • Performance Floater project viewer, version 6.4.23.562625, issued September 2.
    • Mesh Optimizer project viewer, version 6.4.23.562614, issued September 1.
    • Legacy Profiles viewer, version 6.4.11.550519, dated October 26, 2020.
    • Copy / Paste viewer, version 6.3.5.533365, dated December 9, 2019.

General Viewer Notes

  • The combined Simplified Cache and 360 Snapshot project viewer is likely to be the next viewer to be promoted to de facto release status. Depending on how many use the RC cohort, this could be promoted before the code freeze period comes into effect. If not, it will be the first viewer promotion in 2022.
  • The Performance Improvements viewer has been updated, but remains at project status, but will hopefully be promoted to RC status in the New Year. With regards to this viewer:
    • It has been noted that it is still subject to some brief frame stalls “from unusual places”, which are still being investigated. There is also a report of some media-related frame stalls.
    • It has also been noted that due to the changes made, some the stats reported by the viewer (e.g. Ktris per frame / per second, some of the memory usage stats) are no longer accurate / are zeroed out because the counts associated with these stats were impacting performance, and it was deemed more preferable to have them logged by external tools from which the data could be extracted, rather than having every viewer performing its own profiling cycles.

Code Freeze

Subject to final confirmation, the end-of-year code freeze period is likely to come into effect on Monday, December 20th, and will run through Monday, January 3rd, 2022. During this time, there will be no official viewer updates and no server-side releases or simhost updates.

In Brief

  • Mojo Linden reiterated that the Lab is keen to hear back from users on the Performance Improvements viewer, and in receiving suitable performance improvements code from TPVs, and the emphasis remains on trying to improve overall performance for all users.
  • He also indicated that LL are in discussions about other improvements that can be made to the viewer and again, he is interested in hearing back from TPV developers and users on potential areas in the viewer that could benefit from improvement.
  • The log-in services update that caused issues for scripted agents (bots) at the start of the week and had to be rolled-back (see my week #49 SUG summary) was in part originally been made in order to remove outdated code from the servers. Mojo apologised for the issues it caused on deployment.
  • A request has been made for the new search front-end to return a JSON blob, so that TPVs can parse it and present search results in a manner that is more in keeping with the rest of the viewer UI.
  • Unless there is a strong case for it, the Lab is liable to drop GLOD support for mesh uploaders at some point in the future in favour of the mesh optimiser currently within the Mesh Optimiser project viewer. GLOD may therefore become a matter of legacy support among TPVs.
  • Runitai Linden noted that there is a mis-match between the benchmarks used to determine viewer default settings and the capabilities of systems the viewer is installed on. For example, a laptop running Intel HD Graphics can default to running on Ultra or High graphics due the the current benchmark threshold, whereas it might be better suited to running at Medium. He’s therefore asked TPVs for input on which viewer defaults might need adjusting going forward (And update to the maximum VRAM usage for the official viewer is apparently already in the works).
  • The last 20 minutes of the meeting is devoted to a technical discussion on what might be done to improve the appearance of SL in ways that might help lift retention by encouraging people to keep exploring (and hopefully meeting up with like minds and so generating the social links that will further encourage their continued engagement).
    • This discussion included the potential for using back-end baking for lighting, etc., to relieve the viewer load, and how it might work within a dynamic build environment like Second Life, together with updated ambient occlusion capabilities, etc.
    • The discussion also covered LODs on mesh, and the problems the current system has pushed onto performance (due to encouraging over-use of low LODs & creators then insisting users should over-tax their systems through high LOD render settings, etc.).
    • Please refer to the video for details on this discussion for the full context, including the fact that the discussion was only around ideas, and not projects LL is about to start working on.

2021 TPV Developer meeting summary, week #45

The Path to Buchhaim, August 2021 – blog post

The following notes are taken from the TPV Developer meeting held on Friday, November 12th, 2021.

These meetings are generally held every other week.  They are recorded by Pantera Północy, and her video of the meeting is embedded at the end of this report – my thanks to her for allowing me to do so – and it is used with the chat log from the meeting and my own audio recording to produce this summary, which focuses on the core topics discussed.

SL Viewer

  • The Tracy Integration RC viewer version 6.4.23.563771 (dated Friday, November 5) entered the list some time after Tuesday, November 9.
  • Performance Improvements project viewer updated to version 6.4.24.565324 (dated November 5) also some time after Tuesday, November 9.
  • The Maintenance RC viewer updated to version 6.5.0.565607, on November 10th – this viewer now contains a fix for the media issues caused by the Apple Notarisation viewer. If you have been impacted by these issues and have had to roll back to an earlier version of the official viewer, it is recommended you download and install this RC.

The remaining official viewer flavours remain as:

  • Release viewer: version version 6.4.23.564172, formerly the Apple Notarisation Fix RC viewer, issued September 24 and promoted October 15.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself):
    • 360 Snapshot RC viewer, version 6.5.0.564863, issued October 21.
    • Simplified Cache RC viewer, version 6.4.23.562623, dated September 17, issued September 20.
  • Project viewers:
    • Performance Floater project viewer, version 6.4.23.562625, issued September 2.
    • Mesh Optimizer project viewer, version 6.4.23.562614, issued September 1.
    • Legacy Profiles viewer, version 6.4.11.550519, dated October 26, 2020.
    • Copy / Paste viewer, version 6.3.5.533365, dated December 9, 2019.

General Viewer Notes

  • It is possible the 360 Snapshot RC viewer and the Simplified Cache RC viewers may be merged prior to either being individually promoted to de facto release status.
  • The Performance Improvements viewer has been further updated, but will likely go into a round of bug fixing before progressing further – as Vir pointed in the meeting, the problem with moving operations between threads / to their own threads, things can have undesired consequences, and these are to be addressed with fixes.
  • The focus at the Lab is to try to get all of the current list of viewers updated & quite possibly promoted to release status by the end of 2021.

In Brief

  • Mojo Linden indicated that the Lab is keen to hear back from users on the Performance Improvements viewer, and in receiving suitable performance improvements code from TPVs, and the emphasis remains on trying to improve overall performance for all users.
  • BUG-231417 “ADITI LOGIN – Fields not conforming to previous login behaviour” (preventing clients reliant on libomv and libremetaverse from logging into Aditi (the Beta grid), and BUG-231303 “Scripted agents can no longer log in” (an outcome of the dropping of TLS 1.0/1.1 support) together form the backbone of discussions in the meeting, which includes cipher sets, use of (effectively) deprecated operating system versions (e.g. Windows 7, Windows Serve 2012), TLS / SSE support, etc. Please refer to the video below for details.
  • Catznip R13 is now on the horizon as a release.
  • Firestorm is testing an “auto tune” capability to better handle other avatars to help boost performance – LL are apparently also looking at something similar.

2021 TPV Dev meeting week #43: viewer performance + Mobile App

Mimmo, July 2021 – blog post

The following notes are taken from the TPV Developer meeting held on Friday, October 29th, 2021.

These meetings are generally held every other week.  They are recorded by Pantera Północy, and her video of the meeting is embedded at the end of this report – my thanks to her for allowing me to do so – and it is used with the chat log from the meeting and my own audio recording to produce this summary, which focuses on the core topics discussed.

SL Viewer

This list gives the status for all currently available official viewers.

  • Release viewer: version version 6.4.23.564172, formerly the Apple Notarisation Fix RC viewer, issued September 24 and promoted October 15.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself):
    • 360 Snapshot RC viewer, version 6.5.0.564863, issued October 21.
    • Maintenance RC viewer updated to version 6.5.0.564805, on October 20.
    • Simplified Cache RC viewer, version 6.4.23.562623, dated September 17, issued September 20.
  • Project viewers:
    • Performance Improvements project viewer, version 6.4.23.564530, dated October 12.
    • Performance Floater project viewer, version 6.4.23.562625, issued September 2.
    • Mesh Optimizer project viewer, version 6.4.23.562614, issued September 1.
    • Legacy Profiles viewer, version 6.4.11.550519, dated October 26, 2020.
    • Copy / Paste viewer, version 6.3.5.533365, dated December 9, 2019.

Apple Notarisation Viewer Issue

[Video: 26:10-27:38]

With the release of the Apple Notarisation Viewer there were updates to many of the viewer’s third party libraries, and some of these updates have be found to cause issues related to playback of certain media types in-world (notably MP3s and MP4s). A fix is in progress, and once ready, LL intend to fast track it through QA ahead of other viewer updates and make an RC viewer with the fix available ASAP.

However, for those wishing to avoid the issue, the following workarounds are offered:

  • Windows:
    • Uninstall the Second Life viewer the usual way.
    • Navigate to your Program Files folder (Win 64-bit) or Program Files (x86) (Win 32-bit); locate and delete the “SecondLifeViewer” folder.
    • Download and install the Simplified Cache viewer (the previous release viewer).
  • Apple Mac:
    • Remove the Apple Notarisation viewer from your system.
    • Download and install the Simplified Cache viewer (the previous release viewer).
    • Read the instructions on this page to work through any occurrences of unwanted notarisation warnings.

Viewer Performance Notes

[Video: 3:18-15:35]

As has been reported in these pages, the Lab is focusing on a range of performance improvements in both the viewer and on the back-end. In respect of the viewer, a new Performance Improvements project viewer has been released (linked to above. This prompted an update from Runitai Linden and Ptolemy Linden of the graphics team during the meeting:

  • The core of the viewer work thus far has been on profiling and optimisation using the Tracy debugger.
  • Results thus far are described as going “pretty well” with some systems / hardware and “not bearing much fruit” for others.
  • The Lab are keen to get feedback from users for this viewer – particularly in comparing frame rates with the current official viewer release.
  • However, the request for users to try the viewer come with the warning: it is known to suffer regular crashes, in part because LL have been playing “fast and loose” with settings, such as enabling OpenGL core profile, and also as a result of experimenting with moving some processes to background threads, etc., – although the overall effect of such thread moves is eventually to provide improved performance in stable viewers.
  • Windows 32-bit and a version for Apple will be made available in due course. However, the Apple version is subject to frame rate issues associated with the Mac build being rectified.
  • The availability of an external analysis tool that can be enabled during the viewer compile process means that a lot of the internal instrumentation within the viewer will likely be removed – notably around block timers, which can generate a lot of performance woes.

Upcoming Work

  • Future work includes adding further threading capabilities:
    •  Nat Linden working on a generic project to try to unify all the various background threads into something that can pick-up any given task, removing the need for multiple threads effectively being “asleep” for much of the time, but taking up processing cycles.
    • Runitai is working on re-writing how rigged avatar attachments are handled. This is perhaps the most frame-intensive operation performed by the viewer in trying to draw them individually (none of the operations are batched).
      • Runitai is currently working on the fork of the render pipe inside the avatar draw pool that handles this work and move it to the same machinery that handles the other draw pools,. This should hopefully enable rigged mesh rendering to be handled on a batch basis, rather than one face at a time.
        • (There are some hurdles to overcome with this, such as texture changes; however, if the work is successful this could result in a substantial reduction in the number of draw calls the viewer has to perform with avatars+rigged mesh).
      • A degree of optimisation has already been carried out with rigged meshes (e.g. not re-uploading the matrix palette for every single face when it can be re-used which should help reduce draw calls; looking at the extra load placed on the viewer by making singletons thread safe, thus causing viewer locking, etc.).
    • OpenGL textures now have a dedicated thread and GL context (LLimageGL) for processing and then re-sync’d back to the main thread, which has resolved a lot of frame stalls. This working currently encompasses all fetched textures (sky rendering and media texture rendering is still bound to the main thread).
  • Ptolemy Linden is looking into render frame stalls (e.g. due to some EEP calls getting into a loop and can cause stuttering in the viewer).
  • Uniform buffer objects have also been looked at, but it requires a further tidy-up of other code within the rendering system (e.g. handling of EEP parameters) before any real results will become visible with this work.

Increasing the Default VRAM limit from 512 MB

  • Runitai referred to the limit as misleading, as the system will use more VRAM where available, even with the limit set.
  • LL have run into problems in low-end systems running out of memory if the value is increased (possibly because Intel don’t provide an API to provide information on actual VRAM usage), and so the request was put to TPVs who have solved this issue to consider supplying the Lab with a patch they could look at, it would be appreciated.

OpenGL Replacement

[Video: 15:36-16:43 and 35:00-38:35]

As has been noted in previous meeting summaries, Apple are deprecating OpenGL on their OS. This has prompted LL to look for alternative APIs.

  • Runitai indicated that MoltenGL may be looked at specifically for Apple. This essentially provides many of the performance benefits of the Metal framework, while maintaining compliance with the OpenGL ES 2.0 API. However, any move towards this solution will require further evaluation, together with a better understanding of how possible licensing requirements might impact TPVs.
  • Beyond this, all plans remain fluid. The options primarily under consideration are:
    • Using Vulkan (Windows) and Metal (Apple).
    • Running Vulkan extraction layers on top of G3D on Windows (and MoltenGL for Apple?)
    • Implementing an off-the-shelf multi-API extraction layer.
    • Home-brew a dedicated extraction layer.
    • Stick with OpenGL for Windows and use MoltenGL for Apple (as noted above).
    • Initially supporting Vulkan + OpenGL for Windows and then retiring OpenGL and running Vulkan extraction layers on top of G3D (no word on Apple solutions in this scenario)
  • However, a consensus has yet to be reached on the direction to be taken, the focus is on furthering an clean-up of the rendering code and improving performance on OpenGL as far as possible, then consider making the move to alternatives.

Windows 11 and SL

[Video: 28:02-30:17]

  • So far there do not appear to have been any significant issues encountered by LL  / users in using Second Life on Windows 11 as the latter is made more broadly available.
  • There are a couple of reported minor issues:
    • BUG-231041 “[Windows 11] Memory creep running with Windows Insider Beta version, when Viewer is minimised”, which has apparently yet to be confirmed as an issue with the release version of Win 11.
    • The viewer reports the OS build as: Microsoft Windows 10 64-bit (Build 22000 [and above]).
  • If anyone is encountering reproducible issues which appear to be tied to Windows 11, please file a Jira.

Update on Mobile Status

[Video: 32:45-33:52]

As has been reported elsewhere, work on the SL Mobile App for iOS has been suspended for the time being. Commenting on why and for how long, Mojo Linden (LL’s VP of Engineering) commented:

  • LL is still “very interested in moving things forward in the mobile space”.
  • The pause is liable to last “a number of weeks”.
  • The hope is that following any review, the Lab will be bringing “bigger and better things to the table”, although the pause has also been due to the need to divert resources into other work.
  • Not much more was said (in part because Mojo did not want to steal Grumpity Linden’s thunder), but there will be “more news in the future”.

In Brief

  • [Video: 1:16-1:42] Chap Linden is the new Product Manager for the viewer, taking over from Alexa Linden. He has been with the Lab for around two weeks (at the time of writing), and his responsibilities may expand in time.
  • [Video: 20:25-26:00] A general discussion on viewer build tools and simulator-side changes on the beta grid to ease viewer build testing.
  • [Video: 43:32-42:50] LL is apparently dealing with an (allegedly) China-based website that has (or had) been using the Second Life name to illegally sell cryptocurrency.
  • Kitty Barnett from the Catznip team hopes to be able to contribute her work on Linden Water occlusion (so “unseen” Linden Water is effectively ignored by the viewer, reducing the render load & improvement frame rates) to the Lab Soon™.

2021 TPV Developer meeting week #41 summary

Euphoria, July 2021 – blog post

The following notes are taken from the TPV Developer meeting held on Friday, October 15th, 2021.

These meetings are generally held every other week.  They are recorded by Pantera Północy, and her video of the meeting is embedded at the end of this report – my thanks to her for allowing me to do so – and it is used with the chat log from the meeting and my own audio recording to produce this summary, which focuses on the core topics discussed.

SL Viewer

  • The Apple Notarisation viewer, version 6.4.23.564172, was promoted to de facto release status on Wednesday, October 13th. This means the other RC viewers will be updated to match it in due course.
  • A new Viewer Performance Improvements project viewer, version 6.4.23.564530, was issued on Tuesday, October 12th.
    • This viewer focuses on reducing image decoding time, less frame stalls, and initial font rendering time, and there is a dedicated forum thread for discussing it.
    • Currently, the viewer is only available for 64-bit Windows, but other versions will be made available in the future.
    • This viewer should not be confused with the Performance Floater project viewer.

The rest of the official viewer pipelines remain as follows:

  • Release channel cohorts:
    • Maintenance RC viewer updated to version 6.4.23.564063, on September 21.
    • Simplified Cache RC viewer, version 6.4.23.562623, dated September 17, issued September 20.
  • Project viewers:
    • 360º Snapshot project viewer, version 6.4.23.563579, issued September 3.
    • Performance Floater project viewer, version 6.4.23.562625, issued September 2.
    • Mesh Optimizer project viewer, version 6.4.23.562614, issued September 1.
    • Legacy Profiles viewer, version 6.4.11.550519, dated October 26, 2020.
    • Copy / Paste viewer, version 6.3.5.533365, dated December 9, 2019.

General Viewer Notes

  • The Maintenance RC remains the next viewer in line for promotion to release status.
  • The Simplified Cache RC viewer is currently regarded as pretty much “on hold” due to all the other performance-related work going on with the viewer. It is not felt by the Lab that it will yield sufficient performance gains at this point in time `to be regarded as a part of the viewer performance project(s).
  • The Legacy Profile project viewer remains on hold pending server-side back-end work.

Viewer Performance Notes

  • Part of the viewer performance work is utilising the the Tracy debugger / system analyser. This started as an exercise to analyse the main rendering loop to reveal any high latency operations that could be moved to their own threads.
    • The outcome of this work will likely be pulled into a Maintenance viewer at some point, but it is not currently a part of the Viewer Performance Improvements RC viewer.
    • Given how useful Tracy has been, it is likely that it will be included in the viewer build process, but the switch to include the necessary code will be set to “off” by default, as Tracy requires dedicated external support to be of use.
    • Also at some point, a viewer will be issued using the code that has been revised as a result of the analysis carried out using Tracy, and this will form another performance improvements viewer at some point in the future.
  • Another area of work for improving performance is that of Linden Water.
    • As previously noted in these summaries, Catznip has been investigating the cost of rendering Linden Water in situations where it cannot be see (e.g. when standing in the middle of a multi-region estate so it is completely “invisible” under the terrain). They have found significant FPS improvements can be gained by completely ignoring Linden Water rendering via occlusion checks in these cases.
    • The Lab is interested in improving general performance around Linden Water, and so a branch of the code Catznip has been using will be contributed to the Lab so they can take a look at it.
  • Discussions have started about possibly moving the Windows build tools to be based around VS 2019, as this support Clang tools, as it is thought Clang to offer further performance improvements. However, these discussions are still at an early stage.

TLS Changes

As per the announcement by April Linden on October 8th, Linden Lab will be turning off support for Transport  Layer  Security (TLS) 1.0 and TLS 1.1  security protocols on all log-in services on November 1st, 2021. This action is in line with the Internet Engineering Task Force (IETF) have officially deprecated both protocols in March 2021.

This means that any viewer or client (including any scripted agents to log-in to Second life) that utilises either TLS 1.0 or TLS 1.1 will be unable to do so from November 1st onwards. Only clients and viewer using supported TLS protocols (e.g. 1.2 or above), will be able to access Second Life. In particular, this step will impact Lib.metavers.open-based viewers and clients.

A request has been made for Aditi log-ins to have TLS 1.0 and 1.1 disabled so that viewers can be tested for other potential impact of the change ahead of it being made for the main grid. Those running older operating systems – such as Windows 7 without Service Pack 1 installed, may experience issues when TLS 1.0 / 1.1 support is turned off.

In Brief

  • iOS keeps being raised at the TPV Developer meetings, so in short:
    • A dedicated iOS client app is in development.
    • The initial versions are focused on communications (so no 3D rendering, inventory support etc), and have been subject to limited internal testing.
    • The client has gone through Apple’s review process, but has not been offered to a wider “beta test” audience, as there has been a further round of updates, and currently work is paused.
    • An Android variant of the client is in development, but is also paused and remains some way behind iOS.
    • See my updates tagged SL Mobile, which are added to as an when there is further reportable news out of the Lab.
  • The last part of the meeting is devoted to a general discussion on animation overrides and their limitations (both scripted and client / viewer-side). While the Lab has no plans to update the current approach to AOs in the immediate future, the discussion is worth listening to / reading via the meeting video below.

2021 CCUG and TPV Developer meetings week #39 summary

Mousehole, June 2021 – blog post

The following notes were taken from my audio recording and chat log of the Content Creation User Group (CCUG) meeting held on Thursday, September 30th 2021 at 13:00 SLT, and the TPV Developer’s meeting of Friday, October 1st, 2021 at 12:00 noon SLT.

With the meetings once again falling on the same week, and with the degree of overlap in content between the two, core discussion points from both have been combined into this one summary. The TPV meeting was also recorded by Pantera Północy, and her video is embedded at the end of this article, for those wishing to refer directly to that meeting.

Meeting Details

  • CCUG meetings are held on alternate Thursdays each month (generally the 1st and 3rd Thursday, subject to the vagaries of month length), with dates available via the SL Public Calendar. The venue for the CCUG is the Hippotropolis camp fire.
  • TPV Developer meetings are generally held on alternate Fridays each month, although dates are not currently listed in the SL Public Calendar. The venue for meetings is at the Hippotropolis Theatre.
  • Both meetings are generally chaired by Vir Linden, and are led using Voice, although attendees can use either Voice or text to provide input / feedback (with text generally being the preferred medium).

SL Viewer

Viewer Updates

  • Release viewer: version version 6.4.22.561752, formerly the CEF Update RC viewer, issued July 24 and promoted August 10.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself):
    • Apple Notarisation Fix RC viewer, version 6.4.23.564172, issued September 24 – this should remove the warning messages which are currently popping up.
    • Maintenance RC viewer updated to version 6.4.23.564063, on September 21.
    • Simplified Cache RC viewer, version 6.4.23.562623, dated September 17, issued September 20
  • Project viewers:
    • 360 Snapshot project viewer, version 6.4.23.563579, issued September 3.
    • Performance Floater project viewer, version 6.4.23.562625, issued September 2.
    • Mesh Optimizer project viewer, version 6.4.23.562614, issued September 1.
    • Legacy Profiles viewer, version 6.4.11.550519, dated October 26, 2020.
    • Copy / Paste viewer, version 6.3.5.533365, dated December 9, 2019.

General Viewer Notes

  • The Apple Notarisation Fix RC viewer is liable to be the next viewer promoted to de facto release status.
  • The combined Maintenance RC viewer will likely be the viewer to follow it to release status in a couple of weeks.
  • The Legacy Profiles viewer is still awaiting some simulator-side updates that have (again?) dropped back behind other simulator work. As such, it is described as being “kind-of on ice” at the moment.
  • The focus on viewer work is squarely on performance improvements.
  • With the initial deployment of multi-factor authentication (see here and my own blog post for more), the Lab’s viewer teams are discussing how it can be added to the viewer without massively impacting the user experience.

Let’s Encrypt Certificates Issue

As per this Grid Status Report, an expiration issue with Let’s Encrypt certificates resulted in in-world LSL scripts making HTTP calls to websites secured with a Let’s Encrypt certificate failing. This particularly impacted a number of popular Second Life merchants and assorted pet / breedable systems, etc.

After extensive investigation a fix was deployed to a small number of simulators overnight on Thursday, September 30th / Friday October 1st, which appeared to work. As a result, the main grid (Agni) has been subject to a rolling restart to fully deploy the fix to all regions. At the time of writing, this deployment was still in progress.

In Brief

  • Vir Linden was out for both meetings, each of which was somewhat briefer than usual, with the CCUG in particular primarily being a WIBNI style of meeting (WIBNI = “wouldn’t it be nice if”), rather than dealing with actual projects / work in progress.
  • [CCUG] The Graphics team currently remain primarily focused on drilling down into the data being gathered by the Tracy debugger / system analyser, which is available internally to the Lab.
    • This has already revealed a number of high latency artefacts within the main loop rendering code, which the graphics team will be looking to eliminate or move to their own threads or update loop so they no longer interfere with the core rendering loop.
    • The code for Tracy is liable to be merged into another viewer rather than appearing in a dedicated project or RC viewer.
  • [CCUG] Some of the discussion was around improving performance / simplifying clothing options. In the latter regard, Mayastar 7.0 will include an automatic alpha baking for clothes. Some final touch-up (by the creator) may be needed via Maya after the option has been used, but it offer an improvement in wearing clothes made via Maya / Mayastar.
  • [TPVD] The Catznip team have been continuing to work with adjusting the viewer so it simply does not render Linden Water where it is not visible (e.g. when hidden by terrain), which has been yielding significant viewer FPS increases. LL have indicated they have found it difficult to get a good occlusion culling result with horizon water and also in trying to programmatically deal with water that may / may not be visible (Catznip appear to have “just” gone for across-the-board occlusion culling). Both LL and Catznip will discussing ideas / approaches.

2021 CCUG and TPV Developer meetings week #37 summary

A Touch of Scotland – Bluebell Coast – blog post

The following notes were taken from my audio recording and chat log of the Content Creation User Group (CCUG) meeting held on Thursday, September 16th 2021 at 13:00 SLT, and the TPV Developer’s meeting of Friday, September 17th.

With the meetings once again falling on the same week, and with the degree of overlap in content between the two, core discussion points from both have been combined into this one summary. The TPV meeting was also recorded by Pantera Północy, and her video is embedded at the end of this article, for those wishing to refer directly to that meeting.

Meeting Details

  • CCUG meetings are held on alternate Thursdays each month (generally the 1st and 3rd Thursday, subject to the vagaries of month length), with dates available via the SL Public Calendar. The venue for the CCUG is the Hippotropolis camp fire.
  • TPV Developer meetings are generally held on alternate Fridays each month, although dates are not currently listed in the SL Public Calendar. The venue for meetings is at the Hippotropolis Theatre.
  • Both meetings are currently chaired by Vir Linden, and are led using Voice, although attendees can use either Voice or text to provide input / feedback (with text generally being the preferred medium).

SL Viewer

[TPVD Video: 1:08-5:52]

Simplifying the Viewer Pipelines

LL have have hit a bottleneck in current viewer development, Essentially, projects are tending to push multiple viewers internally for testing and QA work, creating a backlog; plus there are currently multiple RC and project viewers in flight. To this end, work has started to try to merge various viewer development tracks together and combine them into more “composite” offerings where this makes sense. This has been done with the two Maintenance RCs (see below), and if successful, will pave the way for other viewer project merges in the future.

Viewer Updates

  • Maintenance RC viewer 6.4.23.563789  was issued on Thursday, September 16th.
    • As noted above, this viewer combines the former Grappa and Happy Hour RC viewers into a single viewer.
    • This RC also now makes Push to Talk with Voice the default behaviour. To change this, open Me → Preferences → Controls, then scroll down to Sound and Media, then click Primary Control for Toggle Voice and finally press Middle Mouse Button (MMB) for legacy behaviour.
    • However, these is a issue with this (see: BUG-231212 “[Maint G+H] Toggle speak on/off when I press button conflicts with key binding Controls”), which LL plans to address via a hotfix.
  • The Simplified Cache viewer updated to version 6.4.23.562623 on Friday, September 17th.

Remaining Viewer Pipeline

The rest of the official viewer pipelines remain unchanged from the start of the week:

  • Release viewer: version version 6.4.22.561752, formerly the CEF Update RC viewer, issued July 24 and promoted August 10th.
  • Release channel cohorts:
    • Simplified Cache RC viewer, version 6.4.22.561873, dated August 9th.
  • Project viewers:
    • 360 Snapshot project viewer, version 6.4.23.563579, issued September 3rd.
    • Performance Floater project viewer, version 6.4.23.562625, issued September 2nd.
    • Mesh Optimizer project viewer, version 6.4.23.562614, issued September 1st.
    • Legacy Profiles viewer, version 6.4.11.550519, dated October 26th, 2020.
    • Copy / Paste viewer, version 6.3.5.533365, dated December 9th, 2019.

General Viewer Notes

  • LL are specifically looking for feedback on the 360° Snapshot project viewer and the Performance Floater viewer ahead of these being moved forward.

Mojo Linden

[TPVD Video: 6:22 onwards, interspersed with other discussions]

Mojo Linden, AKA Andrew Kertesz, the Lab’s new VP of Engineering, attended the TPV Developer meeting.  After giving a run-down of his career, he spoke about Second Life and responded to questions and feedback from those at the meeting.

Rather than cover his comments here – where it may only be read by those specifically interested in matters relating to the viewer / the CCUG meeting – I have attempted to offer a summary of his comments, with audio, and written context for his feedback based on the questions from those at the TPVD meeting. See: Mojo Linden, the Lab’s new Engineering VP discusses SL at TPVD meeting.

Avatar Discussions

The core of the CCUG meeting focused on mesh avatars and issues of complexity, performance, usability, etc. Taking the discussion in order:

  • Bakes on Mesh related issues:
    • The left arm/leg asymmetry (to allow things like independent left arm / right arm  tattoos) is seen as incomplete / complex / unworkable (e.g. having to use new channels that are “incompatible” with skin handling compared to the “old” channel, the limited use of the UV map by the left arm / keg (around 10%, etc.). Some have managed their own workarounds to this (e.g. by using the hair channel), but an official fix is seen as preferable. While this is seen as possible, it a) isn’t likely to be seen as a priority item; b) raises concerns over content breakage as a result of further changes.
    • The fact that the alpha wearable does not recognise the new channels introduced with BOM, and so it is possible to end up with the right arm alpha’d as expected, but the left are still visible, which is unwanted. While a Jira has been received to produce a new alpha wearable, this has yet to be implemented.
  • There are reports that people arriving in regions are seeing some avatars with “faces [initially] pasted on the back of their heads”. It is thought (by other users, not the Lab) the primary cause of this is the Lelutka Evo X head using a non-standard UV, and the Bake data arriving in the viewer ahead of the mesh head data (which corrects it).
  • Avatars and performance:
    • As most are aware, a significant hit on performance comes from the fact that mesh avatars are pretty poorly optimised. Beq Janus and Elizabeth Jarvinen (polysail) have been investigating just how hard segmented avatars impact people’s systems, and the results of their work has been summarised by Beq in a couple of technical, but well worth reading blog posts:
    • One suggestion is to implement a means to algorithmically generating the collapsed mesh – or to put it another (simplistic) way: “bake” the entire avatar: body, clothing, attachments, into what would effectively be a composite mesh with fewer faces, limited (or no) body segmentation etc. But exactly how this would be achieved, and what would be required (and exactly how it would work in terms of making on-the-fly changes to attachments, etc.), is unclear.
  • Calls were made to completely replace the SL skeletal rig completely, which lead to a discussion of the flexibility of the rig compared to capabilities found in Unreal Engine and Unity (two engines oft cited as examples of the engine Second Life “should” have). Animator and creator Medhue Simoni questioned the value, pointing out that from a professional standpoint, he finds the SL rig far more capable for avatar creation than the commercial offerings (which is not to say that as capable as it might be, there are not serious issues with the SL rig).
  • The subject of having a new default avatar in SL was raised, with fingers pointing to Patch Linden’s comments at SL18B, which can be found summarised (with a link to the discussion point in the official video) here.
  • The issue with any new avatar system is that it encompasses significant areas of work – the rig, the meshes, the animation system, improved IK, etc.

Two-Factor Authentication

[TPVD Video: 29:46-29:59]

This has been a long-requested capability and something the Lab has been working on for some time.

According to Grumpity Linden we should – with fingers crossed – be seeing some form of announcement on the on Monday, September 20th.

In Brief

  • [CCUG] The Graphics team currently remain primarily focused on drilling down into the data being gathered by the Tracy debugger / system analyser.
  • [CCUG] User Joe Magarac (animats) has been experimenting with better asset loading prioritisation based on screen area. This is something the viewer doesn’t usually do. The video below gives an example of his results (although you might want to turn the sound down a little, if you have speakers on!).

This appears to work well with the cases shown in the video, but as was noted by Animats (and othera) in the meeting:

    • As presented, the code doesn’t currently account for faces using the same texture.
    • Further work is required to account for off-scale meshes that are corrected using prim scale, and with rigged meshes, which don’t report their on-screen size.
  • [TPVD] Some considerable time ago, TPV developer NiranV Dean submitted a contribution to LL for a pose system that propagates avatar poses/animations between viewers for multi-avatar posing. This has been “on hold” for a while, with a promise that discussions should be resumed.
    • Mojo Linden indicated that puppeteering is something the Lab is actually actively discussing / thinking about.
  • [TPVD] Kitty Barnett (Catznip) has been testing scene optimisation through the viewer and has encountered a problem where if a scene is “over optimised”, viewer frame rates collapse until complexity is added back to the scene (such as by enabling shadow rendering).  The precise cause is still TBD, but appears to be related to random OpenGL calls being generated, possibly by the Nvidia GPU, or as a result of a debug setting, or even a flush call being missed, and too much render information being queued at once.
  • [TPVD] Firestorm has been compiling a list of “most wanted” fixes and improvements based on feedback received from their user base by way of feature requests filed with them, questions put to their various language support teams, direct comments, developer experience in handling the viewer code, etc. This is to be submitted to Linden Lab so that they might seen common trends / requests from users.