Jump to content
  • Advertisement
Sign in to follow this  
Machine_1989

DX11 DX11 Performance

This topic is 3066 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hey guys, I've recently converted my DirectX10 Asteroids clone to DirectX11. At first everything was fine, but then I progressed through the game, and found some severe lag when a few more asteroids were on screen. I did some shoddy bench-marking and found that DX11 is performing at about 25% of DX10. I create a hardware DX10 device. I'm using the Aug09 SDK. Visual Studio 2008 - Native C++. ATI Radeon HD4850 - latest drivers. I was just wondering if any of you have the same issues or any ideas as to why it would be so slow... Cheers

Share this post


Link to post
Share on other sites
Advertisement
There's no point in guessing at these things...use GPU PerfStudio to see what's actually going on.

Share this post


Link to post
Share on other sites
Pretty much that ^
There is no reason why the DX11 stuff should be slower than DX10 (the only issue I've found with the drivers in the past was that the tessellator was spitting out far too many triangles, but that has been fixed).

Keep in mind that in order to use PerfStudio sanely you will need your app to support a return of 0 from timeGetTime() or the performance timer values so that you can freeze the game as PS basically takes over those functions; it can also set to return very small values which will help in cases where your logic doesn't allow for it.
(I've found that stuff built on top of DXUT doesn't play well with it at all as it doesn't seem to use any timer calls to manage framerate etc)

Share this post


Link to post
Share on other sites
Thanks for the posts guys, this app is cool.
I found that the GPU is actually performing better with DX11. And the CPU was the issue.
Since the game logic hasn't changed between projects I guessed that the c++ optimization flag was responsible. I had to disable it so the ID3D11Device creation wouldn't fail. Just humour myself I tried turning it back on... and surprisingly the device creation did not fail (after failing for a long painful week), and now it runs flawlessly.
Thanks again.

Share this post


Link to post
Share on other sites
Actually, my engine performs MUCH better with the Direct3D 11 renderer with D3D9 and D3D10 feature sets, rather than the original API's.

Share this post


Link to post
Share on other sites
Out of curiosity, did you get those numbers through launching the app (even in release mode) from Visual Studio? I noticed something similar way back when but did some experimentation and found that if I ran my program *outside* the IDE I jump back up into the normal 1200fps level for just the clear. Could be useful to know.

Share this post


Link to post
Share on other sites
@InvalidPointer
I had issues like that ages ago, with my DirectX10 project, that turned out to be corruption of the project settings or something, I copied my code into a new project and it was fixed.

But this issue was definitely the maximise speed property being turned off.
I'd like to know why it didn't work with the property a few days ago, but does now... I can't remember any changes other than a driver update and I doubt that would be involved...

Share this post


Link to post
Share on other sites
Interesting.

I just ported my DX9 renderer straight to DX11 (bypassed the DX10 API entirely). I am using D3D10 feature level right now.

I found that for very simple scenes (i.e. drawing a single object, or even just a single clear) my DX11 framerate is "much" slower than the DX9 counterpart.

After doing some poking around, I found this is also the case for the DX sample apps. The "EmptyProject" sample in the SDK samples runs at > 9000 FPS for both DX9 and DX10 on my cards, but only around 1500 FPS for DX11 (with vsync disabled of course).

Anyone else notice this?

*EDIT* - I just updated my nvidia drivers (they were a month old) and "EmptyProject11" is way up to ~4500 fps now. Still a large gap between this and the DX 10 version (EmptyProject10 runs at about 7000 fps), but at least an improvement.

[Edited by - Krighton on February 22, 2010 11:35:50 PM]

Share this post


Link to post
Share on other sites
When the framerate is that high any measurements you take are going to be essentially meaningless. You'll need to apply at least some sort of load to start getting measurements.

Also in D3D10 + D3D11 the device defaults to multithreaded usage, which causes you to enter a coarse lock every time you call an API function and adds a bit of overhead.. This is off by default in D3D9.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!