diff options
author | Mark Janes <[email protected]> | 2019-07-12 16:35:27 -0700 |
---|---|---|
committer | Mark Janes <[email protected]> | 2019-08-07 21:33:56 -0700 |
commit | f2a049b4e3b20af416267d3c2a1118cc25c54b44 (patch) | |
tree | fbfbea5c26cd612d5f012fa34c1f8c64f214f99a | |
parent | 9f5c160d822adc78986ec6b95ab61d2674edddd4 (diff) |
intel/perf: expose method to create query
By encapsulating this implementation within perf, we can eventually
make struct gen_perf_ctx private.
Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r-- | src/intel/perf/gen_perf.c | 17 | ||||
-rw-r--r-- | src/intel/perf/gen_perf.h | 2 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_performance_query.c | 13 |
3 files changed, 22 insertions, 10 deletions
diff --git a/src/intel/perf/gen_perf.c b/src/intel/perf/gen_perf.c index 4e29bc17c0a..78e4b4c22b6 100644 --- a/src/intel/perf/gen_perf.c +++ b/src/intel/perf/gen_perf.c @@ -69,6 +69,23 @@ #define MAP_READ (1 << 0) #define MAP_WRITE (1 << 1) +struct gen_perf_query_object * +gen_perf_new_query(struct gen_perf_context *perf_ctx, unsigned query_index) +{ + const struct gen_perf_query_info *query = + &perf_ctx->perf->queries[query_index]; + struct gen_perf_query_object *obj = + calloc(1, sizeof(struct gen_perf_query_object)); + + if (!obj) + return NULL; + + obj->queryinfo = query; + + perf_ctx->n_query_instances++; + return obj; +} + static bool get_sysfs_dev_dir(struct gen_perf_config *perf, int fd) { diff --git a/src/intel/perf/gen_perf.h b/src/intel/perf/gen_perf.h index 68e2a985bad..1dab55a85e6 100644 --- a/src/intel/perf/gen_perf.h +++ b/src/intel/perf/gen_perf.h @@ -564,6 +564,8 @@ void gen_perf_snapshot_statistics_registers(void *context, struct gen_perf_config *perf, struct gen_perf_query_object *obj, uint32_t offset_in_bytes); +struct gen_perf_query_object * +gen_perf_new_query(struct gen_perf_context *, unsigned query_index); void gen_perf_close(struct gen_perf_context *perfquery, const struct gen_perf_query_info *query); diff --git a/src/mesa/drivers/dri/i965/brw_performance_query.c b/src/mesa/drivers/dri/i965/brw_performance_query.c index dcf33ab97cf..c1cba62cb3a 100644 --- a/src/mesa/drivers/dri/i965/brw_performance_query.c +++ b/src/mesa/drivers/dri/i965/brw_performance_query.c @@ -375,21 +375,14 @@ brw_new_perf_query_object(struct gl_context *ctx, unsigned query_index) { struct brw_context *brw = brw_context(ctx); struct gen_perf_context *perf_ctx = &brw->perf_ctx; - const struct gen_perf_query_info *queryinfo = - &perf_ctx->perf->queries[query_index]; - struct gen_perf_query_object *obj = - calloc(1, sizeof(struct gen_perf_query_object)); - - if (!obj) + struct gen_perf_query_object * obj = gen_perf_new_query(perf_ctx, query_index); + if (unlikely(!obj)) return NULL; - obj->queryinfo = queryinfo; - - perf_ctx->n_query_instances++; - struct brw_perf_query_object *brw_query = calloc(1, sizeof(struct brw_perf_query_object)); if (unlikely(!brw_query)) return NULL; + brw_query->query = obj; return &brw_query->base; } |