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

From: ZMan (zman_at_thezbuffer.com)
Date: 12/03/04


Date: Thu, 2 Dec 2004 22:33:31 -0800

My opinion is that if you believe you will be really pushing the envelope
where you will care about making sure that every memory access comes from
the cache, every bit of bus bandwidth and video card memory is in use and
running an parallel with the CPU and every instruction counts to get the
highest framerate at the highest resolution then avoid MDX. For the most
part this applies to only the top released games out there.

Otherwise for learning 3d graphics and games, for reasonably complex games
and applications its a good match. Especially if you already know c# over
C++ (I'm no language bigot go with what you know). You will find your
algorithms and writing smart .Net code as Phil described will make up for
the slight shortfall in performance.

As for applications and games there really are not too many publicized ones
yet.
http://learn.arc.nasa.gov/worldwind/index.html and
http://www.koiosworks.com/ are all that I know of.

-- 
ZMan (zman@thezbuffer.com)
http://www.thezbuffer.com
News and Information for Managed DirectX
"Jim Bancroft" <asdfsklw@nowhere.com> wrote in message 
news:u3Mv4N91EHA.2156@TK2MSFTNGP10.phx.gbl...
> Makes sense, everything you wrote.  And thanks for pointing out the 
> potential pitfall with the gc popping up at the odd moment.
>
> -Jim
>
>
> "Phil Taylor" <phil@private-citizen.com> wrote in message 
> news:OTltZg81EHA.3392@TK2MSFTNGP10.phx.gbl...
>> 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 required.
>>
>> 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.
>>
>
>