panfrost/nondrm: Split out dump_counters
authorAlyssa Rosenzweig <alyssa@rosenzweig.io>
Mon, 18 Feb 2019 23:32:05 +0000 (23:32 +0000)
committerAlyssa Rosenzweig <alyssa@rosenzweig.io>
Mon, 25 Feb 2019 02:34:16 +0000 (02:34 +0000)
Previously, this function was implied a part of the job submit.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
src/gallium/drivers/panfrost/pan_context.c
src/gallium/drivers/panfrost/pan_screen.h

index 48b2314679b1172374aa2869a42393de54ccdbeb..508f55200af314bd75f9584f69f622b68ca823f3 100644 (file)
@@ -1571,11 +1571,15 @@ panfrost_submit_frame(struct panfrost_context *ctx, bool flush_immediate)
                 screen->driver->force_flush_fragment(ctx);
 
 #ifdef DUMP_PERFORMANCE_COUNTERS
-        char filename[128];
-        snprintf(filename, sizeof(filename), "/dev/shm/frame%d.mdgprf", ++performance_counter_number);
-        FILE *fp = fopen(filename, "wb");
-        fwrite(screen->perf_counters.cpu,  4096, sizeof(uint32_t), fp);
-        fclose(fp);
+        if (screen->driver->dump_counters) {
+                screen->driver->dump_counters(screen);
+
+                char filename[128];
+                snprintf(filename, sizeof(filename), "/dev/shm/frame%d.mdgprf", ++performance_counter_number);
+                FILE *fp = fopen(filename, "wb");
+                fwrite(screen->perf_counters.cpu,  4096, sizeof(uint32_t), fp);
+                fclose(fp);
+        }
 #endif
 
 #endif
index a2b4b2a77f7740f39895e5330962cf1304462af9..e976b78b5a25fdeb704e120b0ecf39b109d584a8 100644 (file)
@@ -66,6 +66,7 @@ struct panfrost_driver {
         void (*free_imported_bo) (struct panfrost_screen *screen,
                              struct panfrost_bo *bo);
         void (*enable_counters) (struct panfrost_screen *screen);
+        void (*dump_counters) (struct panfrost_screen *screen);
 };
 
 struct panfrost_screen {