Re: Managed Direct3D performance vs. old-school C++?

From: Phil Taylor (
Date: 12/01/04

Date: Wed, 1 Dec 2004 09:06:29 -0800

the design goal for M-DX was to have less than 10% difference in overhead vs
the corresponding C++ method call. in many cases its closer to 5%.

with that said, there is a lot of delta in other .NET language features and
thats likely to be the limiting factor than DX method invocation
performance. floating point operation performance, for instance.

and you may have to pay special attentiont to object lifetimes, since having
the gc kick in at odd times can lead to your player getting fragged. being
smart about generations and such, and not just blindly using objects is

as far as what isnt covered in the M-DX APIs, I havent done an exhaustive
search to see that every feature is covered. I think they are but cant state
that authoritatively.

"Jim Bancroft" <> wrote in message
> Hi everyone,
> I'm interested in experimenting with Direct3D using C#. I won't be
> pushing any performance envelopes, but I was interested in knowing if
> there is Direct3D (or DirectX) functionality not available to .Net that
> unmanaged Visual C++ (for example) can get to. Maybe advanced shader
> functionality, I don't know.
> I'm speaking specifically about DirectX 9, not older versions where
> Microsoft may have said "who's gonna use D3D retained mode in .Net-- skip
> it."
> Also, are there any rough performance benchmarks comparing.Net D3D
> applications and similar, unmanaged C++ ones? I assume there *is* a
> difference, because of the managed runtime's overhead; what I don't know
> is if it's negligible or if it depends on what you're doing. For
> instance, are any shops writing flight simulators or first person shooters
> using C#?
> Thanks for the information.
> -Jim