[Mesa-dev] [PATCH 0/6] i965 scheduling improvements

Connor Abbott cwabbott0 at gmail.com
Fri Oct 2 14:37:28 PDT 2015

Here's a series to fix some things I found with i965's instruction
scheduler. It also makes us print out an estimate of the cycle count,
which the shader-db patches then make use of to enable us to better
measure the impact of scheduler changes. Perhaps the most important
patch is patch 3, which fixes an embarrasing mistake which prevented us
from actually trying to hide latency most of the time. Patches 1-2 fix
some minor issues with keeping track of cycle counts, and patches 5-6
are a little more experimental.

Performance numbers for patch 3 are needed. Unfortunately, patch 3 also
fixes the cycle counts that patch 4 outputs, so we can't get a good
sense of how it's changing things without actually running benchmarks.

The series is also available at:

git://people.freedesktop.org/~cwabbott0/mesa i965-sched-conservative

There's also an i965-sched branch with some even-more-experimental patches,
which range from "this is a good idea but it hurts some stuff" to "I'm not
sure about this at all." I have some ideas about how to improve them so that
they don't regress as much, but I want to get this series out of the way
in the meantime.

Connor Abbott (6):
  i965: fix cycle estimates when there's a pipeline stall
  i965/sched: write-after-read dependencies are free
  i965: always run the post-RA scheduler
  i965: dump scheduling cycle estimates
  i965/fs: split out calculation of payload live ranges
  i965/sched: use liveness analysis for computing register pressure

 src/mesa/drivers/dri/i965/brw_cfg.h                |   4 +
 src/mesa/drivers/dri/i965/brw_fs.cpp               |   3 +-
 src/mesa/drivers/dri/i965/brw_fs.h                 |   2 +
 src/mesa/drivers/dri/i965/brw_fs_generator.cpp     |  11 +-
 src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp  |  51 +--
 .../drivers/dri/i965/brw_schedule_instructions.cpp | 343 +++++++++++++++++----
 src/mesa/drivers/dri/i965/brw_vec4_generator.cpp   |   9 +-
 7 files changed, 323 insertions(+), 100 deletions(-)


More information about the mesa-dev mailing list