Thanks again. So basically I started the C# Wrapper to be able to compare it, after a few days and going to battle vs COM objets and performant InterOp, I finally managed to wrap a part of it. For now I'm doing just the D3DDevice creation and a simple window clear. I compared the exactly same function calls with Managed DirectX 1.1 ones (actually everything is the same, I compared every method parameter and call with PIX debugger). So creating D3D factory, creating a device and showing. (Just a first draft)
DirectX.Device.Clear(0, null, ClearFlags.D3DCLEAR_TARGET | ClearFlags.D3DCLEAR_ZBUFFER, 0, 1, 0);
DirectX.Device.BeginScene();
// todo
DirectX.Device.EndScene();
DirectX.Device.Present(null, null, IntPtr.Zero, null);
And guess what, the performance are almost exactly the same between MDX and my C# Wrapper. I'm getting around 2180 FPS with both of them. I still would like to check IL code generated for both.
-- Everything is possible, even the impossible! ^_^