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

Mimmo, July 2021 – blog post

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

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

SL Viewer

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

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

Apple Notarisation Viewer Issue

[Video: 26:10-27:38]

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

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

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

Viewer Performance Notes

[Video: 3:18-15:35]

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

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

Upcoming Work

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

Increasing the Default VRAM limit from 512 MB

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

OpenGL Replacement

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

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

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

Windows 11 and SL

[Video: 28:02-30:17]

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

Update on Mobile Status

[Video: 32:45-33:52]

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

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

In Brief

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

2021 SUG meeting week #43 summary

The Blackwood Farm, July 2021 – blog post

The following notes were taken from the Tuesday, October 26th, 2021 Simulator User Group (SUG) meeting. The meeting was recorded by Pantera Północy, and the video is embedded at the end of this summary. Note this summary focuses on the key points of the meeting; where there is something to report, the video should be referred to should full details of the meeting wish to be reviewed.

Server Deployments

  • Tuesday, October 26th saw the simhosts on the SLS main channel restarted without any update.
  • Wednesday, October 27th should see the deployment of  simulator version that includes a revised implementation of PRIM_PROJECTION.
    • For the time being, it will be write only, meaning it can used in llSetPrimitiveParams but not in llGetPP. The associated wiki documentation has yet to be updated.
    • This update will also include BUG-231158 Allow llGetNotecardLine to return more than 255 bytes (to a maximum of 1023 characters).

SL Viewer

There have been no updates to the current crop on official viewers to mark the start of the week, leaving the pipelines as:

  • Release viewer: version version 6.4.23.564172, formerly the Apple Notarisation Fix RC viewer, issued September 24 and promoted October 15 – see notes below.
  • 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

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 including, but not possibly limited to MP3s and MP4s. LL are working towards a fix, but in the meantime, workaround 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.

In Brief

  • With the on-going work to analyse viewer performance using the Tracy debugger / system analyser (see my TPV Developer summaries for more), the simulator team are looking to try and leverage that work on the simulator side, once the current tools upgrade on the server-side has been completed.
  • There was a 10-minutes discussion around animated particles / revising the particle systems, but there is nothing on the card for immediate work.
  • The upcoming simhost operating system upgrade (also to follow the completion of the tools upgrade) was also discussed. Essentially there is a lot of work to be done, and the potential for regressions or other issues to occur. However, LL are planning things as carefully as possible; no overall decision as to how it will be deployed to the main grid come time for it to do so – mainly because the work has yet to start.

2021 viewer release summaries week #42

Logos representative only and should not be seen as an endorsement / preference / recommendation

Updates from the week ending Sunday, October 24th

This summary is generally published every Monday, and is a list of SL viewer / client releases (official and TPV) made during the previous week. When reading it, please note:

  • It is based on my Current Viewer Releases Page, a list of all Second Life viewers and clients that are in popular use (and of which I am aware), and which are recognised as adhering to the TPV Policy. This page includes comprehensive links to download pages, blog notes, release notes, etc., as well as links to any / all reviews of specific viewers / clients made within this blog.
  • By its nature, this summary presented here will always be in arrears, please refer to the Current Viewer Release Page for more up-to-date information.
  • Note that for purposes of length, TPV test viewers, preview / beta viewers / nightly builds are generally not recorded in these summaries.

Official LL Viewers

  • Release viewer: version version 6.4.23.564172, formerly the Apple Notarisation Fix RC viewer, issued September 24th and promoted October 15th – No change.
  • Release channel cohorts:
    • 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.
  • Project viewers:
    • No updates.

LL Viewer Resources

Third-party Viewers

V6-style

  • No updates.

V1-style

Mobile / Other Clients

  • Radegast updated to version 2.36 on October 21.

Additional TPV Resources

Related Links

2021 CCUG meeting week #42 summary

Nelipot, July 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, October 21st, 2021. These meetings are generally chaired by Vir Linden, with dates available via the SL Public Calendar and the venue for the CCUG is the Hippotropolis camp fire.

SL Viewer

