Jump to content
  • Advertisement
Sign in to follow this  
CuboDeAgua

[SlimDX] PIX profiling directx 9 and directx 10 issue

This topic is 2890 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

Hi there again and hope someone can explain why this happens ^^

I've done my graphics engine so it can be run in DX9 and DX10.

Once i had the Directx10 side working, i saw that in a certain scenario i had about 450 fps with the directx9 API and just 100 FPS with the directx10 API.

I wasn't very surprised about that because the engine was designed to run with directx9 so (as i read in many places), doing similar call structure directly in directx10 from directx9 will normally give lower performance.

But the surprise came when i ran PIX with both engines. The result per frame was that the directx 10 API was performing the same calls faster than the directx 9 one, in fact, about 2 times faster (time considering only one frame capture). The time spent in the GPU calls is 2 times lower with the directx 10 API than with the directx 9 one.

So... how can that be? (I've tested it and the load of the nongraphical side of the app is obviously the same).

My questions are:
In pix, i guess the time shown when capturing a frame that shows all the API calls is absolute time (time for the application and not only time spent in GPU process) so, if the time per render call is bigger, it isn't because the CPU is not able to send the API calls fast enought, is it?

If that is true, then what is lowering the frame rate in directx 10?

I'd appreciate any hint ^^

Share this post


Link to post
Share on other sites
Advertisement
How are you handling constant buffers and state management in the D3D10 version of your engine? Those are two easy places to kill your performance if you just do it the same as in DX9.

Share this post


Link to post
Share on other sites

How are you handling constant buffers and state management in the D3D10 version of your engine? Those are two easy places to kill your performance if you just do it the same as in DX9.


I'm not considering that right now. The thing is that even if i handle horribly the constant buffers or whatever, PIX tells me that the directx 10 API calls are resolved faster than the directx 9 ones (the whole frame 2 times faster) but i'm still getting 4 times less framerate with all the surrounding code totally similar.

How can that be?
(have to say too that i haven't a fixed framerate, etc.)

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.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!