aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Janes <[email protected]>2019-07-12 16:35:27 -0700
committerMark Janes <[email protected]>2019-08-07 21:33:56 -0700
commitf2a049b4e3b20af416267d3c2a1118cc25c54b44 (patch)
treefbfbea5c26cd612d5f012fa34c1f8c64f214f99a
parent9f5c160d822adc78986ec6b95ab61d2674edddd4 (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.c17
-rw-r--r--src/intel/perf/gen_perf.h2
-rw-r--r--src/mesa/drivers/dri/i965/brw_performance_query.c13
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;
}