[1236] Block avatar download by Texture Memory size
tracked
Joker is punk
Currently we can block avatar downloads by total download size, which does not account accurately for texture memory usage.
Texture memory usage is a high priority concern. Please allow us to filter avatar downloads directly by texture memory size.
Log In
Tony Benson
you know that ruins it for everyone
DarkSwordsman
Tony Benson: How does it ruin it for everyone? Please elaborate instead of just saying some random statement.
Patroll
It's been a year. VRAM usage seems to be often one of the biggest bottlenecks in the game. We need solutions. I don't want to block all very poor avatars because my PC can handle most of them, but it absolutely cannot handle some people having 300 MB ... 500 MB memory textures. Saw somone with a 1GB texture memory on an 80 people event. I always take a couple minutes after joining a big instance to manually click through all very poor avatars to look through their VRAM stats and hide them. This is annoying
DarkSwordsman
Patroll: I went to an event where I showed only medium or higher. Going from that to showing all (+ custom animators), I went from 30-36+ FPS to 10-15 FPS. At this point, I might just not show very poor avatars anymore, unless there are situations where I need to toggle it off. Or alternatively, it'd at least be nice to have a "temporary show all" that ignores the "poor or worse" option just in the instance, until you join a new world.
Reverse
Can't wait for this feature to come out
Strasz - Community Team
Thanks for the suggestion!
Now that we've implemented VRAM metrics for avatars, our next step is to add in some new performance settings like this.
We'll want to make sure we get it right, so it's easy to understand for most users (and it works as intended). We'll give it some design attention, and hopefully get it out some time after release. I don't have a precise ETA yet, though.
Zarniwoop
Strasz - Community Team: If possible, I think downsizing textures so the avatar fits within the set avatar VRAM limit would be the way to go, instead of hiding the avatar completely.
Joker is punk
I agree with this
Juzo~
Strasz - Community Team:
While I think this is fantastic, I hope that the requirements for a green avatar and so on are not too extreme. I've heard discussions of 40 MB of VRAM being the new green possibly and thats just too tight for 8 material slots if you are not doing solid colors for your avatar.
On an avatar with a basic mask, normal map, color map, and emission Map (all things I think are pretty dang reasonable) at 1k resolution you are already breaking 5 MB per material slot. If you start somewhere I hope you start with Excellent at 40 then Good at 60 at a minimum.
I understand the goal is to reduce VRAM hogs but I'm not concerned about avis with less than 100 MB of VRAM usage. It's the high end ones that kill. Going too tough on VRAM for Green will be really rough for avi creators.
DarkSwordsman
Strasz - Community Team: Thank you! I am desperately waiting for this feature. VRAM and system RAM usage is the main reason my game will crash or nearly freeze, so it would be tremendously helpful.
DarkSwordsman
Strasz - Community Team: I actually just realized that you posted this nearly 14 months ago.
Can you guys stop promising things that never happen? How hard is it to literally just put in an input field in the settings and then
if (textureMemory > setting) blockAvatar();
I know people say that as a joke, but this unironically shouldn't be that hard, no?Like, you already have the system in place. Is it not modular enough that this sort of system couldn't be implemented in an afternoon, and released within a week?
Tiոi
DarkSwordsman: I would also very much like this to get a little priority. My hardware can handle more than the average steam user, but it's no NASA computer. :(
Scout - VRChat Head of Quality Assurance
Merged in a post:
Add VRAM used as an avatar perf metric, and add VRAM limit option
CyberKitsune
Hello!
This canny is similar to "Add VRAM to in-game Avatar performance view" but with a few differences.
First off, some background. Even on a moderately good CPU and GPU system, once an instance gets big enough that VRAM gets full on your GPU, you will see massive performance losses. This is because once your GPU VRAM is full, the GPU will overflow into system RAM and have to constantly poke the CPU to copy the RAM back and forth. Faster RAM can help this but it's still a huge performance hit.
While VRAM usage isn't only due to avatars, avatars do play a large role in filling up VRAM.
The first part of this feature request would be to show avatar VRAM usage under avatar performance information. There is a fundamental issue with avatar VRAM use in that it will likely vary a lot and not be able to be calculated at upload-time, (in particular due to shaders taking a varying amount of VRAM while they run) so it may make sense not to make it affect overall avatar performance ranks, but maybe affect a different individual "runtime rank" -- It may be even wise to display it in the "extended nameplate" (the icons that appear in nameplates when your QM is open)
The second part of this request is then to be able to set a per-avatar VRAM limit before rolling into a fallback / disabling avatar. This would be independent of the current maximum allowed performance ranking option, as I feel like VRAM used at runtime would be a rather distinct factor compared to the other performance factors.
Last, similar to the new avatar hider being mostly distance-based, having an automated system that hides avatars (farthest first) as your VRAM nears full would also be ideal to help simplify VRAM management. The VRAM performance penalty only really becomes a factor when it reaches near full. The "full point" being customizable would be nice too, as sometimes external applications also need access to VRAM so being more conservative would help in those situations.
alex ͡° ͜ʖ ͡°
yes please, saw someone that was using 1gb of texture memory size today i wish never to see a avatar that bad again and neither does my GPU want to see a avatar like that again.
Scout - VRChat Head of Quality Assurance
marked this post as
tracked
ZenithVal
The problem is don't know VRAM without first downloading the avatar as it's calculated in realtime.
Can't trust the user to upload a real value either.
An option to auto hide after calculating the value would be nice though.
Ikbenmathijs
ZenithVal: problem with that is that vrc downloads the avatars, loads it into RAM and then calculates the performance rank. If you block by performance rank your RAM usage will still be insane because it takes a bit before it gets loaded out of RAM again. I upgraded to 32gb just because of this but you really shouldn't have to just to play this game.
Since you can't trust the SDK or a single client, maybe they could make a system where when a new avatar gets uploaded and then downloaded by several clients they all report back the vram usage and performance rank to the server and then store that so the avatar doesn't have to be loaded in just to check the performance rank and vram usage
ZenithVal
Ikbenmathijs: Group sourcing the information would be a great idea if there's enough users to source from. And if there's not enough users just resort back to auto hiding & unloading after finding out the vram use normally.
С
Сomfy
ZenithVal: They could automate calculating it serverside on upload if they wanted to, but that's not going to happen.
ZenithVal
Сomfy: Loading every single avatar uploaded/updated server side & assigning it a value would take an absurd amount of resources. It
might
be possible with VRC currently but it would not scale well for the future as the platform only gets bigger.Table
ZenithVal: Preventing downloads is tricky, but you
could
forcibly unload/block avatars from loading again once a user-determined texture memory threshold is reached during initialization of an avatar, which would
help with keeping it down over time.DarkSwordsman
ZenithVal: I guess this is outdated. Incase you didn't know, VRChat already implemented a solution to calculate avatar stats server side, so you can block avatars without needing to download them.
Patroll
Please add this. The constant VRAM bottleneck on big instances is absolutely awful even for the most powerful GPUs.
Joker is punk
same request from main feedback board
Load More
→