Jump to content

Viewer Performance Improvements


Alexa Linden
 Share

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

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

Recommended Posts

20 hours ago, Chris Rowley said:

After today's update on Friday, November 5, 2021 to  6.4.24.565324    after spending a few minutes on a SIM my avatar loses its texture and turns Gray     https://prnt.sc/1yhofp3 this is what my avatar is supposed to look like https://prnt.sc/1yhoych

Yeah I think that update was maybe released accidentally, texture rezzing is terrible.
I filed a bug  BUG-231394 - [Project Viewer Performance Improvement] Texture rendering broken on 6.4.24.565324 (64bit)

  • Thanks 2
Link to comment
Share on other sites

I had to accept the update (I think LL might consider either allowing a defer-update mode or roll-back-onne-version option for their viewer), but after bazzing around a variety of places, some of which were cached, some not, I haven't seen the problem.

I wonder if this is an OS-related issue, along the lines of the speckled screen problem that plagued Windows 10 for a few weeks?

Link to comment
Share on other sites

On 11/7/2021 at 8:00 AM, Profaitchikenz Haiku said:

I had to accept the update (I think LL might consider either allowing a defer-update mode or roll-back-onne-version option for their viewer), but after bazzing around a variety of places, some of which were cached, some not, I haven't seen the problem.

I wonder if this is an OS-related issue, along the lines of the speckled screen problem that plagued Windows 10 for a few weeks?

I hope they don't block the update or roll it back. The performance of this version is so good I'm kind of willing to look over the problem just for the performance. I was at a club the other night with 30 people and was getting 35 FPS, that's highly impressive considering prior to this update I would be only getting like 10 FPS with around 30 people at a Party/Club

Edited by Chris Rowley
Link to comment
Share on other sites

A small part of the fixes to rigged mesh rendering were ported to Cool VL Viewer, and the effect was similar for my lackluster AMD RX Vega 56 on Windows. FPS in a club with lots of people doubled from 9fps to 17-20fps. Massive quality of life improvement. But well, Henri got like 70-80fps in the same club with an NVIDIA 1070ti with same settings on Linux, which shows how abysmally bad the AMD OpenGL drivers are.

Link to comment
Share on other sites

A Vega 56 only got 9 fps? Something sounds extremely wrong with that scoring...

Certainly, it is past its "prime"... extremely power hungry as it was, but also massive pure graphics power. In comparison, a card like a 480/580 is supposedly weaker, but usually gets like 30 fps in pretty crowded situations, more like 75 or more fps in private, well decorated areas? Nah.

Link to comment
Share on other sites

I'm all ears if you can tell me why it is that bad.

In benchmarking tools the card hits the expected range, so its not fully broken.

But well, to compare FPS, i did some minimal thing. Just logging in at my home location, default view with quite similar settings with the current performance viewer, Firestorm 6.4.21 and the current Cool VL Viewer, all Windows 10 Pro, latest AMD drivers for the card and on a Ryzen 2700X without overclocking, 2560x1440 resolution.

Quite varied.

So, Performance Viewer got around 15-20fps in that setting, Firestorm clocked in around 75fps, Cool VL Viewer around 80fps.

Second Life Project Viewer Performance Improvement 6.4.24.565324 (64bit)
Release Notes

You are at 55.1, 47.0, 211.2 [...]
Second Life Server 2021-10-25.565008
Release Notes

CPU: AMD Ryzen 7 2700X Eight-Core Processor          (3699.99 MHz)
Memory: 32694 MB
OS Version: Microsoft Windows 10 64-bit (Build 19042.1288)
Graphics Card Vendor: ATI Technologies Inc.
Graphics Card: Radeon RX Vega

Windows Graphics Driver Version: 30.0.13033.1000
OpenGL Version: 4.2.14761 Core Profile Context 21.11.1 30.0.13033.1000

