summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/drivers/dri/i965/brw_program_cache.c46
-rw-r--r--src/mesa/drivers/dri/i965/brw_state.h2
-rw-r--r--src/mesa/drivers/dri/i965/brw_state_dump.c58
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);
}