VRchat drawcall slow 2.5x?

Tested against the original Unity version, which had about 600,000 drawcalls (batches) per second under equivalent conditions, but only 250,000 drawcalls per second in VRchat world.

And the Cache miss rate is higher, but the RAM latency cycle is lower, which means each drawcall has more data attached to it.

The shader used for testing is liltoon.

If the standard Unity shader was used, the performance was reduced from 1.12 million drawcalls per second to 190,000 drawcalls per second using fewer features than liltoon.

This is six times slower…

What changes did VRchat make to the renderer?

I used a lot of skinned meshes and materials to test multiple light sources.


The extra passes generated by using more pixel lights will significantly and disproportionately degrade performance, and also create a new problem when seeing a mesh lit by multiple lights that will degrade performance over time.

For example, a grid lit with 4 pixels will have a raw performance of 270fps (Unity 2022) vs 122fps for VRchat, which will gradually drop to 100fps or even 80fps over time.


Even if there is only one main light, the drawcall is almost two times slower, and some are as slow as 2.5 times.

Mesh performance is also 20~30% slower, which is the gap between 70fps vs 90fps.

A lot of Skinmesh will swing the frame rate back and forth over time, from 580fps raw to 120fps~240fps in VRchat.


Graphics Jobs off? ???

Is this something that still needs to be spoken about?