Max Avatar VRAM size
interested
Jewordi
Add a performance metric like the one shown below in the screenshot but instead allow us decide how high an avatars VRAM usage can be before its hidden. I feel this is the best way to implement this because not everyone is limited on VRAM.
Log In
✩Frisk✩
The method would though cut you out of most contents as VRChat is static with their rating and not dynamically checking if the avatar your viewing is actually emitting out that current vram value. For quest users in the other hand would be useless as most are trying to view them all like a PC user can.
But the option to have that would work wonders
HostileLogOut
This would be extreamly good to have. most people uses a gpu that only have 8gb. and in general your often at 2-3gb just by being in vr. so your actual vram left is just roughly 5 gb. ontop of that it's super easy to implement a feature like this
MyroP
How about automatically determining that setting based on the VRAM capacity of the GC, and maybe also based on the max instance capacity?
Mostly because I feel like that's the kind of setting we don't need to change so often, it also wouldn't clutter the setting menu with more settings and make it more user friendly.
Lastly, VRAM usage is already included in the performance rating of an avatar.
DarkSwordsman
MyroP This should be a setting that users can tune to their usage and experience, especially since it will be blocking avatars outright.
Also, yes, Texture Memory is included currently, but: 1. It doesn't include Mesh Memory, and 2. It requires flat out blocking all very poor avatars, which isn't realistic if you want to engage in a lot of spaces.
ᴋᴀᴡᴀ
MyroP I believe both approaches can coexist.
Tony Benson
This is for pc only then
moonorama
Perhaps unrelated, but maybe another aspect of this could be a texture “downscaler” of sorts? Basically, you set your max texture size in game, let’s say 2k. Then in game, if there is an avatar with 4k textures, they could get downscaled/reduced to a smaller size, like 2k? I sense that would be pretty difficult to do, but just an idea I had.
buzer ~
moonorama: Yeah they don't even need to downscale anything, they can just discard the top level mip map (or few).
DarkSwordsman
moonorama: This is technically called "mipmap streaming" or "texture streaming", though it's not exactly what you want. But I do agree! There is a feature request open for it.
It would be great if we can limit it client side and not load it into VRAM. I really like it.
Cherry․Gum
moonorama Isn't this a basic functionality of Unity? Usually, you can control the texture resolution (Full, Half, Quarter) with a simple script in your game and this can also be changed in run-time
D
Docteh
I have a proposal for the community, if VRChat doesn't want to just refer to this as VRAM, we should:
1) track down Tupper and see how much VRAM his avatar uses
2) Only discuss VRAM usage in multiples of that.
"If you can't make your avatar fit within 3 tuppers, I don't want to see it"
Tupper - VRChat Head of Community
Docteh: 30 megs for my Runa, 25 for my "stream" avatar IIRC.
owlboy
Tupper - VRChat Head of Community "3 Tuppers of memory ought to be enough for anybody."
Tupper - VRChat Head of Community
interested
Might need a little bit of extra love first (mesh memory usage needs to be counted!) but this is a good idea!
UX is a challenge here, as "memory usage" is a pretty complex thing for many people to understand vs file size. We'd have to explain it in-line without being confusing.
Also, it would mean that we'd need to set a default, so there's _that_ can of worms. 😅
Either way, definitely interested!
ʙɪɢ․
Tupper - VRChat Head of Community: Is there a reason why it can't just be "Max Avatar VRAM Usage"? I feel like the main reason "Memory Usage" is confusing is because it shares a word commonly used for storage/file size, whereas VRAM is just its own thing and can be explained further underneath if it's really necessary.
Also, if the team is worried about bloating the settings with too many "power user" options like this, maybe they could just be under the same "advanced options" dropdown that the QM uses? Just a thought, I wouldn't personally mind that.
Needing to come up with a good default is a valid concern though, that's fair.
OctoFloofy
ʙɪɢ․: really just should call it vram usage then. Please never use the term memory usage. It's a pain to constantly explain this to people what it actually means. Then we get an actual employee of some big tech company again trying to argue that it's wrong what we say lmao
Fallen Ninja
ʙɪɢ․: Strong +1, "memory" is ambiguous, while at the very least VRAM could have a short explainer in the docs (either you already know what it is or you don't, there's far less chance of confusion).
Nіyah
Tupper - VRChat Head of Community: I would avoid "memory" to be used in the name ; calling it VRAM / GPU Usage mayhaps as others has said would be better, in any ways that'd be great ! :D
Tupper - VRChat Head of Community
Fallen Ninja: FWIW, I think "VRAM" is even more confusing. Remember, half our userbase does not own a PC, and likely do not know what RAM is, let alone VRAM or a GPU. "Memory" is the more friendly term here.
This, of course, is a challenge left to the UI and UX experts if/when we work on this feature. I'm simply listing the challenges that we've run into before with similar features, and coalescing feedback we've received as a result of those implementations.
Listing it under "advanced options" might work. I think we'd have to handle mobile platforms differently anyhow, since we know _exactly_ how much memory those platforms have in many cases.
ShingenPizza
Tupper - VRChat Head of Community: seriously, you're just creating problems for yourself.
the correct way to go is to call it the correct way and teach people what words mean, but whatever.
call it even "test setting #1" and hide it under a config file for all i care.
also it may not count mesh vram usage for now, it doesn't matter. limiting them by textures is more than enough.
just give us the setting, please.
this is the most important setting for VRC's performance i can think of. well, one that doesn't require creating complex performance-counting system.
ps: no, blocking "very poor" avatars is not a solution, until your performance rank system actually corresponds with avatars' performance. especially that VRAM usage is really a whole separate thing altogether.
ShadoxMiyazaki
Tupper - VRChat Head of Community: At the very least we much would like it if it was even just an extra warning on top when trying to show those extra high vram avatars.. i.e. "Like are you really really sure that you wanna load that 100+ or 200+ vram avatar over there??" ^_^;
anatawa12
Tupper - VRChat Head of Community: How about "Texture Memory", as used in Avatar Performance Rank System? or Are you planing to include other components on VRAM?
#かなたん
Tupper - VRChat Head of Community: I think most people think that it is not necessary to be able to limit the avatar display strictly by VRAM usage, and that it is sufficient if the TEXTURE MEMORY item shown as avatar performance can be limited.
Therefore, my opinion is it would be sufficient to simply call "Max Texture Memory Size".
SuperFlue
Tupper - VRChat Head of Community: I think you are looking at it wrong with how confusing the term is. First of all, all the terms are "technical" even "memory" is a technical term for most users.
But a simple test for this is, what result do you get from Google if you search for "Memory" vs searching for "VRAM"?
If users care to understand then it's more helpful to use the actual relevant term so that it's possible to look it up accurately.
Memory is far too generic term to be useful in this case.
And also advertising for computer generally advertise memory and RAM interchangeably. So calling VRAM as memory is only going to add to the confusion.
DarkSwordsman
Tupper - VRChat Head of Community: Can we stop preventing feature from existing because of users possibly not understanding what a feature does?
It doesn't have to be "in-line". Why not just use tool tips? Is that not what they exist for? Why are you overcomplicating this?
Swingly
#かなたん: Tbh I do think they'd want to expand on the texture memory limit with mesh memory (and perhaps shader memory?) as well, which would make "Texture memory" incorrect. "Graphics memory" I suppose encompasses everything though.
DarkSwordsman
Swingly: Yes, VRAM. Everyone knows what VRAM is and we shouldn't rewrite things that are simple and straightforward.
#かなたん
Swingly: If they want to limit it strictly by VRAM usage, they would have to take it as a new performance metric...
Unless there is a calculated value for each avatar, users will not know how to circumvent the limit even if it is limited by VRAM usage.
Therefore, it is my opinion that using what already exists as a performance metric would be less expensive to implement and more effective.
Well, I understand that they want to limit including the number of heavy particles, etc., but I feel that when weighted against the cost of implementation and UX, it is not clear that they will get the results VRChat team spend.
Jasper Raine
Tupper - VRChat Head of Community: Honestly I would set the max VRAM per avatar setting to be 256 MB by default. This is already really high, but is a good starting point. Another option could just be double the amount that makes an avatar "very poor."
Tupper - VRChat Head of Community
Jasper Raine: We'll determine the default setting by looking at hardware surveys and data rather than feel. 😅
Tupper - VRChat Head of Community
anatawa12: We will include mesh data as well as that is a major contributor to VRAM usage.
Tupper - VRChat Head of Community
DarkSwordsman:
> Everyone knows what VRAM is
I challenge this assumption! Our UI and UX has to address as many users as possible, and over half of our users are mobile/Quest users -- and way more than half of our new users are in that category, too. Those types of people are typically users that don't worry or care about things like memory (considering how often those users get confused by RAM vs storage). They have to be part of the consideration.
It probably isn't a hard problem to solve for one of our experienced UX designers. If I had to make a call now (and it isn't my job to do so, it's just a fun thought experiment) I'd probably just use "memory usage"? idk!
Importantly:
This isn't what's preventing this from being worked on.
It's just what I'm curious about and was thoughtful about at the time of the feature discussion. The item is still marked as interested, which is our status for "huh, cool idea! let's see if we can get to it eventually."Additionally: There's no need for aggressive or confrontational tone or language. Please try to avoid that.
As usual, what's preventing this from being worked on at this very moment is that higher priority items are currently using our resources. This is almost always the reason for something not getting immediate work!
DarkSwordsman
Tupper - VRChat Head of Community:
First of all: sorry for the spam of like 5 replies. It told me there was an error and I just kept retrying assuming it was the servers bugging out.
I'm sorry for getting heated, but I hope you understand how incredibly frustrated I am that I have been wanting this feature desperately for over a year and I read stuff like "UX Challenge", despite knowing the
functionality
can just work regardless of UX for the input.This feature would single-handedly solve most of my performance issues in dense instances. I can handle lower FPS even due to CPU limitations or bad animators, but I can't handle when my RTX 3080 only has 10 GB of VRAM and my game nearly freezes or I can't open my overlay. It actively ruins my experience, and I spend more time managing safety settings/blocking avatars
AFTER
loading them, than just enjoying VRChat.I have a 3950X, 128 GB of RAM, and an RTX 3080. I should not be hitting < 1 FPS, and I shouldn't have to block most of the avatars in an instance just because some of them have over 70k polys or a couple unloaded lights.
I'm trying to emphasize to you how important this feature is and how useful it would be, and I am recommending that you at least push the basic feature up in priority:
- An Input that says "Texture Memory Limit".
- A toggle above it that is disabled by default, so you don't have to worry about a default limit for now.
This would get the functionality out and immediately start to help users.
Happinessఌ
Tupper - VRChat Head of Community: How about adding an "Advanced" tab with performance limits that we can adjust ourselves?
Kind of like when you tune graphics settings in games, there's usually an advanced tab, not everyone knows what each graphic setting is or does, just like not everyone knows what VRAM is, which is why they are under advanced. I guess presets are a thing too.
Just an idea!
Tupper - VRChat Head of Community
Happinessఌ: Are you saying that the ranks and display should stay the same, but you can access a big screen of sliders and number input fields that lets you set a "don't let avatars go past this and hide them if they do" value for every avatar performance property?
I do not (personally) want to let people make up their own performance ranks. Those numbers are chosen with purpose and intent -- they show people what we expect from an optimization standpoint. I don't think you're asking to change perf ranks yourself, though.
Happinessఌ
Tupper - VRChat Head of Community: Yup the first part is exactly what I mean, not asking to change performance ranks themselves, I understand their importance.
It would basically allow me to show Very Poor avatars without seeing the VERY very poor avatars. In my opinion, on PC this would be a great addition, we all have different PC's, some can't handle what others do and same the other way around.
I see this working on mobile too, but with much tighter limits. Since again, hardware differs.
It could be an "Advanced" button that pops up a section where we can adjust these limits, just so that the menu isn't flooded from the get go with a bunch of stuff that the average user doesn't understand.
I personally want to see as many of peoples avatars as possible, and having something like this would really help. Showing Very Poor avatars by default would no longer present the risk tied to the avatars being able to go infinitely beyond what I'd personally be okay with.
lackofbindings
Tupper - VRChat Head of Community: What you are discussing is entirely outside of the scope of the feature request. I don't know how this is even a discussion, the measurement already exists in game and it's already called "Texture Memory". And the default should be "Disabled". There is even already a control in the options that is exactly what is being requested but for download size.
If you want to expand the scope of this to all sorts of other fantastical things later that's fine, but do so
after
implementing the simple feature.Honestly reading this whole thread brings to mind the scene in Hitchhikers Guide where the proto-humans are struggling to invent the wheel because they can't stop arguing over what color it should be.
Tupper - VRChat Head of Community
lackofbindings: Notably, if the lore is to be believed, we're all descendants of said telephone-cleaners and hairdressers, so respect your elders. :)
Including mesh memory is important, because it can have a big impact on memory usage. Not counting it is essentially lying.
UX and UI is also important, because if the only people that understand why an avatar is blocked by default is the most advanced users, our non-power users get even more confused than they already are about why an avatar is blocked, turned into a fallback, an imposter, or god knows what.
Finally, the default value is also important, as it effectively establishes a soft cap on VRAM usage, so we need to gather data to see where the current state of things lies, and then make a call on where we want to draw the line.
On top of all that, it isn't as if we had these problems solved right now, the feature would bloop into existence. As I've noted in this thread
several times by now
, the primary thing holding this back by a few orders of magnitude is higher-priority work reserving resources.The sidebar I was holding with Happiness above is not holding things back, and was merely me responding to good feedback that deserved some thought.
Regardless, thank you for your post, and I appreciate the callback to probably my favorite book of the "trilogy."
Fairplex
Tupper - VRChat Head of CommunityI
I do agree with you that counting meshes VRAM usage is as much important as textures VRAM usage. I've seen avatars meshes taking more VRAM than their actual textures! So calling this feature "Texture Memory" is not really perfect in my opinion. For me that makes more sens to call that feature "VRAM Limit" or "GPU Memory Limit" so everyone know that this is directly affecting the GPU Memory. And for people who dosn't know what is this, a nice tooltip can describe that :)
DarkSwordsman
Tupper - VRChat Head of Community "our non-power users get even more confused"
Then make it a toggle + limit. Have it off by default so non-power users aren't confused unless they choose to turn it on, and set the default value to 150 MB or 250 MB (VP or VP + 100).
Including mesh memory wouldn't be too hard. In the tooltip you can say: "Block Avatar over this VRAM threshold. VRAM for avatars is defined as Texture Memory + Mesh Memory."
I also want to point out that you literally have an experimental feature with a confusing name, which is then clarified by a tooltip. Please, for the love of god, stop talking about UX.
The limiting factor is other tasks taking priority. That's it, no? Then lets stop worrying about UX in this thread. Just don't let UX be a blocker for this feature, please. I'm begging you.
If you have other priority tasks and it takes time to make this feature, fine. But do not get hung up on UX. Implement mesh memory, and then implement this feature as a toggle. Nothing more.
DarkSwordsman
Tupper - VRChat Head of Community "I do not (personally) want to let people make up their own performance ranks."
Okay, so... what are you trying to say with this?
We already let users create a custom Safety Setting. What would be the difference if there is a separate section of the UI under an "advanced" section, which allows you to create a custom threshold to block avatars by?
It's literally my feature request of Granular Safety settings, which is currently tracked. https://feedback.vrchat.com/feature-requests/p/granular-safety-settings
It's a local block based on each stat. This goes in hand with the ability to block avatars over a certain Texture Memory threshold. Though I guess if we get VRAM blocking, there wouldn't really be a need to block per granular avatar stat.
ᴋᴀᴡᴀ
Tupper - VRChat Head of Community
>many people to understand
this only needs to be understood by avatar makers and advanced users who want to fine-tune settings.
normal users may enjoy their "poor" rank w/o getting into details.
green-ranked avatars most likely never hit any sane value of user-defined vram limit anyways
K
Krazen
Tupper - VRChat Head of Community
Ironically enough, I actually got confused by the new measurement because I thought this now meant all VRAM usage (as opposed to only textures so far) and not system memory.
Blocking based on VRAM would actually be more useful in my opinion as VRAM usage seems to be the primary performance bottleneck in instances with many avatars around (often leading to entire freezes once VRAM fills up and system memory swaps start to happen).
And yes, there should be a default indeed. VRChat keeps getting bad rep by people for bad performance, even though it is clearly not the game that is the issue, but the assets that people are creating.
etikat
TLDR: UI is too complex for users to understand and adding a singular option to block based on vram would make the game unplayable but its a good thing they added a perma visible vbucks counter.
Tupper - VRChat Head of Community
etikat: as much as people like to meme it, i am not the sole developer or Judge Of Features for VRChat! I am also, quite often, wrong
I can see ways this could get implemented, but I personally think "slap in a slider right quick" isn't doing the problem its trying to solve enough service. If we implement mesh size too, and then make the limit based off the sum of mesh and texture memory estimates... that'd be pretty good!
We could just call it "Max Avatar Memory Usage". I do worry about people getting confused -- I can't count the amount of times I've had to correct people stating that memory usage is filesize (or vice versa). Probably just a wording thing...
OctoFloofy
Tupper - VRChat Head of Community: would just avoid using the term memory because of this to begin with. Would just use VRAM instead.
DarkSwordsman
Tupper - VRChat Head of Community: "Slap in a slider" is literally the solution here. You just implement it, and then wait for user feedback. If the setting is too confusing, you try to understand WHY it is confusing.
Your UI/UX should come down to the interface itself and how the UI feels to use. Whether or not a user would be confused by the word "VRAM" is a completely separate thing, and frankly is a non-issue.
Swingly
Tupper - VRChat Head of Community: Good ol' crunch vs no crunch compression argument. xD
Less filesize, not less graphics memory usage.
Pappekönig
I saw a avatar in public with 30MB download size that unfolded into a 1.3GB VRAM avatar. That kills you when playing only with 8GB total VRAM on your GPU.
Please implement.
SexualSpaghetti
With how crazy some avatars are getting (saw a friend with a 800mb vram avi...) this option would be great along with an option to opt friends avis in/out of hiding their avi based on VRAM size.
As is now, that 800mb vram avi is lumped into the same group as much more optimized "very poor" avis.
Load More
→