No updates to the current official viewer thus far through the week, despite hopes the Apple Notarisation viewer would be promoted to de facto release status. This leaves the current pipelines 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):
    • 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:
    • Performance Improvements project viewer, version 6.4.23.564530, dated October 12.
    • 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 next viewer scheduled for promotion to de facto release status is the Maintenance RC viewer. This may happen in week #43.

Performance Improvements

Core viewer work in now focuses on performance improvements, particularly around rendering (speed and consistency in FPS).

  • The first tranche of this work can be found in the Performance Improvements project viewer (version 6.4.23.564530 and Windows 64-bit at the time of writing, and not to be confused with the Performance Floater viewer).
    • The emphasis of the work is currently Windows 64-bit, but Windows 32 and Mac OS support will be provided as the viewer is updated. However, given this focus, it is possible there may be some temporary regressions creeping into the Mac OS version when it does appear.
    • One of the (many) issues facing LL is that a relatively high number of people signing-up to use Second Life do so with hardware which is at best marginal in terms of capabilities. Ergo, their experience is far from optimal, and so they don’t stick. As such part of this work is looking at ways an means to improve things at that end of the scale – which is no easy task, given the broad range of hardware that is available.
    • The above comment should not be taken to mean LL are insensitive to users who do have more capable hardware.
  • Obviously there are limits to what can be done, simply because of the nature of SL as an open platform, where strict control over content quality (in terms of draw calls, rendering, construction (faces / verts / tris), texture and materials use, etc.), is pretty much entirely unregulated.
  • Beq Janus from Firestorm is putting together a set of UI options (currently focused on avatars) that allow users gain a better understanding of rendering and the impact attachments and rendering artefacts like shadows can have on performance, together with actions that might be taken to help improve their system’s performance.
    • Such approaches are somewhat limited, as it places the onus on the user being pro-active. However, they are a means of providing help.
    • Beq’s work will be appearing in Firestorm in due course and subject to refinement. It may in time be offered to LL as a code contribution, if it proves suitably beneficial to users.
  • Other, more automated options are being discussed, both by users and – as I reported following Mojo Linden’s appearance at a Third Party Viewer Developer meting. However, it is important to note that these are just discussions / ideas that are being poked at, not actual projects.

In Brief

  • Broader focus at the Lab is turning towards discussing potential projects for the upcoming year.
    • There is nothing specific to report on with this at this point, but in broad terms, it does also incorporate things already discussed in these summaries and raised at events such as the June Meet the Linden sessions: performance improvements, more work on the new user experience, etc.
    • Feature requests are also being considered in these discussions (again, no specifics to discuss), and these are also broad-ranging.
  • Mainland EEP update: as I’ve previously reported, a fix for some Mainland regions appearing very dark under the default EEP region setting was implemented server-side a while ago, but has been awaiting the Land team to “throw the switch” to make the update live.
    • However, after the initial update had been deployed, it was realised a further change (a force parameter on the the estate environment console command) would be required in order to have things set and allow said switch to be thrown.
    • The update is now to be deployed in week #43, after which the way should be clear for the Land team to flip the switch and apply the updated settings at a time of their choosing.

Date of Next Meeting

  • Thursday, November 4th.

2021 SUG meeting week #42 summary

Rivendell – Lord of the Rings, July 2021 – blog post

The following notes were taken from the Tuesday, October 19th, 2021 Simulator User Group (SUG) meeting. The meeting was recorded by Pantera Północy, and the video is embedded at the end of this summary. Note this summary focuses on the key points of the meeting; where there is something to report, the video should be referred to should full details of the meeting wish to be reviewed.

Server Deployments

See the current server deployment thread for updates

  • Tuesday, October 19th saw the simhosts on the SLS main channel restarted without any update. for some this may have seen the server release number increment to 564759. However, there were some issues, so some simulators on the channel were refreshed with release 564394.
    • LL is working to get to a state where version numbers only increment when there is a deployment and rolling restart, rather than incrementing as a result of a rolling restart alone.
  • Wednesday, October 20th should see the deployment of  simulator version 564610. This includes the following feature requests:
    • SL-15994 Add “force” option to estate_environment command (non-public Jira).
    • BUG-231158 Allow llGetNotecardLine to return more than 255 bytes.
    • BUG-229639 [FEATURE REQUEST] PRIM_PROJECTION.