Window size: 2560x1377
Font Size Adjustment: 96pt
UI Scaling: 1
Draw distance: 128m
Bandwidth: 9000kbit/s
LOD factor: 1.125
Render quality: 5
Advanced Lighting Model: Enabled
Texture memory: 512MB
VFS (cache) creation time: November 09 2021 09:37:23

J2C Decoder Version: KDU v7.10.4
Audio Driver Version: FMOD Studio 2.01.07
Dullahan: 1.12.2.202109230751
  CEF: 91.1.21+g9dd45fe+chromium-91.0.4472.114
  Chromium: 91.0.4472.114
LibVLC Version: 3.0.9
Voice Server Version: Vivox 4.10.0000.32327

Packets Lost: 11/6,681 (0.2%)
November 09 2021 09:47:31

Firestorm:

Firestorm 6.4.21 (64531) Jul 21 2021 21:00:53 (64bit / SSE2) (Firestorm-Releasex64) with Havok support
Release Notes

You are at 55,1, 47,0, 211,2 in [...]
Second Life Server 2021-10-25.565008
Release Notes

CPU: AMD Ryzen 7 2700X Eight-Core Processor          (3699.99 MHz)
Memory: 32694 MB
Concurrency: 16
OS Version: Microsoft Windows 10 64-bit (Build 19042.1288)
Graphics Card Vendor: ATI Technologies Inc.
Graphics Card: Radeon RX Vega
Graphics Card Memory: 8176 MB

Windows Graphics Driver Version: 30.00.13033.1000
OpenGL Version: 4.6.14761 Compatibility Profile Context 21.11.1 30.0.13033.1000

RestrainedLove API: RLV v3.4.3 / RLVa v2.4.1.64531
libcurl Version: libcurl/7.54.1 OpenSSL/1.0.2l zlib/1.2.8 nghttp2/1.40.0
J2C Decoder Version: KDU v8.1
Audio Driver Version: FMOD Studio 2.01.09
Dullahan: 1.8.0.202011211324
  CEF: 81.3.10+gb223419+chromium-81.0.4044.138
  Chromium: 81.0.4044.138
LibVLC Version: 2.2.8
Voice Server Version: Vivox 4.10.0000.32327

Settings mode: Firestorm
Viewer Skin: Firestorm (Grey)
Window size: 2560x1377 px
Font Used: Deja Vu (96 dpi)
Font Size Adjustment: 0 pt
UI Scaling: 1
Draw distance: 128 m
Bandwidth: 500 kbit/s
LOD factor: 2
Render quality: High-Ultra (6/7)
Advanced Lighting Model: Yes
Texture memory: 2048 MB (1)
Disk cache: Max size 2048.0 MB (2.5% used)
Built with MSVC version 1916
Packets Lost: 1/2.917 (0,0%)
November 09 2021 09:52:43 SLT

And Cool VL Viewer (self built):

Cool VL Viewer v1.28.2.46, 64 bits, Nov  6 2021 15:29:31
RestrainedLove viewer v2.09.29.24
Release notes

You are at [...]
Second Life Server 2021-10-25.565008
Release notes

CPU: AMD Ryzen 7 2700X Eight-Core Processor          (3699.99 MHz)
Memory: 32694MB
OS version: Microsoft Windows 10 64 bits v10.0 (build 10586.1288)
Memory manager: OS native
Graphics card vendor: ATI Technologies Inc.
Graphics card: Radeon RX Vega
Windows graphics driver version: 30.00.13033.1000
OpenGL version: 4.2.14761 Compatibility Profile Context 21.11.1 30.0.13033.1000
Detected VRAM: 24467MB
J2C decoder: OpenJPEG: 1.4.0.635f
Audio driver: FMOD Studio v2.02.03
Networking backend: libcurl 7.64.1/OpenSSL 1.1.1l/zlib 1.2.11.zlib-ng/nghttp2 1.43.0
Embedded browser: Dullahan 1.12.3/CEF 91.1.21/Chromium 91.0.4472.114
Packets lost: 13/5669 (0.2%)

