2022 CCUG and TPVD meetings week #5 summary

Carrowmore, January 2022 – 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, February 3rd 2022 at 13:00 SLT. These meetings are chaired by Vir Linden, and meeting dates can be obtained from the SL Public Calendar.
  • My audio recording and the Video recording by Pantera (embedded at the end of this piece) from the Third-Party Viewer Developer (TPVD) meeting on Friday, February 4th, 2022.

So this document forms a summary of the key topics discussed, and in the case of the TPVD meeting, timestamps to the relevant point of the video are included.

Available Viewers

[Video: 0:19-0:52 + notes from CCUG]

This list reflects the currently available official Second Life viewers.

  • Release viewer: version version 6.5.2.567427 – Mac Voice hotfix viewer, January 13 – no change.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself).
    • Maintenance RC viewer, version 6.5.3.567451, issued on January 20th, combining the Jenever and Koaliang Maintenance viewers.
    • The Tracy Integration RC viewer version 6.4.23.563771 (dated Friday, November 5) issued Tuesday, November 9.
  • Project viewers:
    • Performance Improvements project viewer version 6.6.0.567604, dated January 24.
    • Mesh Optimizer project viewer, version 6.5.2.566858, dated January 5, issued after January 10.
    • Performance Floater project viewer, version 6.4.23.562625, issued September 2.
    • 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 J&K RC viewer is likely the next viewer to gain promotion as the de facto release viewer.
  • The Performance Improvements viewer is close to being ready for promotion to RC status, and is just pending some remaining bug fixes.
    • This viewer did have changes to alpha sorting for rigged attachment, but following reports of content breakage as a result of this change, which was more a technical change than a performance enhancement, it has now been reverted to expected alpha sorting behaviour to avoid the breakage issue. Instead, possible alternative approaches will be looked at in the future.
    • A future version of this viewer is to include a new UI element intended to help make adjustments to some of the high-impact graphics settings to help improve frame rates,
  • LL is also completing work to switch the viewer over to using Python 3.

Viewer Multi-Factor Authentication Support – TPVD

[Video: 0:53-23:00]

Background

  • In September 2021, Linden Lab introduced multi-factor authentication (MFA) utilising either a QA code + mobile device or a key number, for those pages of the SL website that provide access to users’ account information (see: Second Life Multi-Factor Authentication: the what and how, September 2021).
  • When introduced, it was indicated that over time, the use of MFA would be expanded and improved, and would eventually include the viewer as well.
  • Brad Linden is now working on implementing MFA for the viewer.

What This Means

  • The work has reached a point where LL is close to having a viewer with MFA support ready for initial testing (as defined by  see: SL Wiki: Login MFA), together with updates to the back-end log-in service to support it.
  • Viewer MFA will be based on users opting in to the capability via the secondlife.com dashboard, as described in the blog posted linked to above.
  • It is  recognised that TPVs will need time to integrate the necessary viewer-side code into their offerings, therefore:
    • There will be a grace period between the initial introduction of the code in the official viewer and a time when all viewers / clients access Second Life will be required to support MFA to allow users who have opted-in to MFA to continue logging-in to SL.
    • During this grace period, all users on a TPV will be able to access Second Life, regardless of whether or not they have opted into MFA.
    • After the grace period has expired, all TPVs will be expected to support MFA, and those users on them who have opted in to MFA will be required to authenticate themselves when using the viewer to log-in to Second Life (with the use 30-day period of valid authentication, as per secondlife.com MFA).
    • During the grace period, users on TPVs that switch to support MFA will likewise need to start authenticating themselves when logging-in to SL.
  • Again, this will only affect users who have opted into MFA (unless LL at some point decides all user must use MFA to access SL).
  • MFA on the viewer will be a blanket action – there will be no additional MFA authentication for actions such as buying Linden Dollars through the viewer.
  • Using MFA when logging-in to the viewer will not automatically also authenticate you on secondlife.com or vice-versa.

There was a broader discussion on providing alternative mechanisms by which users can opt-in and use MFA – such as e-mail – rather than relating on a mobile device and authenticator software. Such decisions fall outside the realm of the viewer development team, and so could not be answered directly (however LL have stated  additional / alternate methods of authentication will be added to the system at some point in the future).

In Brief