Operating System Upgrade

As I’ve recently noted, following the current server tools update, the Lab plans to update the underpinning operating system. This work is now on the horizon. Or, to put in in the words of Mazidox Linden:

Do you all remember back in the Before Times when we were still in the colo and offices were still a thing and we did simulator operating system upgrades? Well, we’re in the cloud, I’m still working from a cramped desk in a corner of my guest room, but guess what we’re doing!
I know an OS upgrade is not the most attractive thing nor fun to hear about, so I’m willing to offer you a carrot. We’ve seen at least 10% more scripts running per frame on the same hardware with the same starting state for a simulator. [SO] the sooner we get this os upgrade tested the sooner it gets out the door and into your hands.

Those wishing to test their scripts, etc., on the new OS version can currently do so on the following regions on Aditi (the beta grid): Cale, Gothlauth, Jigglypuff, Leafeon, London City, London City Gateway, Mauve, Moonberry, Riccione, Sapas, Smithereens, Snark, Testylvania Sandbox, and Woods of Heaven.

Mazidox also stated:

If you have a region on Agni that has some significant script load, or unusual characteristics like lots of physics utilization, pathfinding… Regions that really stress aspects of the server without people being on them, please feel free to IM me here on Agni and ask for the region to be copied to Aditi on a first come first serve basis.

SL Viewer

There have been no updates to the current crop on official viewers to mark the start of the week, leaving the pipelines 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):
    • 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:
    • Performance Improvements project viewer, version 6.4.23.564530, dated October 12.
    • 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.

In Brief

  • There has been a lot of discussion about the viewer’s bandwidth slider on the forums again recently, which has also touched on default cache sizes
    • As noted in that thread, the bandwidth slider in particular is less useful nowadays than once was the case, prompting the question on whether or not it should be retained within the viewer.
    • During the meeting, the question was asked if the simulators are liable to become defensive if the setting were to be fixed (presumably relatively high) within a viewer like Firestorm, which could provoke “microburst contention” due to the volume of UDP message requests hitting the servers.  The suggestion has been to go ahead and try, which is easier said than done inasmuch as increasing the default is easy – rolling it back perhaps not so (given it would require a further update, which people might opt to ignore unless part of a larger release – which then might not appear for several months after the original change).
    • In terms of cache, that is also a problem, as the limits do tend to be low (based on older computer specs), plus the viewer tends to have multiple and distinct caching structures, none of which are particularly efficient – although the Lab is trying to address some of them (hence the Simplified Cache RC viewer).
  • There is a very short discussion on Voice options, given Vivox will be ending the Vivox 4 API. As this in more a viewer question, no conclusions could be drawn.

2021 viewer release summaries week #41

Logos representative only and should not be seen as an endorsement / preference / recommendation

Updates from the week ending Sunday, October 17th

This summary is generally published every Monday, and is a list of SL viewer / client releases (official and TPV) made during the previous week. When reading it, please note:

  • It is based on my Current Viewer Releases Page, a list of all Second Life viewers and clients that are in popular use (and of which I am aware), and which are recognised as adhering to the TPV Policy. This page includes comprehensive links to download pages, blog notes, release notes, etc., as well as links to any / all reviews of specific viewers / clients made within this blog.
  • By its nature, this summary presented here will always be in arrears, please refer to the Current Viewer Release Page for more up-to-date information.
  • Note that for purposes of length, TPV test viewers, preview / beta viewers / nightly builds are generally not recorded in these summaries.

Official LL Viewers

  • Release viewer: version version 6.4.23.564172, formerly the Apple Notarisation Fix RC viewer, issued September 24th and promoted October 15th – NEW.
  • Release channel cohorts:
    • No updates.
  • Project viewers:
    • Performance Improvements project viewer, version 6.4.23.564530, dated October 12th.

LL Viewer Resources

Third-party Viewers

V6-style

  • No updates.

V1-style

  • No updates.

Mobile / Other Clients

  • No updates.

Additional TPV Resources

Related Links