cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

nmanjofo
Journeyman III

GPU PerfStudio - problem with timer

Hello,

I'm a begginer in DirectX and currenty making a project demonstrating shadowing algorithms, written in DirectX11 (feature set DX10). I'm running Windows Server 2008 R2 x64 on Asus M70Vr notebook (Core 2 Duo P8400, Radeon Mobility HD 3470, 4Gigs of RAM), Visual Studio 2010. The problem is that when I run my app and minimize it, whole system was kinda choppy despite low CPU utilization. I couldn't even work in GPU PerfStudio with the app, it responded too slowly.

To fix that, I coded in a FPS limiter (to 60FPS), making a 16ms delay between frames. ( while ( t.GetElapsedTime() < 16 ); )

That solved the choppy behaviour. However, after I made that timer, I can launch my app in PS, but can't use Frame Debugger or any other tool it provides. When I hit "Pause", just a popup window shows up saying "Connecting" and nothing happens (kept that for something like 5 mins) . How can I get it to work please?

Thank You a lot

0 Likes
1 Solution
Lonesled
Staff

Hi, Thanks for your report. A frame limiter will not work in this case but it can be fixed as follows. In the client setting in the General tab, you will see a "Time spoofing on pause" mode. The default setting is set to Freeze. In this mode PerfStudio will return the same time value for QueryPerfromanceCounter and other time releated functions. The time deltas that you calculate in your app will always be 0 and the threshold to progress to the next frame will never be reached. To fix this, implement your own pause feature in your app (halt all animation and keep rendering the frozen scene) - then set the the Time Spoofing mode to "None". The "None" mode  returns the correct time value and your frame limiter will start to work. There is a section on this issue in the client help at: "Help/Introduction to GPU PerfStudio 2/Pausing your Application". Please let us know how this works out.

View solution in original post

0 Likes
2 Replies
Lonesled
Staff

Hi, Thanks for your report. A frame limiter will not work in this case but it can be fixed as follows. In the client setting in the General tab, you will see a "Time spoofing on pause" mode. The default setting is set to Freeze. In this mode PerfStudio will return the same time value for QueryPerfromanceCounter and other time releated functions. The time deltas that you calculate in your app will always be 0 and the threshold to progress to the next frame will never be reached. To fix this, implement your own pause feature in your app (halt all animation and keep rendering the frozen scene) - then set the the Time Spoofing mode to "None". The "None" mode  returns the correct time value and your frame limiter will start to work. There is a section on this issue in the client help at: "Help/Introduction to GPU PerfStudio 2/Pausing your Application". Please let us know how this works out.

0 Likes

Thank You very much! I just set time spoofing to None and it works now.

0 Likes