diff options
author | marha <marha@users.sourceforge.net> | 2013-11-18 09:21:27 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-11-18 09:21:27 +0100 |
commit | 7c20de6c7fb53ed404d4df0d975328318810ce01 (patch) | |
tree | 8f837042966482fd961444153eabbc46cb9141eb /mesalib/src/mesa/main/performance_monitor.c | |
parent | aa095d69b3874eb179cb77f033109a7f8f351041 (diff) | |
download | vcxsrv-7c20de6c7fb53ed404d4df0d975328318810ce01.tar.gz vcxsrv-7c20de6c7fb53ed404d4df0d975328318810ce01.tar.bz2 vcxsrv-7c20de6c7fb53ed404d4df0d975328318810ce01.zip |
libXext mesa xkeyboard-config pixman 18 nov 2013
xkeyboard-config commit 51ab5c95e48b2a040fc132bb5c1a5e8bbe86c8f4
libXext commit bb24f2970f2e425f4df90c9b73d078ad15a73fbb
pixman commit f473fd1e7553a4e92a0d72bea360f05d005c9a88
mesa commit 2cfbf84dadc915b7075a3f1cbb569daf699d5ff0
Diffstat (limited to 'mesalib/src/mesa/main/performance_monitor.c')
-rw-r--r-- | mesalib/src/mesa/main/performance_monitor.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/mesalib/src/mesa/main/performance_monitor.c b/mesalib/src/mesa/main/performance_monitor.c index 17cae5183..6491b4200 100644 --- a/mesalib/src/mesa/main/performance_monitor.c +++ b/mesalib/src/mesa/main/performance_monitor.c @@ -62,6 +62,10 @@ new_performance_monitor(struct gl_context *ctx, GLuint index) if (m == NULL) return NULL; + m->Name = index; + + m->Active = false; + m->ActiveGroups = rzalloc_array(NULL, unsigned, ctx->PerfMonitor.NumGroups); @@ -355,8 +359,10 @@ _mesa_DeletePerfMonitorsAMD(GLsizei n, GLuint *monitors) if (m) { /* Give the driver a chance to stop the monitor if it's active. */ - if (m->Active) + if (m->Active) { ctx->Driver.ResetPerfMonitor(ctx, m); + m->Ended = false; + } _mesa_HashRemove(ctx->PerfMonitor.Monitors, monitors[i]); ralloc_free(m->ActiveGroups); @@ -474,6 +480,7 @@ _mesa_BeginPerfMonitorAMD(GLuint monitor) */ if (ctx->Driver.BeginPerfMonitor(ctx, m)) { m->Active = true; + m->Ended = false; } else { _mesa_error(ctx, GL_INVALID_OPERATION, "glBeginPerfMonitor(driver unable to begin monitoring)"); @@ -503,6 +510,7 @@ _mesa_EndPerfMonitorAMD(GLuint monitor) ctx->Driver.EndPerfMonitor(ctx, m); m->Active = false; + m->Ended = true; } /** @@ -560,8 +568,12 @@ _mesa_GetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname, return; } + /* If the monitor has never ended, there is no result. */ + bool result_available = m->Ended && + ctx->Driver.IsPerfMonitorResultAvailable(ctx, m); + /* AMD appears to return 0 for all queries unless a result is available. */ - if (!ctx->Driver.IsPerfMonitorResultAvailable(ctx, m)) { + if (!result_available) { *data = 0; if (bytesWritten != NULL) *bytesWritten = sizeof(GLuint); |