DX9 vs DX11 vs x64 vs x86


so i wondered which vvvv setup was best to render a lot of geometry!?

i tried my little perf test patch on following setups, but i got weird results:

x86 DX9 = 35 FPS
x86 DX11 = 40 FPS

x64 DX9 = 41 FPS
x64 DX11 = 36 FPS

so on 32bit DX11 is faster!
and on 64bit DX9 is faster!

for all 4 tests i used these 2 patches

what is this mess? can anyone explain what is going on? XD

perftest_DX9.v4p (167.9 kB)
peftest_DX11.v4p (166.4 kB)

Quite a few things:

  • You don’t use a depth buffer in dx11, while you do in dx9
  • Cylinder in dx11 is thinner for some reason (you need to multiply radius by 4 to have same size as dx9 counterpart).
  • Cylinder in dx11 uses more vertices if “caps” is enabled (due to normals), so that also adds up.
  • DX11 example is a clear candidate for instancing
  • About the 32/64 bits difference, it could be the fact that there’s more “movement” from native/managed in 64 bits, and pointers are twice the size, but right now that’s just pure speculation ;)

ohh yes my bad.

thanks a lot for the great tip! instancing gives me great performance !

is there like a “ConstantInstanced” but with Lights and shadows like a Phong ?

i found one here:

but the transform does not seem to work correctly. (see patch)

peftest_DX11_instanced.zip (77.0 kB)