From: Robert Bragg Date: Thu, 4 Jun 2015 22:26:40 +0000 (+0100) Subject: i965: extend query/counter structs for OA queries X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f46e58e01805e92ddb6e7806a7ec39748bdbab9d;p=mesa.git i965: extend query/counter structs for OA queries In preparation for generating code from brw_oa_hsw.xml for describing OA performance counter queries this adds some OA specific members to brw_perf_query that our generated code will initialize: - The oa_metric_set_id is the ID we will pass to DRM_IOCTL_I915_PERF_OPEN, and is an ID got via sysfs under: /sys/class/drm//metrics/ Reviewed-by: Lionel Landwerlin Acked-by: Kenneth Graunke --- diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h index 8f6bf18230f..0aa27995ab9 100644 --- a/src/mesa/drivers/dri/i965/brw_context.h +++ b/src/mesa/drivers/dri/i965/brw_context.h @@ -602,9 +602,21 @@ struct brw_perf_query_info { enum brw_query_kind kind; const char *name; + const char *guid; struct brw_perf_query_counter *counters; int n_counters; size_t data_size; + + /* OA specific */ + uint64_t oa_metrics_set_id; + int oa_format; + + /* For indexing into the accumulator[] ... */ + int gpu_time_offset; + int gpu_clock_offset; + int a_offset; + int b_offset; + int c_offset; }; /** diff --git a/src/mesa/drivers/dri/i965/brw_performance_query.h b/src/mesa/drivers/dri/i965/brw_performance_query.h index 8f1f96060b6..c9454f98eab 100644 --- a/src/mesa/drivers/dri/i965/brw_performance_query.h +++ b/src/mesa/drivers/dri/i965/brw_performance_query.h @@ -44,6 +44,14 @@ struct brw_perf_query_counter size_t offset; size_t size; - struct brw_pipeline_stat pipeline_stat; + union { + uint64_t (*oa_counter_read_uint64)(struct brw_context *brw, + const struct brw_perf_query_info *query, + uint64_t *accumulator); + float (*oa_counter_read_float)(struct brw_context *brw, + const struct brw_perf_query_info *query, + uint64_t *accumulator); + struct brw_pipeline_stat pipeline_stat; + }; };