i965: Initialize performance monitor Groups/NumGroups.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 31 Oct 2013 23:00:23 +0000 (16:00 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 21 Nov 2013 23:01:13 +0000 (15:01 -0800)
Since we don't support any counters, there are zero groups.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/brw_performance_monitor.c

index a7a79ff8e3c1a833e773e98f681bcbed8c4618a4..34f2aa3e65fdd3e16501aff8f6501d3a2fce4fc0 100644 (file)
@@ -85,6 +85,31 @@ brw_perf_monitor(struct gl_perf_monitor_object *m)
       .NumCounters = ARRAY_SIZE(counter_list), \
    }
 
+/**
+ * Ironlake:
+ *  @{
+ */
+const static struct gl_perf_monitor_group gen5_groups[] = {
+   /* Our pipeline statistics counter handling requires hardware contexts. */
+};
+/** @} */
+
+/**
+ * Sandybridge:
+ *  @{
+ */
+const static struct gl_perf_monitor_group gen6_groups[] = {
+};
+/** @} */
+
+/**
+ * Ivybridge/Baytrail/Haswell:
+ *  @{
+ */
+const static struct gl_perf_monitor_group gen7_groups[] = {
+};
+/** @} */
+
 /******************************************************************************/
 
 static GLboolean brw_is_perf_monitor_result_available(struct gl_context *, struct gl_perf_monitor_object *);
@@ -241,5 +266,14 @@ brw_init_performance_monitors(struct brw_context *brw)
    ctx->Driver.IsPerfMonitorResultAvailable = brw_is_perf_monitor_result_available;
    ctx->Driver.GetPerfMonitorResult = brw_get_perf_monitor_result;
 
-   /* ...need to set ctx->PerfMonitor.Groups and ctx->PerfMonitor.NumGroups */
+   if (brw->gen == 5) {
+      ctx->PerfMonitor.Groups = gen5_groups;
+      ctx->PerfMonitor.NumGroups = ARRAY_SIZE(gen5_groups);
+   } else if (brw->gen == 6) {
+      ctx->PerfMonitor.Groups = gen6_groups;
+      ctx->PerfMonitor.NumGroups = ARRAY_SIZE(gen6_groups);
+   } else if (brw->gen == 7) {
+      ctx->PerfMonitor.Groups = gen7_groups;
+      ctx->PerfMonitor.NumGroups = ARRAY_SIZE(gen7_groups);
+   }
 }