i965/fs: Assign URB/CURB register numbers after instruction scheduling.
authorEric Anholt <eric@anholt.net>
Wed, 19 Jan 2011 06:03:34 +0000 (22:03 -0800)
committerEric Anholt <eric@anholt.net>
Thu, 20 Jan 2011 00:29:14 +0000 (16:29 -0800)
commit1991d92207cf629ba4ceead4bfc3f768d7b9e402
tree45392f0f72e2a6bec1d6e7d7211c97f6e85b5fe8
parent63879d90ace519749fed228ca0e21b5b56c7e1c0
i965/fs: Assign URB/CURB register numbers after instruction scheduling.

This fixes a bunch of unnecessary barriers due to the scheduler not
knowing what that arbitrary register description refers to when trying
to reason about its dependencies.

The result is rescheduling in the convolution kernel shader in
Lightsmark, which results in avoiding register spilling and increasing
the performance of the first scene from 6-7 fps midway through the
panning to 11fps.  The register spilling was a regression from Mesa
7.9 to Mesa 7.10.
src/mesa/drivers/dri/i965/brw_fs.cpp