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.

2021 CCUG and TPV Developer meetings week #35 summary

Hidden Bottle, May 2021 – blog post

Update, September 4th: not long after this article was published, the 360° Snapshot project viewer was updated, so the viewer list here has been updated, and my first impressions of the update viewer can be found here.

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

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 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, vagaries of month start / end dates allowing), 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

MeshOptimiser Project Viewer

The MeshOptimiser project viewer, version 6.4.23.562614, was issued on Wednesday, September 1st. This viewer replaces obsolete GLOD mesh simplification in the mesh uploader with a newer Mesh Optimiser library.

About Level of Detail (LOD): as your observation point moves away from mesh objects, so does the need to render them in high / complex detail, as that complexity / detail naturally becomes less visually distinguishable. One of the more effective ways to reduce rendering complexity of a scene is to provide object models with simplified Level of Detail (LOD) that can be displayed at greater distances, reducing the rendering load on the viewer. MeshOptimiser is an improved means of achieving this. It simplifies a mesh to fit specified limits within the mesh uploader, producing models with multiple layers of greater LOD simplicity.

Notes:

  • This viewer currently includes an option to continue to use GLOD, if preferred, although this may be removed in the future.
  • Currently, MeshOptimiser is only being used in mesh uploader, it is not being employed within the mesh rendering pipe.
  • The use of MeshOptimiser does not alter the LOD validation code in the uploader – although this is seen by creators  as something that needs addressing (and is something that Beq Janus of the Firestorm Team, who has been submitting code contributions related to the uploader has been looking at).
  • There is some concern that if MeshOptimiser does not support edge protection, it could have a negative impact on mesh clothing, which has been noted by the lab.

Performance Floater Project Viewer

The Performance Floater project viewer, version 6.4.23.562625, was issued on Thursday, September 2nd.  This viewer introduces a new floater that pulls together options related to viewer performance under a new toolbar button somewhat confusingly called (in comparison to the viewer’s use of “Performance” in its name) of “Graphics Speed”. See my separate article on this preliminary release of this viewer for more information.

Remaining Viewer Pipeline

  • Release viewer: version version 6.4.22.561752, formerly the CEF Update RC viewer, issued July 24 and promoted August 10  – NEW.
  • Release channel cohorts:
    • Happy Hour Maintenance 2 RC viewer, version 6.4.23.562602, dated August 20.
    • Simplified Cache RC viewer, version 6.4.22.561873, dated August 9.
    • Grappa Maintenance RC, version 6.4.22.561850, dated July 29.
  • Project viewers:
    • 360° Snapshot project viewer, version 6.4.23.563579, issued September 3.
    • Legacy Profiles viewer, version 6.4.11.550519, dated October 26.
    • Copy / Paste viewer, version 6.3.5.533365, dated December 9, 2019.

General Viewer Notes

  • The 360° Snapshot project viewer should see an update in the next few days.
  • A update for the Copy / Paste viewer has an update currently with the viewer QA team, and which should hopefully be appearing “pretty soon”.
  • The Muscadine project viewer has been removed from the available project viewers, as there is no simulator side support for it. This does not mean the project has been abandoned – it is just on hold until work can resume and the necessary simulator support implemented.
  • As a part of reducing the volume of viewer updates that are being queued either as Alternate Viewers or awaiting entering project or RC status, LL is looking to start combining updates into single releases. As a part of / start to this process the two Maintenance RCs that are currently available (Grappa and Happy Hour) are likely to be merged.

Graphics News

  • The work to Integrate the Tracy debugger / system analyser  to allow for better cross-platform profiling of client hardware to help with cross-platform graphics development is now drawing to a close, with an internal test viewer producing worthwhile client analysis data.
  • Work is progressing with the next batch of graphics updates that will see light of day in the Love Me Render 6 RC viewer at some point.

Aditi Log-ins

