i965: Move program cache printing to brw_program_cache.c.
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>
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
@@ -717,62 +717,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)
|
||||
{
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user