mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 07:28:11 +02:00
i965: Fix OACONTROL assertion failures on Ironlake.
I guarded half of the callers to start/stop_oa_counters with generation checks, but missed the other half (which were added later). OACONTROL doesn't exist on Ironlake, so we better not write it. Also, there's no need---Ironlake's performance counters are always running. This patch moves the generation checks into start/stop_oa_counters, rather than requiring the caller to do them. Fixes assertion failures in Piglit's AMD_performance_monitor/measure. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
4c11099453
commit
da07e1b683
1 changed files with 8 additions and 4 deletions
|
|
@ -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);
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue