Jump to content

Viewer Performance Improvements


Alexa Linden
 Share

You are about to reply to a thread that has been inactive for 870 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

  • Lindens

We are happy to announce the availability of a viewer that includes adjustments to improve performance. We focused on reducing image decoding time, initial text rendering time, and the number of frame stalls that occur. As a result, this viewer should feel more responsive.

Busy locations such as a crowded club or shopping event will be the best way to notice these improvements. Try adjusting your draw distance, shaders or avatar complexity and let us know if you’re seeing a difference with your performance. 

Please try it out and let us know if you see specific issues by filing a Jira.

NOTE: This viewer is only available for Win64 at this time. Future versions will be available with Win32 and Mac builds included.

 

Known Issues

If you have a high frame rate, textures may blink white for one frame while streaming in. We are investigating the source of this effect.

  • Like 4
  • Thanks 4
Link to comment
Share on other sites

1 hour ago, bigmoe Whitfield said:

while I dont like chui, I'm willing to test it.

okay having tested it,  the shadows still 100% lower my fps massively, I turn them off, I get high fps again.   @Alexa Linden  has anybody looked at the rendering for the shadows?  there has to be something that can be done.   standing in a group of people and turn shadows on, I go from 45 fps to 7 fps.  turn them back off and back to 45fps.   so somethings not right.

Link to comment
Share on other sites

This sounds like it's more about making things feel smoother (frame time) as opposed to increasing FPS. I am on Linux so I have to wait for Firestorm to bring these changes over. But they should make things feel better. FPS isn't everything, and the way it's calculated can be misleading. Two things getting 45fps can feel completely different based on frame time. This was actually a really big deal a few years ago, Nvidia optimized frame time and tech media made a huge deal about how AMD FPS were not the same as Nvidia FPS. But AMD got their stuff sorted out a while ago.

https://cgvr.cs.ut.ee/wp/index.php/frame-rate-vs-frame-time/

Link to comment
Share on other sites

9 hours ago, bigmoe Whitfield said:

okay having tested it,  the shadows still 100% lower my fps massively, I turn them off, I get high fps again.   @Alexa Linden  has anybody looked at the rendering for the shadows?  there has to be something that can be done.   standing in a group of people and turn shadows on, I go from 45 fps to 7 fps.  turn them back off and back to 45fps.   so somethings not right.

@bigmoe Whitfieldessentially the problem is that shadows require everything to be drawn multiple times and also with less culling (objects behind you can still cast a shadow). The cost of rendering with shadows is approximately 3:1 compared to without. As such "shadows slow things down" is always going to be true, the objective is therefore to get to a point where "running with shadows is fast enough that you don't feel the need to turn them off. For most people, a crowd of 10-15 "typical" people with shadows will result in single digit FPS.Disabling shadows will lift to say 15-20 fps.

The problem here is not so much that shadows slow us down, it is that they slow us down from an already poor framerate to a completely unacceptable framerate. If we can get to a point where the "with shadows" performance is closer to 30fps than 3fps, then the need to turn them off will largely go away.

If you've read my recent rants about alpha cut bodies the answer to the problem lies largely in there, it is a content problem as much as anything, it literally takes 10 times longer to render a body made of ten parts than one of 1 part. when we multiply that up with shadows the impact becomes even more pronounced. When an avatar is made of 10 cuts, it will require 30+ calls to draw it, a popular mesh body has 200 parts and thus needs 600 draw calls. That is 50 times slower. You don't typically see those extremes when you see it in a middle of a scene but it can be clear. 

From the viewer side, the lab are working on a series of performance enhancements, some of which you see here, and in parallel I am working on a system that selectively manages shadows to try to balance the aesthetic and the FPS to give you something in between the all or nothing we have today. I believe Catznip are working on some rendering things that might also benefit us all  ( @Coffee Pancakecan comment more knowledgably on that). There are lots of things being done to make it better; however, doing something 300 times that should only need to be done 3 times, is not fixed by making things twice as fast, it is fixed by doing less work in the first place. Doing that lower workload faster is just icing on the cake then.

