rendered paste bodyIndex: plugins/GSdx/GSPerfMon.cpp===================================================================--- plugins/GSdx/GSPerfMon.cpp (revision 1598)+++ plugins/GSdx/GSPerfMon.cpp (working copy)@@ -24,11 +24,11 @@ GSPerfMon::GSPerfMon() : m_total(0)- , m_begin(0) , m_frame(0) , m_lastframe(0) , m_count(0) {+ QueryPerformanceCounter(&m_begin); memset(m_counters, 0, sizeof(m_counters)); memset(m_stats, 0, sizeof(m_stats)); }@@ -37,14 +37,6 @@ { if(c == Frame) {- clock_t now = clock();- - if(m_lastframe != 0)- {- m_counters[c] += now - m_lastframe;- }-- m_lastframe = now; m_frame++; m_count++; }@@ -71,29 +63,23 @@ void GSPerfMon::Start() {- m_start = __rdtsc();-- if(m_begin == 0)- {- m_begin = m_start;- }+ QueryPerformanceCounter(&m_start); } void GSPerfMon::Stop() {- if(m_start > 0)- {- m_total += __rdtsc() - m_start;- m_start = 0;- }+ LARGE_INTEGER now; QueryPerformanceCounter(&now);++ m_total += now.QuadPart - m_start.QuadPart; } int GSPerfMon::CPU() {- int percent = (int)(100 * m_total / (__rdtsc() - m_begin));+ LARGE_INTEGER now; QueryPerformanceCounter(&now); - m_begin = 0;- m_start = 0;+ int percent = (int)(.5 + 100. * m_total / (now.QuadPart - m_begin.QuadPart));++ QueryPerformanceCounter(&m_begin); m_total = 0; return percent;Index: plugins/GSdx/GSPerfMon.h===================================================================--- plugins/GSdx/GSPerfMon.h (revision 1598)+++ plugins/GSdx/GSPerfMon.h (working copy)@@ -24,12 +24,13 @@ class GSPerfMon { public:- enum counter_t {Frame, Prim, Draw, Swizzle, Unswizzle, Fillrate, Quad, CounterLast};+ enum counter_t {Prim, Draw, Swizzle, Unswizzle, Fillrate, Quad, CounterLast, Frame}; protected: double m_counters[CounterLast]; double m_stats[CounterLast];- uint64 m_begin, m_total, m_start, m_frame;+ uint64 m_frame, m_total;+ LARGE_INTEGER m_begin, m_start; clock_t m_lastframe; int m_count;