diff options
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_program_cache.c | 46 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_state.h | 2 | ||||
-rw-r--r-- | 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); } |