Jobify the Mesh API call


This is a very performance related request so I totally understand if it’s not your top priority.

I have a very efficient job system render loop that use ALINE for large scale debugging, how large? Well…

At this point I realize we are bottlenecked not by the rendering, but by the SetVertexBufferParams calls. By how much?

As you can see from the peaks, the more my view frustum move around, the more SetVertexBufferParams cost. Beyond that, we pay a constant ~6ms for SetVertexBufferData.

These calls can be jobified with MeshData API, my guess is you are aware of them but haven’t got time to investigate (I don’t like how these API work but at least they are fast).

So it’s something for your consideration :slight_smile:


Yeah, that call is annoyingly slow. I might have to do something about it.

Out of curiosity, how many boxes do you think you are rendering per frame?

around 20000~50000, closest lod has about 4000 boxes (things are faster if I use cross or line)

In terms of API, I find plain SetVertices/SetIndices to be faster than Mesh.SetVertexBufferParams, MeshData variant is fastest but not by much in my case.

1 Like