# Is there any performance difference between Draw() and DrawInstanced(1)?

The background of the question is, does it make sense to introduce an if case when drawing a mesh for whether there is instancing or not?

This is using DirectX 11 with SharpDX in the Stride game engine:

Pseudo-code:

if (mesh.InstanceCount > 1)
commandList.DrawInstanced(mesh.DrawCount, mesh.InstanceCount);
else
commandList.Draw(mesh.DrawCount);


Or is it equivalent to just calling DrawInstanced() in any case?

• This sounds like a question you can answer faster for yourself by trying both ways for a large number of objects and profiling the result: do you get a measurable difference on your target hardware? This will give you empirical proof — much more reliable than hearsay from a stranger on the Internet! Aug 6 at 12:10