Slow Present when GPU is idle?

Started by
4 comments, last by rip-off 12 years, 8 months ago
the situation is complicate, but i will put it simple:

i was using d3d, i noticed that Present function cost about 10 ms, so i thought it's gpu bounded,

but the strange thing is when I open another extremely gpu-consuming program simultaneously, my program didn't seem to drop even 1 fps

what maked me even more confused is that no matter how many milliseconds I call Slee() before calling Present(), it alway cost more than 3 ms.

what happend in Presnt()? any comment will be appreciated.

Advertisement
What arguments are you supplying the Present() function?


[font="arial, verdana, tahoma, sans-serif"]Try using: Present(0,0);[/font]
It will ignore screen sync intervals, and present immediately.

What arguments are you supplying the Present() function?


[font="arial, verdana, tahoma, sans-serif"]Try using: Present(0,0);[/font]
It will ignore screen sync intervals, and present immediately.


thanks for your reply!

I forgot to mention that I have created device with PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE,

and I did call Present with all params set to NULL
Essential reading: http://tomsdxfaq.blogspot.com/

The first article here: "Why is Present so slow?"

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.


Essential reading: http://tomsdxfaq.blogspot.com/

The first article here: "Why is Present so slow?"


it must be vertical synchronization problem b/c the fps will never over 60. I just don't know why since I have disable it
The driver might override your application request. Go into your display adapter settings in Windows and see if it is forced to always vsync.

This topic is closed to new replies.

Advertisement