Instanced static mesh slower than Non-Instanced static mesh

Update:

GPU’s have a big role in Instancing:

(finally tried the 3060 laptop)

  • A Desktop with AMD rx 590 runs better without instancing,

  • A Laptop with 3060 gets the same fps when using instanced meshes or non-instanced meshes

  • A Desktop with 4070 runs better with instancing

    When Using a Mesh with 13k Triangles, And if you are using a mesh that has less
    verticies, you can have up to 2 times more fps with instanced meshes than non instanced.


GPU Market doesnt seem to change soon (depends on your area)

The problem doesnt seem to be over for some game developers because even though a 3060 especially on a laptop isnt that better than my rx590 setup, it can still run large amount of games on high and even ultra settings, Therefore many people wont feel the need to upgrade even more than that. At least not soon

You should still consider those hardwares on development stage.


Instances existed before high end GPU’s ( i believe ) So what is the problem now?

i also think instancing were used in other games in the past that many people with lower end cards definetely played.

my suspicion about an engine bug still persists but i will try to find a workaround about this topic, i did not build the engine source code myself before but maybe if this thing gets me too crazy, i might dive into the code to see whats going on, who knows :smiley:

I tried disabling the collisions on instances and it didnt seem to help.

I was thinking if my foliages would also run better if i didnt use default instanced scattering but they dont have necesserily that high polys, at least some of them.


Nanite might not be that bad:

I also enabled nanite back and now the threshold for my pc went from 13k verts to run bad to around 250k verts to run bad, the instance count is the same.

Interestingly this time i also get double the fps on nanite with that same 13k vert mesh, from both instanced and not instanced, but that double fps is reduced when i get close to the meshes, still better than no nanite.

Now the problem with this test is there is 2 nanite enabled objects on my whole project and only one is showing up at a time, i suspect more meshes of different kinds of nanite would run poorer(?)
i remember having a scene that ran poorly with nanite and when i profiled my gpu, i could see all the resources used. I dont exactly know that if it would run better if i disabled nanite and optimized some of the models . Now i am thinking probably not but number of nanite objects is definetely something i need to test the impact of.


When using 250k vert mesh, non-instanced meshes are still superior on my pc Even with nanite. it doesnt seem to affect alot until a pretty high amount of verticies though.
So this topic is still a problem. For lower end pc’s.

What does that mean? since even a 4070 had a bottleneck with about 150k verticies without nanite, and nanite indeed increases that vertex threshold quite a lot, it is safe to assume if anybody uses a couple million vertex meshes, they might have better performance with non-instanced meshes!

  • Since nanite already uses auto lods and instances, i think HISMs with lods will also perform weaker , i will still try it soon anyways.