Built with: MSVC v1916
Compiler-generated maths: AVX2.

Compile flags used for this build:
/O2 /Oi /DNDEBUG /D_SECURE_SCL=0 /D_HAS_ITERATOR_DEBUGGING=0 /guard:cf /GS /Qpar /GL /DWIN32 /D_WINDOWS /W3 /GR /EHsc /std:c++14 /EHs /arch:AVX2 /fp:fast /MP /TP /W2 /c /nologo /GS /Zc:threadSafeInit- /DLL_WINDOWS=1 /DUNICODE /D_UNICODE /DWINVER=0x0601 /D_WIN32_WINNT=0x0601 /DXML_STATIC /DLL_PHMAP=1 /DLL_IOURING=1 /DBOOST_ALL_NO_LIB /DLL_FMOD=1 /DAPR_DECLARE_STATIC /DAPU_DECLARE_STATIC /DCURL_STATICLIB=1 /DLL_NDOF=1

 

perf_view2.png

firestorm_view2.png

cool_view2.png

Link to comment
Share on other sites

The Linden viewer sure does detect some weird settings...

Why do you run no shadows?

Is that "Enable OpenGL Vertex Buffers", seen in the first screen shot, on or off in the other viewers? Does the opposite make a difference?

Plus, in the end, I thought you complained about 27 fps max. Yet your screenshots show 70+ fps at least.

Link to comment
Share on other sites

Not that this is entirely relevant but I do not see how any graphics set up that can only utilize OpenGL 4.2, when we are on 4.6, and that itself is ancient history in coding terms can give "good" performance.

PS: I am no Nvidia fanboi , since their recent drivers are rubbish and introduce noticeable microstuttering on any system running below 20FPS.

ANY performance improvement in this EEP age is welcome!

Edited by Aishagain
spelling..my perennial bugbear
Link to comment
Share on other sites

30 minutes ago, Lillith Hapmouche said:

Why do you run no shadows?

Is that "Enable OpenGL Vertex Buffers", seen in the first screen shot, on or off in the other viewers? Does the opposite make a difference?

Plus, in the end, I thought you complained about 27 fps max. Yet your screenshots show 70+ fps at least.

No shadows = Faster.

Enable Vertex Buffer Objects is on for all. Disabling it makes things slower.

That is with just my AV in sight. The 9/20fps max are with a club with around 20 AVIs with lots of rigged mesh attachments.

Link to comment
Share on other sites

9 hours ago, Kathrine Jansma said:

A small part of the fixes to rigged mesh rendering were ported to Cool VL Viewer

The reason for the ”small” size of the part is that the rest of the improvements (rigged matrix caching) were already implemented by me in the Cool VL Viewer months ago and with an even faster algorithm... 😛

The only improvement (three lines of code but it makes a very obvious difference) brought by LL's latest code over mine, and which I backported, is to avoid uploading repeatedly and uselessly the (cached) rigged matrix into the shaders... Which would happen hundreds of times per second for each avatar wearing a rigged mesh (depending on your frame rate).

Edited by Henri Beauchamp
  • Thanks 1
Link to comment
Share on other sites

  • 1 month later...
  • 5 weeks later...

the performance gain i'm getting on 6.5.2.566967 is massive. it's triple the FPS compared to other viewers.

fantastic job, Lindens!

but i noticed weird behaviour of Legacy brand mesh bodies, which dissapear completely on camming away ever so slightly. and no other mesh body shows this issue.

Untitled-1.thumb.png.e9a8a55354b39d25ee6b3bc58b037550.pngUntitled-2.thumb.png.914a6172f37bab4114bf8d03f8f0c03f.png

Edited by Beev Fallen
  • Like 1
Link to comment
Share on other sites

5 hours ago, Beev Fallen said:

but i noticed weird behaviour of Legacy brand mesh bodies, which dissapear completely on camming away ever so slightly. and no other mesh body shows this issue.

