[Mesa-dev] [PATCH 2/7] i965: Move program cache printing to brw_program_cache.c.

Kenneth Graunke kenneth at whitecape.org
Tue Jan 17 07:14:12 UTC 2017


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 at whitecape.org>
---
 src/mesa/drivers/dri/i965/brw_program_cache.c | 46 +++++++++++++++++++++
 src/mesa/drivers/dri/i965/brw_state.h         |  2 +
 src/mesa/drivers/dri/i965/brw_state_dump.c    | 58 +--------------------------
 3 files changed, 49 insertions(+), 57 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_program_cache.c b/src/mesa/drivers/dri/i965/brw_program_cache.c
index 3d95372bc0e..8939fb110fd 100644
--- a/src/mesa/drivers/dri/i965/brw_program_cache.c
+++ b/src/mesa/drivers/dri/i965/brw_program_cache.c
@@ -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);
+}
diff --git a/src/mesa/drivers/dri/i965/brw_state.h b/src/mesa/drivers/dri/i965/brw_state.h
index bd82212be4d..f2349d8c037 100644
--- a/src/mesa/drivers/dri/i965/brw_state.h
+++ b/src/mesa/drivers/dri/i965/brw_state.h
@@ -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
  */
diff --git a/src/mesa/drivers/dri/i965/brw_state_dump.c b/src/mesa/drivers/dri/i965/brw_state_dump.c
index 1ed8aaa481c..13e76ec9d83 100644
--- a/src/mesa/drivers/dri/i965/brw_state_dump.c
+++ b/src/mesa/drivers/dri/i965/brw_state_dump.c
@@ -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);
 }
-- 
2.11.0



More information about the mesa-dev mailing list