[Mesa-dev] [PATCH 13/27] i965: Add macros for creating performance monitor counters and groups.

Kenneth Graunke kenneth at whitecape.org
Wed Nov 13 17:52:18 PST 2013


The Observability Architecture counters are 32-bit unsigned values, and
the Pipeline Statistics Register counters are 64-bit unsigned values.

These convenience macros make it easy to create those types of counters.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Cc: Eric Anholt <eric at anholt.net>
Cc: Carl Worth <cworth at cworth.org>
Cc: Juha-Pekka Heikkilä <juha-pekka.heikkila at intel.com>
---
 .../drivers/dri/i965/brw_performance_monitor.c     | 26 ++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/brw_performance_monitor.c b/src/mesa/drivers/dri/i965/brw_performance_monitor.c
index c9673c5..a7a79ff 100644
--- a/src/mesa/drivers/dri/i965/brw_performance_monitor.c
+++ b/src/mesa/drivers/dri/i965/brw_performance_monitor.c
@@ -61,6 +61,32 @@ brw_perf_monitor(struct gl_perf_monitor_object *m)
 
 /******************************************************************************/
 
+#define COUNTER(name)           \
+   {                            \
+      .Name = name,             \
+      .Type = GL_UNSIGNED_INT,  \
+      .Minimum = { .u32 =  0 }, \
+      .Maximum = { .u32 = ~0 }, \
+   }
+
+#define COUNTER64(name)              \
+   {                                 \
+      .Name = name,                  \
+      .Type = GL_UNSIGNED_INT64_AMD, \
+      .Minimum = { .u64 =  0 },      \
+      .Maximum = { .u64 = ~0 },      \
+   }
+
+#define GROUP(name, max_active, counter_list)  \
+   {                                           \
+      .Name = name,                            \
+      .MaxActiveCounters = max_active,         \
+      .Counters = counter_list,                \
+      .NumCounters = ARRAY_SIZE(counter_list), \
+   }
+
+/******************************************************************************/
+
 static GLboolean brw_is_perf_monitor_result_available(struct gl_context *, struct gl_perf_monitor_object *);
 
 static void
-- 
1.8.3.2



More information about the mesa-dev mailing list