2022 CCUG + TPVD meetings week #14 summary

Bella’s Lullaby, March 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, April 7th 2022 at 13:00 SLT.
  • The video recording by Pantera (embedded at the end of this piece, my thanks to her as always for recording the meetings) from the Third-Party Viewer Developer (TPVD) meeting on Friday, April 8th, 2022 at 13:00  SLT.

These meetings are chaired by Vir Linden, and their respective dates and times can be obtained from the SL Public Calendar.

This is a summary of the key topics discussed in each meeting and is not intended to be a full transcript of either. However, the video does provide a complete recording of the TPVD meeting, and timestamps to the relevant points within it are included in the notes below.

Available Viewers

[Video: 0:00-1:11 and 2:05-243] + notes from CCUG]

The list below reflects the rest of the currently available official Second Life viewers:

  • Release viewer: version version – formerly the Maintenance J&K RC viewer, promoted Monday, February 28 – 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).
    • MFA RC viewer, update to version, on March 24.
    • Performance Improvements RC viewer version, dated March 14.
    • Lao-Lao Maintenance RC viewer, version, issued on March 11.
  • Project viewers:
    • Performance Floater project viewer, version, March 18.
    • Mesh Optimizer project viewer, version, dated January 5, issued after January 10.
    • Legacy Profiles viewer, version, dated October 26, 2020.
    • Copy / Paste viewer, version, dated December 9, 2019.

General Viewer Notes

  • The focus is on fixing the bugs reported on the Performance Improvements RC viewer so that it can be the next viewer promoted to de facto release status. The RC version has been updated but has yet to be issued.
  • The Performance Floater project viewer includes the auto-FPS capability that is similar in nature to Firestorm’s Auto Tune capability designed to help maintain a given viewer frame rate (see here for more), and the aim is to try to sync these two approaches up before the Lab’s viewer moves to RC status.
  • The server-side work required for the Legacy Profiles viewer had been deployed, so that viewer should be updated and appearing soon.

Additional Materials Support – CCUG Meeting

Please also refer to my notes from the previous CCUG meeting.

  • The basic idea remains:
    • Providing the ability to import a glTF file with is single material within it containing all the textures / maps and colour parameters for a given face. Exactly which maps (normal, specular, emissive, roughness, albedo, occlusion, etc.) is still being defined.
    • When uploaded, the material then becomes an inventory asset.
    • When the asset is applied to the face of an object, it overrides the texture parameters for that face (diffuse, normal spec maps, full bright, etc.), with the options to edit these parameters in the Build / Edit tool disabled until such time as the material is removed from that face.
      • However, the face-related options – rotation, repeats per metre, offsets, etc., – would remain accessible.
    • This approach would faces to be textured under the existing system and have a materials asset applied so that viewers without the new materials code would render the “legacy” texture parameters for the object face, whilst viewers with the updated code would render the settings specified by material.
  • What is the benefit of this?
    • It moves SL towards proper support for PBR and the improvements that will bring.
    • Very simply put from an end-user perspective: it will help add depth to Second Life by improving the way surfaces appear be giving them improved surface texturing, reflectivity, and so on; and it will no longer require end-users fiddling around with textures and normal / specular maps to achieve something; they’ll have a simple asset they apply to (say) a wall, and that’s it.
  • The first pass of this work will provide support for Adobe Substance 3D Painter, and as such, LL are looking for feedback from creators who use Substance Painter in terms of how they use it, what kind of materials they are creating, and how they would like those materials represented in Second Life, what maps they would ideally like to see supported.
  • A concern raised with this approach is that glTF does not natively support non-PBR workflows, which is a problem for those who use Substance Painter “non-PBR” (such as clothing creators), and this needs to be taken into consideration.
    • One route around this is the suggestion that the materials actually be built at import time, rather than just built within Substance Painter and exported to glTF for import.
  • It was requested that some form of UI element should be added to the viewer to allow material assets to at least be inspected. While this is something that will be provided, it will not be in the first phase of the work.
  • Rendering for these “new” materials will be entirely separate to the existing rendering path for SL’s existing materials system, allowing for a more “industry standard” approach to be used with the new materials.
  • Whether or not a fee is to be charged for importing these materials is still TBD (and somewhat complex, if the importer is to support using texture files previously uploaded to SL, rather than having to import them again).
  • Longer-term the idea is at when PBR support is added, it will only work with these material assets; texture entries will continue to be handed as they are now (as noted above).
    • PBR itself is a complex issue both technically and in terms of content, and it is already envisaged that it will give rise to differing environments in-world (e.g. locations that are “PBR enabled” and require people to be running viewers capable of supporting PBR).
    • This is because SL content being what it is, there is no easy way to “PBR-ify” it all, and gain a uniform (or even desirable) result – particularly where content has been designed under the existing rendering capabilities to produce a specific result.
  • Given the complexities / impact of such a project, LL recognises there is a need to provide the means for ongoing real-time exchange of ideas / gathering creator input.
    • Neither the CCUG nor the SL forums are seen as a good fit for this kind of interaction.
    • The preferred option voiced in the meeting was to use Discord as a host. Server details TBD at this time, if this is selected.