Content Creation Meeting

  • BUG-231731 “Script text quality and performance” prompted questions on how it might be implemented given it has been accepted. Vir pointed out that “Accepted” does not necessarily mean it a Feature Request will be implemented forthwith, and as such, it will be raised for discussion once it has reached a point where LL is considering working on it.
  • BUG-229205 “Re-enable PRIM_CAST_SHADOWS” came up for discussion, it is believed that the viewer-side code for it has been deprecated / removed, and the server also no longer recognises the function.
    • Runitai Linden suggested it is something that should be re-enabled on the grounds that it is “something that most graphics engines let you do.”
    • However, any final decision will be subject to further internal discussions within LL.
  • Request: allow seated avatars to temporarily have a physics shape of none if explicitly set by script (potential use-case: an in-world game uses tiny vehicles in a scaled environment to simulate a larger playing field, but as the drivers are normal-sized avatars, they cause collisions between one another, impairing gameplay; disabling the avatar physics would  in theory prevent this, although it is not clear if such a change would be recognised by the simulator, where it is believed the expectation of avatar physics is  assumed throughout the code).
    • The discussion encapsulated requests such as BUG-5538, the need for an overhaul of the camera control system & better LSL access to same; better joystick control options, and better support for alternative input types.
    • The latter point in turn led to a discussion on wider HID support and even the potential for MIDI (Musical Instrument Digital Interface) support (having been a means to provide remote control and synchronisation prior to HID design becoming the “standard”) as a means to transport and synchronise joystick inputs from the viewer to the simulator in a generic, open manner.
    • All of this was spitballing, rather than the formulation of an actual project.

TPV Developer Meeting

  • [Video 26:10-53:10] Animation Override Discussion – TPVD
    • This follows-on from the week #3 TPVD meeting.
    • Essentially what is being sought is a solution similar to the Firestorm AO (but without the apparent overheads) that effectively allows viewer-side replacement of animation states sent by the server with local animations, avoiding the need for scripted HUDS / attachments.
    • Much of the discussion at this meeting is clarifying the original request for Vir Linden’s benefit, although the consensus is that official a cap replacement for llSetAnimationOverride and allowing TPVs to implement their own viewer-side AO UI elements would be a good start.
    • Once this has been done, then discussion can turn to the more complex issue of adding further animation states.
    • A Cap and viewer-side controls will not fully eliminate scripted AOs (particularly in the case of non-human AO walks, sits stands, for example), but this shouldn’t negate the provisioning of a Cap.
    • Please refer to the video for the discussion – much of which is in text chat.

2022 TPV Developer meeting summary, week #3

Lost Dreams, January 2022 – blog post

The following notes are taken from the TPV Developer meeting held on Friday, January 21st, 2022.

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

[Video: 0:10-7:37]

  • The two Maintenance RC viewers Jenever and Koaliang, have been combined into a single Maintenance RC viewer, version 6.5.3.567451, issued on January 20th.

Important note: the above viewer version has a significant issue that may prevent users on this cohort from logging in. See this report for details. The recommendation is for those wishing to avoid the issue is to download and install the current release viewer (or if experiencing issues, to contact Support and request and inventory fix). 

The rest of the current list of official viewers remains as:

  • Release viewer: version version 6.5.2.567427 – Mac Voice hotfix viewer, January 13.
  • 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:
    • Mesh Optimizer project viewer, version 6.5.2.566858, dated January 5, issued after January 10.
    • Performance Improvements project viewer version 6.5.2.566967, dated December 17.
    • Performance Floater project viewer, version 6.4.23.562625, issued September 2.
    • 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 Maintenance RC viewer is likely the next viewer in line for promotion.
  • The Graphics improvements viewer still has some bug to be fixed prior to moving to RC status. In particular, Euclid Linden is working on fixing the frame stall issue resulting from a media texture update. Essentially, if vsync is enabled, then command buffer resources aren’t as unbounded as they are with vsync disabled, resulting in textures copied to it a call to update media textures exhausts all available resources, effectively blocking it until it is flushed, rather than the buffer simply being discarded as is with case with vsync disabled.

Upcoming Feature Work

[Video: 1:30-1:51]

  • Vir re-iterated that 2022 should see the viewer progress with new graphics features.
  • Further performance improvements beyond those currently within the Performance Improvements viewer are in the planning stages.
  • However, nothing is available for open discussion by LL at this point in time.