As a result of the move to AWS, logging-in to Aditi, the Beta grid, for testing purposes, etc., has been a issue for some tome, both in terms of being able to log-in and in getting inventory correctly synced with Main grid (Agni) inventory.

  • The inventory syncing issues now appear to be resolved, although anyone still encountering problems is asked to file a support ticket.
  • There has been some improvement on the ability to log-in to Aditi, although issues with time-outs due to back-end handshaking failures are still apparent. Some have lengthened the timeout set via the LoginSRVTimeout Debug setting to try to overcome this
  • Further log-in fixes for Aditi are in progress (including for the time-out issue), but no time frame at present on when they will be deployed.

In Brief

  • An invite-only “creators channel” has been started on Discord by a group of users. While not an official LL communications channel, some Lindens have been invited to join it, and have been taking questions.
    • This move is not seen as particularly helpful to content creators in general or those interested in content creation due to its “invite only” status.
    • Some at the CCUG meeting voice the opinion that a better channel for passing question to the Lab ahead of meetings would be via the official forums.
  • BUG-227543 “Set ‘Press to talk’ as default mode in Official Viewer” has been on the accepted list for two years, but is coming to the fore again due to new users entering SL being unaware their microphone is live for the moment they enter SL on the official viewer and then accidentally activate Voice. The change is now apparently being tested, and so will hopefully be appearing in a Maintenance RC at some point Soon™.
  • Feature request BUG-215951 “Option to allow nearest neighbour on textured faces” currently has a status of Closed, although it is seen as a potentially useful feature. The major issue in trying to implement it is that it would require a new field in the asset database for each face on an object, and there is no easy way for LL to further extend the allowable per object data fields.
    • This formed part of a wider conversation around texture rendering, including the use of texture atlases, changes that might be possible with the eventual shift to a new rendering engine and the potential for procedural based rendering to be implemented for SL.
  • Concern continues over the issues many are experiencing with group chat and the manner in which it is giving rise to an “exodus” of people from SL to Discord (at least for group chat purposes).
    • The fear is that as people become more accustomed to Discord and its features and the ease with which they can communicate / share, etc., they’ll have increasingly less reason to log-into Second Life. Given that Discord tends to be used alongside of SL rather than in lieu of it, it’s hard to judge if such fears are valid.
    • One potential source of frustration that does tend to be felt is that when this issue is raised, it can often – if unintentionally – appear to be dismissed with comments akin to “we’re aware of the problems”.
    • That said, feature request BUG-230899 “Split Group Chat from Groups and Extend its Functionality” has been accepted for future consideration.
  • Catznip is testing an option to reduce the resolution of the screen buffer(s) in the viewer via slider (e.g. so a 1080p screen can be set to a buffer of 720p or even 540p). This has the benefit of speeding up performance (do to lower-resolution rendering, but it can made the world look blurry as a result. However, LL has expressed an interesting in taking a look at the code if contributed.
  • Source Filmmaker is a tool that has been developed for making mini movies using video games, and being able to edit scenes, set poses, etc., in real-time “within the game” (so to speak), essentially by caching assets, etc., locally and then manipulating them. The question was asked whether a similar tool – IF it could be made to work in SL – would violate things like DMCA. Such a tool would require a detailed proposal for LL to pass to their legal team before a considered response could be given.

 

2021 CCUG and TPV Developer meetings week #33 summary

Soul Deep, May 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, August 19th 2021 at 13:00 SLT, and the TPV Developer’s meeting of Friday, August 20th.

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 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, vagaries of month start / end dates allowing), 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

There have been no official viewer updates during the week, leaving the current crop of available versions as follows:

  • Release viewer: version version 6.4.22.561752, formerly the CEF Update RC viewer, issued July 24 and promoted August 10  – NEW.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself):
    • Simplified Cache RC viewer, version 6.4.22.561873, issued August 9.
    • Grappa Maintenance RC, version 6.4.22.561850, issued July 29.
  • Project viewers:
    • Legacy Profiles viewer, version 6.4.11.550519, dated October 26.
    • Copy / Paste viewer, version 6.3.5.533365, dated December 9, 2019.
    • Project Muscadine (Animesh follow-on) project viewer, version 6.4.0.532999, dated November 22, 2019.
    • 360° Snapshot project viewer, version 6.2.4.529111, dated July 16, 2019.