From the TPVD Meeting

  • [Video: 4:41-9:10] It has been pointed out the 30-day validity period for an MFA token seems unusually long, and a request has been made to reduce it.
    • In particular, testing the MFA code and token refresh when looking at the viewer code is more difficult when the tester has to wait a month between tests and checks / retries.
  • [Video: 11:54-20:10] Beq Janus and Vaalith Jinn are working on “temp mesh” – a means to preview mesh and rigged mesh in-world without necessarily having to log to the Beta grid and upload there. As per the video, there are some issues (such as the temporary creation of linksets), but overall it is hoped with work will result in a usable capability.
    • This conversation folds into itself a broader discussion on purely viewer-side rendering (as opposed to rendering asset data coming via the CDN)
  • [Video: 20:12-25:16] Bandwidth setting confusion:  A claim was made the turning up the official viewer’s network bandwidth setting improves texture download speeds for those on faster Internet connections, prompting a request for the default setting being turned up.
    • Given that the network bandwidth setting is supposedly only for UDP messaging, and all assets, including textures, are transmitted via HTTP via CDN(s), some understandable doubt was cast on this.
    • While not ruling out changing the bandwidth setting causing a degree of improvement, Runitai’s thoughts on the matter (through looking at the code) fall into two areas:
      • Any actual delay in texture fetching is more likely to be with some of the background thread handling which has yet to be updated.
      • It is more likely that issues in texture loading / handling may be related to a number of issues, including a) the viewer mistakenly believing it is running out of VRAM (due to some coding errors) and immediately loading / unloading textures on the background threats; b) changes in how texture are actually downloaded and passed to the decode thread as a result of the move to HTTP that may be having an impact.
    • [Video: 28:53-29:35] In respect of this last bullet point above, it was indicated that TPVs tend to handle texture decoding, etc., somewhat differently, this is not believed to be an issue. A request has been made for a TPV to consider making a code contribution on this, so that LL can investigate making similar changes.
    • [Video: 32:53-44:20] Further discussion on texture fetching and the way the viewer code is generally conservative in this area.
      • [Video: 36:41-41:28] (overlapping with the above)] there is a restatement of the concern that raising the UDP bandwidth setting “because higher is better” could trigger a microburst buffer overrun on the server-side routers were the setting to be raised across all viewers. It is believed the servers are fairly well protected, but this needs to be confirmed by the infrastructure team before any such change is made.
  • [Video: 25:55-30:48] VRAM detection / use: changes are being tested (on Windows at present) whereby rather than setting a minimum default for VRAM (512 MB, a long-time sticking point for many users), LL are shifting to having the viewer query the operating system as to how much VRAM is free.
    • As an example of the potential improvement this has given, a system with 10 GB VRAM will see the viewer use as much of that VRAM as is available, whereas previously, the viewer would get up to using around 1.5 GB and then switch to texture paging.
    • Finding a similar solution for Mac system is somewhat more difficult due to the fact the only reliable report OS X provides is on the amount of installed VRAM, not how much may actually be available for an application to use / how much a process is using.
  • [Video: 45:14-47:16] does increasing the bandwidth setting improve teleporting between region?
    • Anecdotally, this appears to be the case for some.
    • However, whether there is a direct correlation between increasing the UDP bandwidth and inter-region TPs improving is hard to prove, although it is possible a message packet related to TPs is hitting the throttle and getting dropped without any attempted re-try.
  • [Video: 49:11-54:43] custom chat ranges: server-side support for extending chat ranges within regions beyond the default 20 metres (seen as useful for venues hosting meetings, presentations, etc.), was deployed some time ago, but is currently only available on Linden-controlled regions.
    • Wider availability of the capability has hit some privacy concerns (e.g. people believing their chat is limited to 20m in a public region being overheard by someone on the other side of the region). As such, the capability is awaiting viewer-side updates that make it clear to people entering regions where the chat range has been extended that this is the case.
    • This information is actually being sent to the viewer (RegionInfo in the RegionInfo 5 block), but the IU to handle it has yet to be added (and TPVs may not have been aware of its availability so they could create their own notifications).