I see this too. Also, if I gradually pull back the cam further, I hit a narrow range of distance where the Legacy avatar pops into view again, then disappears as the cam pulls slightly further back. Maybe somebody who knows more of viewer rendering can make sense of this, or who knows what about Legacy avatars make them trigger this weirdness. (It doesn't seem to be a simple tweak to any of obvious graphics preferences nor any debug settings I tried, and it's a pretty glaring effect so something weird is happening.)

  • Like 1
Link to comment
Share on other sites

18 minutes ago, Qie Niangao said:

Maybe somebody who knows more of viewer rendering can make sense of this, or who knows what about Legacy avatars make them trigger this weirdness.

Would be interesting to find out indeed. My only guess is their messy 4 layers system. Just "being heavy on triangles/vertices" (which it is) is not enough to trigger it, belleza and kupra bodies which are about as heavy are totally fine. It's not the rigged mesh having just a few triangles for the lowest/low lods either, otherwise everything would break the same way.

I'll probably poke their support later so they can check by themselves and perhaps prepare the update if it'll be required by the time this viewer gets closer to the RC status.

  • Like 1
Link to comment
Share on other sites

1 hour ago, Qie Niangao said:

I see this too. Also, if I gradually pull back the cam further, I hit a narrow range of distance where the Legacy avatar pops into view again, then disappears as the cam pulls slightly further back. Maybe somebody who knows more of viewer rendering can make sense of this, or who knows what about Legacy avatars make them trigger this weirdness. (It doesn't seem to be a simple tweak to any of obvious graphics preferences nor any debug settings I tried, and it's a pretty glaring effect so something weird is happening.)

At least before, the viewer had a throttle that would keep something that had a very high number of polygons in a small area from rendering at certain distances. A certain gacha maker's "bags" would all vanish if several were rezzed close together, for instance.

My understanding of the Legacy body is that, rather than being made up of semi-independent "shells" like most bodies, that each individual sub-mesh contains the skin and all upper layers for any point on the body. In other words, each unit is relatively small and "thick." That's one of the reasons it's prone to "cracking" at high altitudes. The performance viewer handles drawing rigged meshes differently - for instance, I noticed that on your own avatar rigged meshes you wear might vanish if the attachment point isn't on your screen.

  • Like 1
Link to comment
Share on other sites

I think that's in the ballpark at least: it does seem to be something related to how the Legacy mesh is assembled, just judging by how the hunks of body go invisible in this Performance Improvements project viewer (and not in other viewers). Here are two pics from just slightly different cam distances:

598626353_Screenshot2022-01-12081535.png.2af9c316b3f6fc3652472cd153695e93.png1478429975_Screenshot2022-01-12081624.png.8bbd00c013e1cca7a6aef284828cc37c.png

The body rendering disintegrates along boundaries that seem to correspond to the alpha regions in the Legacy HUD, which are probably those components that are individually stacked with the onion layers. Pulling the cam back, more and more of these components vanish until just a little further out the avatar mesh is completely invisible, then much further out it pops back into view for that narrow range before vanishing again, at about the distance other viewers, too, stop rendering it altogether.

  • Like 1
Link to comment
Share on other sites

On 11/9/2021 at 8:01 PM, Kathrine Jansma said:

So, Performance Viewer got around 15-20fps in that setting, Firestorm clocked in around 75fps, Cool VL Viewer around 80fps.

And you are 9 releases late on the Cool VL Viewer... Do try the current release (1.28.2.55): it got more SSE2 maths to replace some old floating point maths (old glh_linear code removed in favour of LLVector4a/LLMatrix4a maths)... 😛

