mesa: Handle !m->Ended for performance monitor result availability.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 14 Nov 2013 01:15:23 +0000 (17:15 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 18 Nov 2013 02:51:07 +0000 (18:51 -0800)
If a performance monitor has never ended, then no result can be
available.  Core Mesa can easily handle this, saving drivers a tiny bit
of complexity.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/mesa/main/performance_monitor.c

index c168bf5d423e80643a82896eaddee3327d17f43e..6491b4200f5edde0d30cf18feb836ded2536aac4 100644 (file)
@@ -568,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);