The Performance Improvements Viewer has been the default release viewer from the Lab for the last couple of weeks, and the code is starting to find its way to TPVs. This is a viewer specifically designed by LL to provide a smoother user experience in terms of things like rezzing / rendering times, better FPS.
The viewer represents a lot of work on the part of the Graphics team to improve data handling (including moving various data elements between threads, removing low update processes to their own threads rather than having them stall the main rendering threads, etc., all of which is intended to make the viewer feed more responsive as you move / teleport around SL.
As such, I decided to try a series of basic comparative tests between the Performance Improvements viewer, a version of the official viewer without the code updates and Firestorm (as my TPV of choice at the moment), just to gain a rough indication of how the changes made to the viewer perform. These tests comprised:
- Logging-in to my Home location with empty caches, recording the time from clicking the log-in button through to everything loading in my field of view.
- Logging-in to my Home location with it locally cached on my hard drive.
- Completing a walk around my Home location, recording FPS at the same 9 locations, three times each with Shadows OFF and Shadows ON, and taking an average of all the FPS times recorded.
- Teleporting to a busy region (15+ avatars) that is not pre-cached locally (but should be cached at my nearest CDN node(s), given it is a place I visit daily).
- Re-teleporting to the same location, now locally cached.
- Completing the same walk around the selected location, recording FPS at the same 5 locations, three times each with Shadows OFF and Shadows ON, and taking an average of all the FPS times recorded.
The table below summarises my findings:
|Firestorm||SL Viewer – No Improvements Code||SL Performance Improvements Viewer|
|Home log-in uncached||42.06 sec||27.94 sec||24.00 sec|
|Home log-in cached||22.34 sec||21.98 sec||20.00 sec|
|Home walk – no shadows||25.5 FPS||34.5 FPS||53.57 FPS|
|Home walk – shadows||17.4 FPS||21.4 FPS||42.8 FPS|
|Uncached location TP||55:41 sec||49.37 sec||44.27 sec|
|Cached location TP||46:61 sec||35.03 sec||17.57 sec|
|TP location – no shadows||28.9 FPS||29.25 FPS||45.54 FPS|
|TP location – shadows||13.5 FPS||22.8 FPS||38.8 FPS|
Obviously, there is always going to be a lot of subjectivity in such tests like these, which are dependent upon factors such as the specs of the system running the viewer(s), what else is running at the same time, Internet connectivity with the SL services and to the nearest CDN node, etc. However, in carrying out the comparisons above, I attempted to achieve something of a common basis by:
- Using the same settings across the three viewers (e.g. camera and graphics pre-sets; the same RenderVolumeLOD factor; the same attached EEP settings for a consistent environment; the same complexity setting & max no. of non-imposters, etc.) – with the acknowledged caveat that the Performance Improvements viewer would automatically default to Shadows ON for me, based on my system’s capabilities, so needed some adjustment during some tests.
- Ensuring all tests were carried out back-to-back to minimise extensive changes due to avatars of different complexity coming / going / moving around.
- Closing all other apps I had been running on my PC to maximise the available resources available to all of the tests.
In addition, and for completeness (and as requested by Lance in the comments) – here are my system specifications – which are also available in the link on the right column of this blog.
But even while subjective, I think the results tend to speak for themselves, and there is no denying the qualitative frame speed increase with the Performance Improvements viewer, particularly with shadows enabled.
How quickly these updates are adopted by TPVs is down to their release schedules; but for the official viewer, this marks the first major release of updates intended to improve performance that is currently in flight, with the Performance Improvements Floater viewer (which includes the Lab’s take on auto-FPS function functionality similar to that found in Firestorm) currently at product viewer status.