diff options
author | Mark Janes <[email protected]> | 2019-06-28 15:55:37 -0700 |
---|---|---|
committer | Mark Janes <[email protected]> | 2019-08-07 21:33:56 -0700 |
commit | 3c8ed58486744b7e83058b867b1e66e56431a224 (patch) | |
tree | 2a29d2a144e0a334f14e57c21b336c8d9e68991e /src/mesa/drivers/dri/i965/brw_performance_query.c | |
parent | 6fed7563888920ee44af798f232863fae01a6fd1 (diff) |
intel/perf: create a vtable entry for bo_busy
Iris and i965 variants of this method need to be called by perf
routines.
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_performance_query.c')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_performance_query.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_performance_query.c b/src/mesa/drivers/dri/i965/brw_performance_query.c index addb989f47b..6f55187ed79 100644 --- a/src/mesa/drivers/dri/i965/brw_performance_query.c +++ b/src/mesa/drivers/dri/i965/brw_performance_query.c @@ -390,7 +390,7 @@ read_oa_samples_for_query(struct brw_context *brw, /* We need the MI_REPORT_PERF_COUNT to land before we can start * accumulate. */ assert(!perf_cfg->vtbl.batch_references(&brw->batch, obj->oa.bo) && - !brw_bo_busy(obj->oa.bo)); + !perf_cfg->vtbl.bo_busy(obj->oa.bo)); /* Map the BO once here and let accumulate_oa_reports() unmap * it. */ @@ -728,12 +728,12 @@ brw_is_perf_query_ready(struct gl_context *ctx, return (obj->oa.results_accumulated || (obj->oa.bo && !perf_cfg->vtbl.batch_references(&brw->batch, obj->oa.bo) && - !brw_bo_busy(obj->oa.bo) && + !perf_cfg->vtbl.bo_busy(obj->oa.bo) && read_oa_samples_for_query(brw, obj))); case GEN_PERF_QUERY_TYPE_PIPELINE: return (obj->pipeline_stats.bo && !perf_cfg->vtbl.batch_references(&brw->batch, obj->pipeline_stats.bo) && - !brw_bo_busy(obj->pipeline_stats.bo)); + !perf_cfg->vtbl.bo_busy(obj->pipeline_stats.bo)); default: unreachable("Unknown query type"); @@ -1178,7 +1178,7 @@ typedef void (*store_register_mem64_t)(void *ctx, void *bo, uint32_t reg, uint32_t offset); typedef bool (*batch_references_t)(void *batch, void *bo); typedef void (*bo_wait_rendering_t)(void *bo); - +typedef int (*bo_busy_t)(void *bo); static unsigned brw_init_perf_query_info(struct gl_context *ctx) @@ -1207,6 +1207,7 @@ brw_init_perf_query_info(struct gl_context *ctx) (store_register_mem64_t) brw_store_register_mem64; perf_cfg->vtbl.batch_references = (batch_references_t)brw_batch_references; perf_cfg->vtbl.bo_wait_rendering = (bo_wait_rendering_t)brw_bo_wait_rendering; + perf_cfg->vtbl.bo_busy = (bo_busy_t)brw_bo_busy; gen_perf_init_context(perf_ctx, perf_cfg, brw, brw->bufmgr, devinfo, brw->hw_ctx, brw->screen->driScrnPriv->fd); |