General Viewer Notes

  • The next viewer that might go directly to de facto release status could be the Mac Notifications fix viewer (which has yet to even appear in RC).
  • However, depending on how QA work goes with that viewer, it is possible the Grappa Maintenance RC viewer might be promoted to release status.
  • As a result of recent internal testing (see my week #33 Simulator User Group summary), the 360° Snapshot viewer is having some further massaging of the the UI, but is expected to be passed to the QA team for checking / testing in the coming week, so may not be that far from being issued as an updated project viewer.
    • As a result of recent feedback from users, the Lab is now considering updating various web properties such as the Marketplace to make use of  360° images (Place Pages used to be able to use them, but may also require update to work with the newer viewer). If this work goes ahead, it will not be tied directly to the the release of the viewer.
    • Output from the internal testing can be found on Alexa Linden’s Flickr stream – be sure to click on images to activate them.
  • The Legacy Profiles viewer is still awaiting some back-end work, which has yet to be scoped / scheduled, so an update is unlikely to be appearing in the short-term.

Upcoming Viewers

  • There is currently an internal bottleneck at the Lab which is slowing the issuing of viewer updates / viewer versions. This is in the process of being addressed.
  • The viewer with the updates for presenting performance-related information is “close” to being  ready for issue as a project viewer.
  • Tracy Debugger / System Analyser:
    • Integrating the Tracy debugger / system analyser to allow for better cross-platform profiling of client hardware to help with cross-platform graphics development has been a focus for the Graphics team of late.
    • This is nearing a point where a viewer with Tracy will be ready to be made public. However, the library will be off by default, as a) it has a performance overhead when running in the viewer; b) it requires a server running Tracy for the data produce to be analysed. Developers / viewer compilers who have the necessary environment for analysing the data should be able to enable it prior to viewer compiling, if they wish to use it.
  • Mobile Client:
    • The new features for the iOS version mentioned during the August Web User Group meeting appear to be the addition of push notification support and some  additional UI work.
    • The Android version remains on hold pending the focus shifting from the iOS version.
    • As noted above, the core environment for getting updates on the Mobile client is via the Web User Group (as Keira Linden, who is leading the Product side of Mobile also chairs that meeting), and as a result, I provide monthly updates on Mobile through my WUG meeting summaries.

LOD Generation Viewer

  • A new project viewer using the mesh optimiser library for automatic LOD model generation for mesh uploads is getting close to being available for public use. This reportedly works better than the GLOD code that is currently in use.
  • For the initial project viewer version(s), once available, creators will have a choice of using either GLOD or the optimiser at upload. Longer-term and depending on internal discussions / the results of actual use of the optimiser library, GLOD may be removed (or at the least, made a non-default option).
  • If the use of the library proves sufficiently beneficial, LL might also opt to enable it in real-time against mesh objects that do not have any defined LODs. Doing so could potentially be beneficial for those on lower-end systems (e.g. by reducing the number of draw call being made , etc., as they no longer have to render the “full” model all the time).

Future Work – Avatar Usability

[via the CCUG meeting]

Following the arrival of the new VP of Engineering, Mojo Linden (see: Say Hello to Linden Lab’s New VP of Engineering, Mojo Linden,  aka Andrew Kertesz), there are ongoing discussions at the Lab related to future work.

While there is nothing official to report on this at present, a focus of these discussions is very much on the question of avatar usability. While this was already a focus for the Lab prior to Mojo arriving, it now seems “likely” that this work may be stepped up, with changes appearing “over the coming months” – and will probably include viewer UI updates and well as other yet-to-be-publicly-defined changes.

The mention of this again raised the question of allowing completely custom skeletons into SL / rebuilding the entire avatar skeleton/rig. Both have technical issues associated with them (e.g. backward compatibility issues in the case of the latter), and also non-technical issues (e.g. the risk of further marketplace fragmentation / user confusion over what is supposed to work with which avatar types in the case of both), so the Lab is not currently looking at either option.

In terms of market fragmentation, it was suggested that some mitigation might be provided by LL producing some form of standard “developer kit”, rather than creators relying on third party tools.  The problem here being that a) LL does not have the resources to devote to doing so, and users are potentially fair more aware of the internals of applications such as Blender, Maya, etc., to be able to provide and maintain such tools far more effectively.

User Suggestion: Pro-Active Complexity Monitoring

[via the CCUG meeting]

User Lucia Nightfire has proposed the Lab consider a means by which avatar complexity values can be stored on the back-end and made available to simulators as avatars move between regions, such that it can be polled by (or supplied to) viewers within the region a user is entering.

The idea here is that by pro-actively supplying complexity information to viewers in a region and allowing them to compare it to the Maximum Complexity value set within them, they can make a simple determination of whether to fully render the incoming avatar or go directly to “Jellydolling” it without having to download all the associated geometry and attachment data, etc., in order to locally calculate how the incoming avatar should be rendered (as is currently the case).

This approach would be beneficial to the user experience, simply be reducing the amount of work the viewer has to carry out calculating avatar complexity. While this particular idea hasn’t been directly considered by the Lab, the idea of greater automation in general (where applicable –  see the notes on mesh optimisation above) could well help improve people’s Second Life experience, particularly those on lower-end systems. However, implementing such capabilities will require a degree of back-end work, and as such are not on the the immediate road map at this point in time.

In Brief

  • Issues arising from viewer changes made to accommodate the custom key mappings capability – LL are aware of a number of issues relating to the introduction of the custom key mappings viewer. Fixes are in the works, but no dates on when they might be made available or in which Maintenance viewer. These issues include the following reported bugs:
    • BUG-231083 “Rapidly left clicking objects or attachments while the Edit menu is open triggers a double-click teleport”.
    • BUG-230983 “Holding of modifier keys ALT and CTRL ignored when occurring in combination with double-click teleporting” (Kokua has already implemented their own fix for BUG-230983, which has also been offered available to LL..
    • BUG-230922 “Right Alt + Right Shift + H shortcut to show/hide HUDs no longer works when a floater is in focus”.
  • The announcement that the use of Gacha systems is to be discontinued in Second Life from the end of September has raised questions concerning the exploit by which some individuals have been able to use an exploit to crash a region in such a way that No Copy items would be duplicated on a restart (thus allowing them to make multiple copies of Gacha items). This issue is now being looked at again by the Lab.
  • The HTTP2 update work is awaiting the CDN(s) used by LL to implement HTTP2 support. This is becoming something of an internal hot topic, as the lack of HTTP2 progress is also hampering cURL advancement on the back-end.
  • Viewer stats: TPVs wishing to obtain stats on use, etc., from the Lab should e-mail Vir Linden to request a report.

CCUG Specific Questions / Items

  • Is there potential for increasing the number of allowed face/material slots for mesh objects (8 per single object)? – This is actually a limit that was pre-dates the arrival of mesh, which “inherited” it. As such, any change to this would be fairly substantive in nature, and thus is not something the Lab is currently considering.
    • Some at the meeting also felt any such change could have a noticeable negative impact without a “proper” mesh accounting system being put in place, or SL moves away from the current drawcall overhead.
  • Could a forum thread be opened to allow content creation questions to be asked in advance of meeting, particularly those that might require referencing to over teams within LL (e.g. the simulator engineers) in order to gain feedback input? – This is seen as a potentially good idea, and will be looked into, along with having a member of the simulator engineering team attend CCUG meetings more regularly.
  • Requests are again being made for LL to revisit Animesh to provide support for body shapes, attachments, Bakes on Mesh, re-evaluation of the Land Impact associated with Animesh objects, etc.
    • Some of this work require extension to viewer capabilities and back-end services (e.g. Outfit support for BoM + processing via the Bake Service), and are thus more long-term.
    • Others aspects (e.g. re-evaluating Animesh LI) could be said to be dependent upon other projects (e.g. ARCTan, and re-evaluating the impact of in-world objects), and thus are awaiting work to resume on these projects – and it is hoped the ARCTan work will resume sooner rather than later.

 

2021 TPV Developer meeting week #31 summary

Cravone City, April 2021 – blog post

The following notes are taken from the TPV Developer meeting held on Friday, August 6th, 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 a transcript of 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 1:00-2:32]

