Re: IDirect3DDevice->Present most overhead?

From: Sean Cavanaugh (seanc_at_gearboxsoftware.com)
Date: 11/30/04


Date: Mon, 29 Nov 2004 21:28:31 -0600

Bilbao wrote:
> Hi all,
>
> I am trying to measure the performance in an engine I am working on.
> Using the methodology of querying the time at specific points of the "game
> loop", I find out that the Direct3DDevice9 function "Present(...)" is taking
> about 80%-90% of the processing time.
>
> I found this surprisingly intresting AND frustrating as well. The GPU I use
> is an ATI 9700 Pro. But more surprisingly* is that in another system with an
> nVidia GPU (Quattro) the processing time spent in this function is very small.
>
> *Up until now I though this GPU was NOT better than the ATI 9700 Pro.
> Somebody please correct me, I am sorry I don't have more detailed information
> on the nVidia HW. What that lead me to believe that the nVidia HW was lesser
> than the ATI 9700 Pro is that the 9700 GPU supports a wider range of
> features, is in overall way faster (with the SDK samples) and is newer...
>
> I also though that maybe some sort of intrussive software was drainning the
> performance in the ATI GPU, but this is hard to detect whatever the
> stand-point.
>
> If anybody has any hint on performance problems with ATI HW (9700
> specifically), OR/AND have also experienced a similar situation please let me
> know any advice on how I can approach this problem.
>
> Please, let me know if you have any question or need more information.
>
> Thanks a million in advance

D3D calls fill a command buffer up and if it gets full it has to wait
for there to be room. However, most of the blocked time will be in
Present(). There is a limit to the number of pending Present()s in the
buffer and Present will block and spin until its allowed to put another
one in. Real-world development tells me that the number of allowable
presents with vsync disabled is much larger than with vsync enabled,
which puts the logic for this in the video driver (and also at the mercy
of various driver revisions)

There are some optional parameters to Present() to check out if you wish
to avoid the spin and can do something more productive with the time.



Relevant Pages

  • Re: Virtual Consoles disabled
    ... > screen (or the last screen-full of boot output). ... The problem may be your video driver. ... If you have an Nvidia or ATI ...
    (Ubuntu)
  • IDirect3DDevice->Present most overhead?
    ... nVidia GPU the processing time spent in this function is very small. ... *Up until now I though this GPU was NOT better than the ATI 9700 Pro. ...
    (microsoft.public.win32.programmer.directx.graphics)
  • Re: Motherboards with No Graphics, No Sound?
    ... Isn't there a Folding@Home version that uses the GPU? ... Although I think nVidia is better - always has issues with ATI ... What is going to happen to Intel? ...
    (alt.comp.hardware.pc-homebuilt)
  • Re: Motherboards with No Graphics, No Sound?
    ... Isn't there a Folding@Home version that uses the GPU? ... Although I think nVidia is better - always has issues with ATI ... What is going to happen to Intel? ...
    (alt.comp.hardware.pc-homebuilt)
  • Re: Dell 2405FPW - geliefert mit angestecktem VGA-Kabel
    ... DVI-seitig gesehen macht es keinen Unterschied, ob die GPU von ATI oder Nvidia kommt... ... Ich bin ja eigentlich überhaupt kein Gamer aber jetzt, wo Quake 4 auch unter Linux läuft, würde ich schon ganz gern mal daddeln. ...
    (de.comp.hardware.monitore)

Quantcast