Animation Override Discussion

[Video: 11:07-52:00]

  • A discussion on improving avatar animations through the use of a cap / reliable messaging between the viewer and the server to directly replace the default server-side avatar animations (walk, run, sit, swim, fly, etc), with custom animations  – as per a scripted Animation Override – but avoiding the need  to use llSetAnimationOverride and scripted HUDs (as is currently the case).
  • See also  BUG-230100.
  • No work is currently planned for this, but interest was expressed in how it might work.
  • Firestorm has such a capability (adopted by some other TPVs), but the implementation isn’t widely favoured.
  • Another suggested option would be to make animations assets that define an animation set (e.g. a “Stand” asset that can be a container for a set of animation stands + the timing for running them + defining if they should be randomly or sequentially played).
  • A further advantage is that as well as removing the need for scripted attachments, it would allow everything to be drive via a viewer UI element, offloading work from the server to the Viewer (and potentially into an off-thread).
  • A problem in using a cap is that the viewer could hit it fairly readily, particularly if cycling through a large set of animated stands, for example.
  • There are also edge cases were scripts may still be required, but these are not inimical to the development of a client-side AO system able to work directly with the server-side animation graph.
  • The discussion lays out the benefits for more of a client-side AO control capability, and I refer you to it for the in-text comment – not that towards the end of the discussion, things turned towards some WIBNIs (as in, “Wouldn’t It Be Nice If the system could dynamically adjust walk speed to avatar size”), although elements like this would require a much more intensive overhaul of the animation system.
  • Please refer to the video for the full text of the discussion.

In Brief

  • [52:32-End] A short discussion on the benefits of LL defining an Area Search.
    • While Firestorm has an Area Search, it tends tow spam an entire region with requests for each individual prim hover properties (and is subject to draw distance and interest list).
    • ObjectNavMeshProperties, however (with changes and a throttle), could provide an alternative and potentially more preferable solution.
    • The core of this discussion is in text, with little input from LL – please refer to the video.
  • It has been reported via the forums that there is Mac OS Monterey performance issue associated with the viewer. At the time of writing, it is not clear how widespread this is or if a bug report has been raised, although the issue appears to be with a Monterrey OS capability, rather than the viewer – please read the forum post for more.

2022 TPV Developer meeting summary, week #1

Pemberley, December 2021 – blog post

The following notes are taken from the TPV Developer meeting held on Friday, January 7th, 2022.

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

[Video: 0:00-1:28]

There have been no official viewer updates to mark the start of the year, leaving the current crop as:

  • Release viewer: version version 6.5.1.566335, formerly the Cache+ 360 Capture viewer, dated December 7, promoted December 15 – No change
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself).
    • The Jenever Maintenance RC viewer, version 6.5.2.566860, issued on December 17.
    • The Koaliang Maintenance 2 RC viewer, version 6.5.2.566879, issued on December 17.
    • The Tracy Integration RC viewer version 6.4.23.563771 (dated Friday, November 5) issued Tuesday, November 9.
  • Project viewers:
    • Performance Improvements project viewer version 6.5.2.566967, dated December 17.
    • 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 Performance Improvements project viewer is currently going through a round of bug fixing prior to being promoted to RC status. However, no further additions / changes to the existing feature set beyond the fixes are planned.
  • Depending on how things go, it is possible the Performance Improvements viewer may be the next to be promoted to RC status.
  • [2:17-2:30] The Legacy Profiles project viewer is awaiting further server-side updates before proceeding.

Upcoming Feature Work

[1:30-1:51]

  • At the end of 2021, the Lab issued a blog post reviewing the year and offering an overview of some projects planned for release in 2022.
  • Vir indicated that discussion on those projects mentioned in the post (and others?) is still on-going, and that the Lab is not ready to discuss time frames, etc., for any particular feature or release at this point in time.

In Brief

  • Mojo Linden arrived after the meeting had ended, and reiterated that:
    • A focus for the year remains on performance improvements.
    • A key aspect of work as a whole remains improving the entire New User Experience (NUE).
    • He also clearly dodged questions on the specifics of the new “avatar expressiveness”.
  • [3:20-9:50] A general discussion on building the viewer, of interest to viewer devs and self-compilers.

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™.