No updates to the current crop of official viewers this week, leaving them as follows:

  • Release viewer: version 6.4.21.561414, Fernet Maintenance RC dated July 14th, promoted July 19th.
  • Release channel cohorts:
  • Project viewers:
    • Legacy Profiles viewer, version 6.4.11.550519, dated October 26th, 2020.
    • Copy / Paste viewer, version 6.3.5.533365, dated December 9th, 2019.
    • Project Muscadine (Animesh follow-on) project viewer, version 6.4.0.532999, dated November 22nd, 2019.
    • 360 Snapshot project viewer, version 6.2.4.529111, dated July 16th, 2019.

General Viewer Notes

  • The CEF update viewer is being looked at as the next possible promotion to de facto release status. A decision on this may be taken on Monday, August 9th.
  • The 360 Snapshot viewer update is in progress, but it is still going to be a while before it surfaces.
  • [Video: 4:17-5:25] The Legacy Profiles viewer requires a couple of additional caps on the back-end. This work has yet to be queued, as the focus of back-end work remains on the tools update that is currently in progress; so it will be a while before this viewer is updated.
  • Both the revised Simplified Cache viewer and the Apple Notarisation viewer are both very close to making an appearance, most likely as RC viewers.
  • [Video 5:46-6:18] The new performance controls viewer (ARC, etc.), should be ready for issue as a project viewer in the “not too distant” future.

LOD Generation Viewer

[Video: 2:50-4:15]

A viewer using the mesh optimiser library for automatic LOD model generation for mesh uploads is in development. No date on when it is likely to appear.

This reportedly works better than the GLOD code that is currently in use. For the initial project viewer version(s) of this viewer, once available, creators will have a choice of using either GLOD or the optimiser at upload. Longer-term LL are still discussing whether or not GLOD will be retained as an option, or whether it will be removed (or at the least, made a non-default option).

Beyond this, there is the larger question of using the optimiser library in real time, and what to do with the available content that does not have properly defined LOD models, but this is regarded as “discussion for latter”; the onus at the moment is to make a viewer available that utilises the optimiser library.

Viewer-side Animation Override

[Video: 6:24-6:40]

The ability to run animations normally found in a scripted Animation Override HUD natively from the viewer has been a capability that a number of TPVs offer (animations play viewer-side anyway, so removing the need to operate them via simulator-side scripts helps reduce the script processing load on the latter). It is now the subject of discussions for a viewer-side AO system to be made a part of the official viewer, potentially leveraging what has been done by TPVs.

In Brief

  • [Video 6:50-7:49] As noted in my SUG meeting notes, the new simulator console command that let estate managers change the default EEP settings across an entire estate is now available on regions running on the RC channels, and will be grid-wide after the next SLS Main channel deployment (Tuesday, August 10th). This also paves the way for implementing a new default Mainland EEP setting that will be coming in a future update.
  • [Video 22:46-24:56] BUG-229227 “Offline group invites not working” this issue was the result of removing reliance on UDP messaging (which is not always reliable) and using a capability instead. While some fixes have been made to try to improve things, the code itself is described as a “Byzantine mess”, and in need of a complete re-write There are no time frames when / if this may happen.
  • Caatznip has been continuing investigations in to the cost of rendering Linden Water in cases 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), and have found that completely ignoring Linden Water rendering via occlusion checks can boost FPS by between 30-50%, with the most notable benefits being with lower-specification systems.

Next Meeting

  • The next meeting should be on August 20th, 2021.