However, as I understand it (looking at the code changes), LL's ”performance viewer” is mainly aimed at improving FPS smoothness while rezzing textures (by the use of threading of GL images creation), which won't show in the FPS rate after everything is rezzed, and at speeding up rigged mesh rendering, which would only show in a scene with many avatars wearing such meshes around yours (the problem being to find a way to test such a situation with a perfect reproducibility of the testing conditions: we'd need a test sim in Aditi with 20+ avatars logged in via a bot client...).

Edited by Henri Beauchamp
Link to comment
Share on other sites

Frame time is more important than frame rate. If you are averaging frame rate for the last second, and it puts out 30 frames in a second, but it does the first 25 frames in the first 250ms then the last 750ms is the last 5 frames, it's going to feel horrible like the FPS is much lower. SL could feel really good at 40fps if the frame times were consistent and it was using Freesync or GSync, but it needs to be in full screen to use both IIRC.

Link to comment
Share on other sites

1 hour ago, Flea Yatsenko said:

Frame time is more important than frame rate.

These are measuring the same thing (FT = 1/FR).

Quote

If you are averaging frame rate for the last second, and it puts out 30 frames in a second, but it does the first 25 frames in the first 250ms then the last 750ms is the last 5 frames, it's going to feel horrible like the FPS is much lower.

This is different: instantaneous frame rate/time against averaged one and variance of the average.

But I personally prefer high frame rates (>120fps) and a few hiccups while things rez, than low frame rates (60 or less) without hiccups...

Quote

SL could feel really good at 40fps if the frame times were consistent and it was using Freesync or GSync, but it needs to be in full screen to use both IIRC.

Hugh !  Do *not* use any form of syncing with the SL viewers: this totally kills all the ancillary tasks the viewer runs in its main thread/loop (which, sadly, also runs the renderer): doing so will kill your network transfer speed and all the decoding stuff (including image decoding), making your rez time skyrocket !

Until LL migrates the viewer renderer to Vulkan, and despite a few tricks (such as the threaded GL image creation in the ”performance viewer”, which, by the way won't work with all GPUs/drivers either), I'm afraid you will have to put up with frame rates ”hiccups”.

Edited by Henri Beauchamp
Link to comment
Share on other sites

12 hours ago, Henri Beauchamp said:

But I personally prefer high frame rates (>120fps) and a few hiccups while things rez, than low frame rates (60 or less) without hiccups...

I use Cool VL Viewer and Firestorm. Currently, Firestorm has a much lower frame rate, but 120fps would be wasted on my monitor. Firestorm also has a frame-rate limiter option, and I use the cinema/TV trick of setting that to half my monitor frame rate, which gives me a little bit of headroom. It's an indirect measure of the work being done, but my CPU and GPU both run a little cooler with that option

It's part of a long-running SL problem. We don't all have the same hardware. And some of the colour schemes that Linden Lab use in their viewer are not meant for the eyes of mortal men.

Link to comment
Share on other sites

2 hours ago, arabellajones said:

I use Cool VL Viewer and Firestorm. Currently, Firestorm has a much lower frame rate, but 120fps would be wasted on my monitor.

Again, in SL viewers, and given their renderer runs in their main thread, limiting the frame rate also limits your network bandwidth (which is especially important to download meshes and textures data), but also all the decoding tasks (including cache reads, texture decoding, mesh and texture LODs updates, etc) for the data the viewer needs to render a scene. By limiting the frame rate to ”avoid wasting power”, you actually degrade your whole SL experience...

Link to comment
Share on other sites

https://releasenotes.secondlife.com/viewer/6.5.2.566967.html

This viewer is fast! Please keep up the good work!

At a couple locations , this viewer is anywhere from 25% to 50% faster than the latest official as of today... even cranking RenderVolumeLODFactor to 4.0 (as a test), all settings at max except depth of field, this viewer managed to keep 140fps constant! (Same machine with current official would stay around 100 fps).

To see the max fps you may need to uncheck Enable V-Sync in preferences... 

There were a couple issues I noticed:

- When you tp a new location, leave and come back... no object shows rezzed.. leave and come back again, all good.... 

- Some issues with lights too... 

Great to see it moving forward!

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 818 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...