From the user side, you can also help by insisting on content that is better suited to the platform, the more people that can be persuaded to adopt non-alpha cut bodies (I realise that you specifically don't fall into this camp 🙂 as tinies and similar tend to be low overhead) , and heads and single component rigged hair, the better the performance for you and everyone nearby you. Part of the aim of the newer tools we all hope to have is to better equip people to both manage their FPS and to understand the causes of slowness. 

Longer term, a more modern pipeline will allow better efficiency, though it remains the case that shadows require a lot more work and will likely always have an impact. 

 

 

  • Like 4
  • Thanks 2
Link to comment
Share on other sites

Shouldn't this viewer be merged with Simplified Cache Viewer for better testing since image loading is being Cache with the old VFS cache system instead of the upcoming Simplified Cache? At the moment the testing is being done against the old VFS cache and it should be being tested against the new cache system.

Edited by Chris Rowley
Link to comment
Share on other sites

7 hours ago, Chris Rowley said:

Shouldn't this viewer be merged with Simplified Cache Viewer 

As much as the current cache is "a nightmare raccoon infested trash fire that really needs pushing off a cliff and rebuilding from scratch"* apparently (according to yesterday's TPV meeting reported by Inara Pey) the new stuff isn't looking all that much better:

Quote

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

________________
*per Catznip dev @Coffee Pancake in the "Lag" thread.

Link to comment
Share on other sites

Ill give it a try, but like the movie Soyent Green, "It's people"!! that is the real cause of the low FPS. On a Good machine in an avatar-less sim, 30-50fps+ with 'everything' on, introduce some avatars within view distances and FPS plummets. I can be doing a wedding with 30 avies there and getting maybe 9FPS, point the camera to an area on the sim no avies, and back up to 35 FPS. Sure being able to turn off shadows helps but the real cause of low FPS to me has always been the People

Link to comment
Share on other sites

Just now, Lillith Hapmouche said:

What am I doing wrong if I don't notice any significant improvement, except that I like the turquoise UI?

Performance gains can be very situational depending on what the optimization goal is, so far it seems the intent is to even out average frame times, this doesn't make the viewer actually faster (if anything it might even slightly decrease the mean average frame rate), but it does tackle micro stuttering which can help bring the perceived frame rate more in line with the actual displayed frame rate.

For example, SL might run at an average 45 fps, but if one frame in 10 is very slow, it can feel more like an uneven 20 fps.

This is most noticeable on lower end hardware.

The simplest situational example is the difference in performance when the viewer is aggressively loading textures and when everything is loaded.

On 10/13/2021 at 3:56 PM, Alexa Linden said:

We focused on reducing image decoding time,

The overall time spend decoding textures will be shorter, so going to a new area with this viewer should result in more being on screen sooner.

Test by clearing the image cache, logging into a content dense area with no other avatars, not moving or touching anything and running the viewer for a set amount of time. Then take a screenshot. Repeat with the stock linden client. Compare screen shots. Adjust the time spent waiting before grabbing the screenshot. Repeat repeat repeat. Hope no one shows up and ruins your test run.

It's important that you don't move your avatar or camera, this will seriously mess up the repeatability of your testing.

On 10/13/2021 at 3:56 PM, Alexa Linden said:

initial text rendering time,

All text characters are rendered to a texture. This takes a few seconds, especially with large unicode sets.

I don't know what the intent here is or what they have changed, have to go over the source .. rendering everything when the viewer starts up will make logging in slower, doing it when a character is first used can make everything freeze for a moment while it processes.

6 minutes ago, Jackson Redstar said:

Ill give it a try, but like the movie Soyent Green, "It's people"!! that is the real cause of the low FPS. On a Good machine in an avatar-less sim, 30-50fps+ with 'everything' on, introduce some avatars within view distances and FPS plummets. I can be doing a wedding with 30 avies there and getting maybe 9FPS, point the camera to an area on the sim no avies, and back up to 35 FPS. Sure being able to turn off shadows helps but the real cause of low FPS to me has always been the People

I would advise against testing anywhere there are other avatars, this adds a massive amount of variability that will make it impossible to get meaningfully comparable results.

 

Link to comment
Share on other sites

1 hour ago, Coffee Pancake said:

 

I would advise against testing anywhere there are other avatars, this adds a massive amount of variability that will make it impossible to get meaningfully comparable results.

 

but the OP was "Busy locations such as a crowded club or shopping event will be the best way to notice these improvements. "

Link to comment
Share on other sites

i have been trying this out

is a couple of wonky things I noticed with the shape editor. Like the thumbnails don't show my Maitreya body which is bommed. And the main view jitters my avatar a tiny bit when I change a shape parameter. Not sure if that was just me tho

only other thing I noticed was the animesh dancers at Dance Island never rezzed fully. They were a single triangle the whole time I was there (and when I went back another time)

wonkyanimesh.jpg.1c8d1802d88ab35d0557f3588b391300.jpg

Link to comment
Share on other sites

54 minutes ago, Jackson Redstar said:

but the OP was "Busy locations such as a crowded club or shopping event will be the best way to notice these improvements. "

Objective measurements are impossible without repeatability.

A busy location might be where the changes are intended to improve, but unless you can test the identical location with this and the stock viewer, multiple times, you're not ever going to be able to really tell.

It's just not possible to guarantee a club or busy event will have the same avatars in the same places for any length of time.

  • Like 1
Link to comment
Share on other sites

Ok so this is my experience. Went to Fogbound cause there always lots people there. Set the Linden viewer and my FS to as close of settings as possible, shader on shadows on, draw distance all that. Sat in the same place and had the cam looking in the same direction. Used shared environment (it was night on this test) This test Linden viewer a constant 25-27 FPS. Firestorm viewer a constant 9 FPS. that's a big difference.. I wish I could try it out at a packed wedding, but, sorry, the UI on the Linden viewer, well, not very good, lest doing video work

But Ill keep experimenting doing A/B in different places. I didnt pull up the task manager and look at CPU usage and graphics usage Ill do more comparisons like that well. But whatever improvements were made so far seem to work

Update
I went back and grabbed a screen of the task manager for both viewers. Interesting though, the Linden viewer, which had much higher FPS, the CPU was running at 4.55ghz vs 4.61ghz on Firestorm, and the GPU usage was 22% on the Linden viewer and 32% on Firestorm

Linden:
f9b74bcab084ef1ca5d9c2e228e056c7.png

 

Firestorm:
a793750a0d6dfb85356fb98008d878d5.png

Edited by Jackson Redstar
Link to comment
Share on other sites

Just glancing at the Taskmanager screenies, hoping they weren't taken with the application in question being minimized... those stats rather suggest that Firestorm can utilize the hardware slightly, just slightly more.

CPU at 4.61 vs. 4.55. 14.6 GB RAM usage vs. 11.9. GPU 33% vs. 22%...

... did you run those viewer at the same time? Up time 1:00:08:24 vs. 1:00:10:25?

Link to comment
Share on other sites

2 hours ago, Lillith Hapmouche said:

Just glancing at the Taskmanager screenies, hoping they weren't taken with the application in question being minimized... those stats rather suggest that Firestorm can utilize the hardware slightly, just slightly more.

CPU at 4.61 vs. 4.55. 14.6 GB RAM usage vs. 11.9. GPU 33% vs. 22%...

... did you run those viewer at the same time? Up time 1:00:08:24 vs. 1:00:10:25?

I set both so they dont lose 'focus' if you are not actively in the window (backgroundyeildtime=0) and no I wasn't on at the same time. But, I don't have a stock LL viewer so I guess the comparison to FS doesn't do any good

Link to comment
Share on other sites

On 10/16/2021 at 12:02 PM, Coffee Pancake said:

 

All text characters are rendered to a texture.

 

Isn't that wildly inefficient? Why not run it through the entire pipeline as a text character? This would also beneficial as the result would be (at least to my knowledge) a vector graphic and thus can scale with the screen resolution without having to render multiple mipmaps to account for the size of the text displayed

Link to comment
Share on other sites

  • 3 weeks later...
You are about to reply to a thread that has been inactive for 870 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...