i965/sched: Simplify work done by add_barrier_deps().
authorMatt Turner <mattst88@gmail.com>
Thu, 18 Aug 2016 23:47:05 +0000 (16:47 -0700)
committerMatt Turner <mattst88@gmail.com>
Fri, 19 Aug 2016 23:52:25 +0000 (16:52 -0700)
commita73116ecc60414ade89802150b707b3336d8d50f
tree8ff8f65d3552fa4bc728ca8917e4a6e9b87af86d
parente7c376adfdecd4c1333997c8be8bb066a87c67b4
i965/sched: Simplify work done by add_barrier_deps().

Scheduling barriers are implemented by placing a dependence on every
node before and after the barrier. This is unnecessary as we can limit
the number of nodes we place dependencies on to those between us and the
next barrier in each direction.

Runtime of dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.23
is reduced from ~25 minutes to a little more than three.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94681
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_schedule_instructions.cpp