If there is no plan to use brw_print_program_cache elsewhere, I would rather keep it a static method where it is used. In general, I prefer not polluting header files. Not a big deal anyway; feel free to ignore the comment.
Reviewed-by: Eduardo Lima Mitev <el...@igalia.com> On 01/17/2017 08:14 AM, Kenneth Graunke wrote: > 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 <kenn...@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); > } > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev