Developer Update - 2 May 2024

On the topic of custom home instances, is the ability to set a custom capacity for an instance anywhere on the roadmap? Ideally I’d want my home to have a hardcap of 1; I’d feel a lot more comfortable defaulting to blue instead of green if I could still keep my calibration/prep private.

Everything so far is pretty cool, but I’ll give my feedback on the world.

I feel like the ‘home world’ is becoming more like the hub world than a home world. I like the new world, but would prefer it as a Hub world and have new players incentivized to go to a hub world again where they can meet other new players. To me a home world would be like a smaller cozier area where your friends join you. This feels like being in an empty mall.

Also I didn’t even notice that there is a page 4 on avatars, either there should be more avatars per page, or the page tabs should be a bit more compressed.
The only other thing really is the music player doesn’t seem to loop.

Also, will VRCConstraints be allowed by default on quest? I’d like to update one of my avatars with it but only if it’s not locked by default like ‘avatar animation’ type of safety setting

In fact, I personally believe that constraints have a far greater impact on performance than other items, and few people realize that specific constraint usage can have extremely outrageous consequences.

If we hadn’t tried to track some public avatars, it would have been difficult to realize that some of the benchmark values were not effective in predicting such usage.

In the early days, some avatars carried 16-32 dancing characters with world constraints, which would cause serious frametime timeouts regardless of whether or not the dancing “army” was turned on.

At first I was completely misdirected by physbones for some reason.

Subsequently, some of the automated tools that assisted avatars in dressing were heavily abusing constraints.

With tracking, it became clear that the skeletal hierarchy had a significant impact on the performance of constraints, and that many people were not exploring these issues deeply enough to find them.

This feature is not measured in JustSleightly’s Notes, which in practice requires an additional 30% or more of frametime.

However, a few more specific uses of the feature amplify it considerably, leading to significant performance hazards.

To this day there is still a significant amount of “problematic” usage, and these avatars implicitly cause a significant amount of frametime degradation.

In the end, if an avatar has 2ms of CPU frametime, then 1.3~1.5ms is consumed by it.

For example, the way the image below is used, in the editor, it reduces the fps to 46fps, but the actual execution is about 109fps (32 avatars, each avatar with several closed avatars).

user_01
user_02

Only 1 constraints is occupied in the statistics.


In a scene without Udon for about 1ms

If an avatar constrains thousands of bones

This will ultimately result in a difference of 1.4ms (700fps) and 2.7ms (370fps) (+0.4ms and +1.7ms)

However, in actual use, only increasing the number of constraints can significantly reduce the total number of bones. The organization of some structures will cause an effect that is several times greater than the general baseline measurement.


Partially collected data


In the scene without Udon, there is an Avatar that uses many constraint . It has a relatively complex structure. An Avatar causes a CPU frame time of 11.5ms (this constraint is estimated to be 11.1ms?).
(612 constraints)
In scenes with Udon, the CPU frame time is estimated to be 12~13.5ms.
Some use a large number of constraints (ranging from ~80~200 constraints), the frame time is roughly between 2ms~3ms, and the constraints account for about 80% … (about 1500~3000 bones)

The download size of such avatars is usually between 80MB and 150MB.

Sometimes turning off a few players’ avatars (10%~20%) can be very effective in improving the frame rate…

1 Like

The input update

WOOOO YEAH BABY THATS WHAT I’VE BEEN WAITING FOR WOOOOOOOOOOOOOO

so hyped for better index fingie movement

2 Likes

In the December update, you mentioned you’re still working on dynamic foveated rendering. Is this still being worked on?

More and more people use headsets with eye tracking. DFR and VRC would be a perfect match, because VRChat is such a performance heavy game, and DFR can reduce the amount of GPU performance needed by up to 40%. And the fact that this already exists for OpenXR and existed back before EAC proves that it’s possible.

2 Likes

Look, I like how you updated the home world but I got a question regarding an issue.

Why not the hub world?

I think they’d have to port the game to OpenXR to do that? Considering they’re upgrading Steam Input, I don’t think we’ll see DFR on PC for quite a while. xD
Standalone however I think the Pico/Vive build is already OpenXR? Not entirely sure.

Variable rate shading I think they could do though? It was mentioned a looooong time ago. Developer Update - 2 September 2022

I love this so much, and I am very excited about the skeletal input!

Is it too late to ask for the ability of constraints to go above the value of 1?
E.g., With a value of 2, the constraint rotates twice the amount of the source bone.

1 Like

yeah I really look forward to this, I so much want to make proper forearm twist bones and get rid of the residual elbow rotation

1 Like

not sure if you have a actual point to the post or if your just posting stats. No issue with either though :) The main reason normal unity constraints don’t stack well performance wise is due to both a sudden perf decrease at about 700 ish in a scene, and the fact they are all globally managed by a single instance so they cant be multi threaded by design

Just for clarification sake, for the person working on this does this mean gesture overrides are rebindable or does this pertain to things related to hand/finger tracking? Also would there be any options in game to enable/disable finger tracking?

1 Like

I think there will be a “Free edit” box to allow you to go outside the 0-1 range!

(No promises though🤞)

3 Likes

Because I am replying to the first few parts about the impact of avatar performance.


I don’t have the Unity source code so I can’t confirm whether the design is reasonable, but I don’t want to simply talk about whether a part is multi-threaded or single-threaded.

However, Amdahl’s law would be a good knowledge point to understand, because some current implementations have too heavy a serial load and eventually serialize it to appear single-threaded.


As a matter of fact, some problematic usage will exceed the data measured by some benchmarks earlier.

So some of the 600~700 constraints around 1.7ms or 2.4ms do not reflect the true impact.

Actually +1’ing this - would love a high quality hub world redesign, perhaps one including even more community promotion. The hub world was my first place I went as a VRChat newbie back in the day and it was always way more chill than The Black Cat, which definitely turns people away from the game!

Okay, I do have feedback about the new VRChat Home - The new default song is pretty but it makes me cry. It feels way too nostalgic and regretful especially if you’re like me and your time on the game has gotten sadder over the years

I haven’t checked the new world out yet but the mention of music is reminding me of star trek enterprise with it’s theme, and marathoning it…

It’s been a long while, getting from there to here…

Has the hand tracking been added to the PCVR version yet or has that update not happened yet?

1 Like

Very interested in VRC Constraints. It’s mentioned specifically for avatars, but will this also be opened up to (and recommended to worlds as well?

We’re working on it! SteamVR Input 2.0 | Voters | VRChat

Not initially! VRCConstraints (name not final) will initially only be available for avatars.

1 Like