summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/i965/brw_performance_monitor.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_performance_monitor.c b/src/mesa/drivers/dri/i965/brw_performance_monitor.c
index 9bddd8edf89..ff3cb97b1e1 100644
--- a/src/mesa/drivers/dri/i965/brw_performance_monitor.c
+++ b/src/mesa/drivers/dri/i965/brw_performance_monitor.c
@@ -642,6 +642,8 @@ start_oa_counters(struct brw_context *brw)
/* Pick the counter format which gives us all the counters. */
switch (brw->gen) {
+ case 5:
+ return; /* Ironlake counters are always running. */
case 6:
counter_format = 1; /* 0b001 */
break;
@@ -667,6 +669,10 @@ start_oa_counters(struct brw_context *brw)
static void
stop_oa_counters(struct brw_context *brw)
{
+ /* Ironlake counters never stop. */
+ if (brw->gen == 5)
+ return;
+
BEGIN_BATCH(3);
OUT_BATCH(MI_LOAD_REGISTER_IMM | (3 - 2));
OUT_BATCH(OACONTROL);
@@ -1367,8 +1373,7 @@ brw_perf_monitor_new_batch(struct brw_context *brw)
if (brw->perfmon.oa_users == 0)
return;
- if (brw->gen >= 6)
- start_oa_counters(brw);
+ start_oa_counters(brw);
/* Make sure bookend_bo has enough space for a pair of snapshots.
* If not, "wrap" the BO: gather up any results so far, and start from
@@ -1405,8 +1410,7 @@ brw_perf_monitor_finish_batch(struct brw_context *brw)
emit_bookend_snapshot(brw);
- if (brw->gen >= 6)
- stop_oa_counters(brw);
+ stop_oa_counters(brw);
}
/******************************************************************************/