Greg said:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_m/directx/directx9m.asp
The above link states that using managed DirectX improves perfomance
because
it bypasses the COM layer.
Improves performance over what?
Surely it improves performance over a solution built with .Net that uses
COM-callable wrappers or IJW to access the native API. But does it improve
performance over the native version? I think not.
In this article
http://msdn.microsoft.com/msdnmag/issues/03/07/DirectX90/
which introduced Managed DirectX a couple of years ago there is this:
<quote>
Managed Direct3D, part of the DirectX Graphics component of DirectX 9.0,
provides a great opportunity for developers targeting the .NET Framework to
add 3D capability to their applications. Not only is managed Direct3D nearly
as efficient as its unmanaged counterpart, but when used in conjunction with
the high-level shading language, it provides a great future for
high-performance RAD game development.
</quote>
And at this link
http://msdn.microsoft.com/msdnmag/issues/05/08/EndBracket/
you'll find this:
<quote>
It seems that at least twice a week, I am asked about poor performance in
Managed DirectX®. This frequency is actually a big improvement over the 5-10
times a week I was asked a few years ago when the technology first came out.
</quote>
The author goes on to explain that the poor performance has more to do with
the way in which the managed libraries were used than with inherent
slowness. And that reinforces the notion that matching a technology to the
skill set of the developers is important. Native DirectX has been around
longer and there is much more collective wisdom about it for others to read
than the newer technology.
Regards,
Will