i965: Move program cache printing to brw_program_cache.c.
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 11 Nov 2016 22:47:53 +0000 (14:47 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 18 Jan 2017 05:47:36 +0000 (21:47 -0800)
It makes sense to put a function which prints out the entire contents
of the program cache in the file that implements the program cache.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eduardo Lima Mitev <elima@igalia.com>
src/mesa/drivers/dri/i965/brw_program_cache.c
src/mesa/drivers/dri/i965/brw_state.h
src/mesa/drivers/dri/i965/brw_state_dump.c

index 3d95372..8939fb1 100644 (file)
@@ -480,3 +480,49 @@ brw_destroy_caches(struct brw_context *brw)
 {
    brw_destroy_cache(brw, &brw->cache);
 }
+
+static const char *
+cache_name(enum brw_cache_id cache_id)
+{
+   switch (cache_id) {
+   case BRW_CACHE_VS_PROG:
+      return "VS kernel";
+   case BRW_CACHE_TCS_PROG:
+      return "TCS kernel";
+   case BRW_CACHE_TES_PROG:
+      return "TES kernel";
+   case BRW_CACHE_FF_GS_PROG:
+      return "Fixed-function GS kernel";
+   case BRW_CACHE_GS_PROG:
+      return "GS kernel";
+   case BRW_CACHE_CLIP_PROG:
+      return "CLIP kernel";
+   case BRW_CACHE_SF_PROG:
+      return "SF kernel";
+   case BRW_CACHE_FS_PROG:
+      return "FS kernel";
+   case BRW_CACHE_CS_PROG:
+      return "CS kernel";
+   default:
+      return "unknown";
+   }
+}
+
+void
+brw_print_program_cache(struct brw_context *brw)
+{
+   const struct brw_cache *cache = &brw->cache;
+   struct brw_cache_item *item;
+
+   drm_intel_bo_map(cache->bo, false);
+
+   for (unsigned i = 0; i < cache->size; i++) {
+      for (item = cache->items[i]; item; item = item->next) {
+         fprintf(stderr, "%s:\n", cache_name(i));
+         brw_disassemble(&brw->screen->devinfo, cache->bo->virtual,
+                         item->offset, item->size, stderr);
+      }
+   }
+
+   drm_intel_bo_unmap(cache->bo);
+}
index bd82212..f2349d8 100644 (file)
@@ -245,6 +245,8 @@ void brw_program_cache_check_size(struct brw_context *brw);
 void brw_init_caches( struct brw_context *brw );
 void brw_destroy_caches( struct brw_context *brw );
 
+void brw_print_program_cache(struct brw_context *brw);
+
 /***********************************************************************
  * brw_state_batch.c
  */
index 1ed8aaa..13e76ec 100644 (file)
@@ -718,62 +718,6 @@ static void dump_binding_table(struct brw_context *brw, uint32_t offset,
 }
 
 static void
-dump_prog_cache(struct brw_context *brw)
-{
-   struct brw_cache *cache = &brw->cache;
-   unsigned int b;
-
-   drm_intel_bo_map(brw->cache.bo, false);
-
-   for (b = 0; b < cache->size; b++) {
-      struct brw_cache_item *item;
-
-      for (item = cache->items[b]; item; item = item->next) {
-        const char *name;
-
-        switch (item->cache_id) {
-        case BRW_CACHE_VS_PROG:
-           name = "VS kernel";
-           break;
-         case BRW_CACHE_TCS_PROG:
-            name = "TCS kernel";
-            break;
-         case BRW_CACHE_TES_PROG:
-            name = "TES kernel";
-            break;
-        case BRW_CACHE_FF_GS_PROG:
-           name = "Fixed-function GS kernel";
-           break;
-         case BRW_CACHE_GS_PROG:
-            name = "GS kernel";
-            break;
-        case BRW_CACHE_CLIP_PROG:
-           name = "CLIP kernel";
-           break;
-        case BRW_CACHE_SF_PROG:
-           name = "SF kernel";
-           break;
-        case BRW_CACHE_FS_PROG:
-           name = "FS kernel";
-           break;
-         case BRW_CACHE_CS_PROG:
-            name = "CS kernel";
-            break;
-        default:
-           name = "unknown";
-           break;
-        }
-
-         fprintf(stderr, "%s:\n", name);
-         brw_disassemble(&brw->screen->devinfo, brw->cache.bo->virtual,
-                         item->offset, item->size, stderr);
-      }
-   }
-
-   drm_intel_bo_unmap(brw->cache.bo);
-}
-
-static void
 dump_state_batch(struct brw_context *brw)
 {
    int i;
@@ -880,5 +824,5 @@ void brw_debug_batch(struct brw_context *brw)
    drm_intel_bo_unmap(brw->batch.bo);
 
    if (0)
-      dump_prog_cache(brw);
+      brw_print_program_cache(brw);
 }