UPSTREAM: i965: Use is_scheduling_barrier instead of schedule_node::is_barrier.
Commit a73116ecc60414ade89802150b tried to make add_barrier_deps()
walk to the next barrier, and stop. To accomplish that, it added an
is_barrier flag. Unfortunately, this only works half of the time.
The issue is that add_barrier_deps() walks both backward (to the
previous barrier), and forward (to the next barrier). It also sets
is_barrier. Assuming that we're processing instructions in forward
order, this means that is_barrier will be set for previous instructions,
but not future ones. So we'll never see it, and walk further than we
need to.
dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.23
now compiles its shaders in 3.6 seconds instead of 3.3 minutes.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Tested-by: Pallavi G <pallavi.g@intel.com>
(cherry picked from 68f69ebdccca16246bafd86e86ed80fab369009b)
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103322
BUG=b:67394445
TEST=On DUT, `time deqp-gles31 -n 'dEQP-GLES31.functional.ssbo.*'`
1 file changed