Jump to content

Kathrine Jansma

Resident
  • Posts

    188
  • Joined

  • Last visited

Posts posted by Kathrine Jansma

  1. 14 minutes ago, Paul Hexem said:

    Any change in IP disconnects you on teleports and region crossings.

    Thats extremly unlikely for anything fetched from a CDN. Otherwise the CDN would need to do some form of channel binding, which is hard and breaks easily.

    It may be true for anything connecting directly to a region simulator. So if you used L7 routing you could probably detect the CDN cases and fully load balance them, while keeping the region connections to one link.

  2. 16 hours ago, Aishagain said:

    I find that Firestorm not only uses a LOT more RAM in a given location, it seems unable to detect the full 6GB, starting to swap to system RAM at anything over 4GB

    The 6GB of VRAM of your card are needed for more than just textures.

    e.g.

    • Framebuffers to render into ( maybe 100 MB, depends)
    • Shader programs
    • Vertex Data
    • Textures
    • Depth Buffers
    • and so on

    so clamping use at 4GB for just textures is probably reasonable. 

    The stuttering is more likely a different issue, related to how new textures are loaded, decoded, bound and transferred to the GPU, while old textures are discarded and removed, which is a little bottlenecked in the viewers architecture. 

     

    • Like 1
  3. Well, Discord hasn't exactly the best track record for GDPR compliance.

    https://www.cnil.fr/en/discord-inc-fined-800-000-euros

    But it seems Discord is the tool everyone defaults to these days. Popular often wins...

    /me feels old considering Usenet groups, IRC and Jabber/XMPP servers as antediluvian options

    Did anyone consider something like github discussions? Might have some benefits as it makes it easy to just link to the Linden Viewer code on github and other code focussed tools that might help to discuss code related topics?

    Communicating on GitHub - GitHub Docs

     

     

  4. 7 hours ago, animats said:

    In about 1 in every 1000 texture asset requests, the request times out.

    Maybe check if that aligns with the keepalive duration of the HTTP connection?

    The server might have killed off the connection and the client failed to notice. Sometimes the connection state can get lost in the byzantine maze of TCP handshakes, TLS handshakes and HTTP keepalive & pipelining.

  5. If you really want to dig deep into that kind of hiccups and slowdowns, on Windows, you can unleash stuff like ETW and WPR/WPA.

    https://randomascii.wordpress.com/2015/09/24/etw-central/ has a few fairly deep dives into Windows System profiling. This kind of analysis shows all the interactions between system components like network and filesystem. SL Viewers lack the necessary ETW trace points to really hook into that system.

    Usually for the viewer one can use the Tracy profiler to get some insights, but that stops at the process border basically, only looking at the GPU too. If one hooked up ETW, it would allow a deep dive from network driver through virus scanner and filesystem driver right into the GPU parts. 

    Most games do not have such a fat/intense network and disk activity for streaming and discarding random new content. So pure game profilers might fall short for general effects.

     

  6. I doubt DirectStorage would be such a big thing for SL style viewers. Games have assets on NVMe storage, so you can optimize to get the 3-15 GB/s streamed from those devices instead of the shoddy 100-500MB/s you often get for a single threaded access. And if you need to decompress a 3 GB/s stream of assets in real time, some GPU support is super helpful of course. But unless you have all the scene cached in an SL setup, your network pipe is typically faaaar away from anything like 3 GB/s, maybe you get 10 GBit/s in rare cases with fast fibre setups.

    If you have extra CPU cores around, you can easily do the decoding and I/O in a thread pool with an efficient async I/O API like io_uring or IOCP and  get some decent throughput. But getting the textures into the GPU for usage is crappy right now with OpenGL and needing to bind all the textures etc.

    Sure, if you set minimum OpenGL version to something newish (and not working on OS X), rewrite the rendering loop to use bindless textures and other modern tricks, you could benefit from a fast pipe that pumps data into the GPU memory for decoding/processing. But its more likely you would switch to Vulkan APIs first, so maybe LL has a look at the pipeline from Network / Cache to the GPU at that time and profile it a bit.

  7. 7 hours ago, animats said:

    his is more useful when you're not using the GPU for graphics, because it's going to take up GPU time that graphics needs. It's going to depend on the GPU. If you try this on a GPU with slow compute shaders, it's probably not going to be great and may be a net loss.

    It could be nice for Systems with an APU & GPU, e.g. Intel or AMD CPU with a graphics core plus some external CPU. A bit like Intels video transcoder.

  8. If you want to add it to an NSIS installer, its not all that much trouble to run a VC redist installer:

    !define VC_RUNTIME_2019_X64 "vcredist_2019_x64.exe"
    
    Section $(SECT_vcredist) vcredist
      SectionIn RO
      SetOutPath $TEMP
      nsExec::ExecToLog '"${VC_RUNTIME_2019_X64}" /q'
      delete "${VC_RUNTIME_2019_X64}"
    SectionEnd
    
    

     

    • Like 1
    • Thanks 1
  9. 9 hours ago, JeromFranzic said:

    And ya, I recommend a cooling pad with it. I think that's the only reason I can type this right now

    You might want to clean the fans/cooler after 2 years. Usually works wonders. I had an older Acer Aspire and cleaning basically rejuvenated it quite a bit (it felt like 20% faster/no more thermal throttling).

    • Like 1
  10. 1 hour ago, Henri Beauchamp said:

    to rez the world hyper-fast.

    Try it. Especially with a good network pipe and enough cores for the texture decoding it makes visiting a some shops with lots of textures awesome. Only all the shredded meshes of avatars that need time to assemble themselves properly are a bit annoying, when all the rest of the scene appears rapidly.

  11. Depends on your AV solution.

    At least Windows Defender does not care for Signatures. It might warn, but in details it lets you install whatever you want.

    Code signing is really just an indicator to show that a binary is really by the organization it claims to be created from. But if that organization is Evil Inc. it will not help against malware at all. Unless you explicitly had a list of trusted organizations configured or manually check it, thats basically useless as a defense.

    • Like 1
  12. On 2/25/2023 at 9:34 AM, sandy25 Quinzet said:

    Problem with not signed binaries is, some of these Antivirus applications blocking the not signed executables.

    If you just want to silence the Antivirus, you have a few options:

    1. Configure AV to ignore the signing part.
    2. Convince someone to create signed binaries
    3. Shell out around 200 €/$ per year for an authenticode signing certificate. There are a few commercial options for that.
    4. Sign the application yourself...

                See for example:  Using Powershell Authenticode Certificates to Self-Sign Application - Ipswitch

     

    • Like 1
  13. 9 minutes ago, Rowan Amore said:

    Would it be difficult to rework wear so it didn't knock something off?

    Just lock the current attachment via RLV ;-). 

    "Wear" basically stopped being useful (enough) once "Add" was added. It just clutters the menu and is bad UX. LL should really have some decent UX people streamline a bunch of the UI flows in the viewer to follow modern SL habits.

    But maybe make "Add" the default and only "Wear/Replace" when pressing Shift?

     

     

  14. On 2/15/2023 at 5:46 AM, TheBenchmarker said:

    Moving Cache to secondary drive and maxing it out 9984MB

    This might be a side effect of SATA SSDs, which have a much smaller command queue than NVMe ones. The other effect might be that the fsync()/flush file buffers calls are typically per drive.

    A typical advice is to add a virus scanner exclusion for the Cache directory, as that helps quite a bit.

    • Like 2
  15. On 2/12/2023 at 10:04 PM, animats said:

    "Avatar stuck at pink cloud" I don't understand yet.

    On reason that happens is when some mandatory body part is lost from the restored outfit.

    E.g. shape, eyes, the old style hair. Once you put it on, the avatar rezzes fully. Maybe viewers could double check that the mandatory parts of an Avi are restored on load and offer some help when that fails?

    But thats probably not the only reason it can happen.

  16. A mid range NVIDA card would have been a better choice for SL. The Vega burns quite some energy, if you run it on Linux it is halfway decent, on Windows it gets better with the newer drivers. 

    The performance is kind of acceptable, but NVIDIA cards usually blow it out of the water for OpenGL like SL. For example, when visiting some club with 20+ AVs around my FPS tend to drop to 15-25 or so (with AMDs older drivers it was like 5-12 fps), while Henri reported 70fps with his older 1070 card and same graphics settings (but a little faster CPU) when we looked at some issue a few months back.

    I would probably get an NVIDIA card instead if it is specifically for SL. 

    • Thanks 1
  17. On 1/15/2023 at 3:33 PM, UnknownPedestrian said:

    Update your chipset driver and graphics driver from AMD and Be happy that they finally patched GL_ATI_meminfo back into the drivers! yay compatibility!

    At least AMD Driver 22.11.2 fails to report proper memory on Windows if both a 5700G APU & Vega 56 card are in the system. I get stuff like 22 GB of VRAM reported in that combination.

     

  18. 16 hours ago, Jackson Redstar said:

    I really cant see how moving cache files around would help all that much

    In theory you can break every kind of disk performance if you issue frequent fsyncs() to the drive. Or if you disable the write cache on HDDs, e.g. if you tried to use SL on a Windows Domain Controller. 😉

    Other example: The Firefox browser used a gazillion of fsyncs() for its internal SQLite Database (https://bugzilla.mozilla.org/show_bug.cgi?id=421482) which made it a total mess. The cache layer of the SL Viewer might have similar lurking issues with fsyncs.

    Pushing the cache to a different drive if you have such fsync() storms running might help.

    The generic filesystem code of the viewer is pretty dumb, it does not really use the high performance async I/O options you would need to really get the benefits of a modern NVMe SSD. Usually that does not matter, but sometimes it does. Modern I/O works best when you have lots of operations in flight via thread pools or modern async APIs like IOCompletionPorts/io_uring. The viewer just runs a small threadpool for disk access, far away from the queue depths of 65536 possible parallel operations a typical NVMe SSD supports. Most of the time thats just fine and fast enough. But you could do better.

  19. The requirements probably confuse hyper threads vs. cores.

    A typical CPU core these days allows Hyperthreading, so for Intel & AMD you quite often get 2x the hyper threads vs. cores. So a 4 core CPU with 8 hyperthreads should be fine.

    Recent work on the performance viewer allows the viewer to distribute work to a thread pool, this improves a few things like faster rezzing speeds for texture heavy environments and others. So having extra cores helps to get a better experience.

    Why 8?

    That is probably a rule of thumb thing. To get an optimal experience a lot of variables need to be balanced. If you have a really fast network, you want many threads to decode the textures fast as well. If you have a slow harddrive you want more threads too, as the worker threads for disk access block longer. And if you have a good graphics card that offers nice multi threaded support (like NVidia cards usually do), you might also want more threads. Add one or two threads to make your virus scanner behave and any other background things, and you reach some number in the 4-8 threads range. With just four hyper threads, you might not get any real benefits from the new thread pools. Basically 1 for AV, one for the mainloop, one for the disk writer/read thread and one for texture decode and a bit for extra GL threads. Of course, the operating system will allow more threads to run, but the best performance shows when you have about one application thread per real hyperthread of the hardware.

×
×
  • Create New...