i965/fs: Use conditional sends to do FB writes on HSW+.
authorEric Anholt <eric@anholt.net>
Fri, 14 Feb 2014 05:37:50 +0000 (21:37 -0800)
committerEric Anholt <eric@anholt.net>
Tue, 18 Feb 2014 18:11:36 +0000 (10:11 -0800)
commitd92f593d8776ec157ad0e7fa2ee8c9a17fd744ce
tree59cb6533800f16fe67ee08aa2816cb52d01e4b0a
parent422679835479a053d5b5ac9cf75e2fbb7e827755
i965/fs: Use conditional sends to do FB writes on HSW+.

This drops the MOVs for header setup, which are totally mis-scheduled.

total instructions in shared programs: 1590047 -> 1589331 (-0.05%)
instructions in affected programs:     43729 -> 43013 (-1.64%)
GAINED:                                0
LOST:                                  0

glb27-trex:
x before
+ after
+-----------------------------------------------------------------------------+
|               +      x     xx        +  +    +                              |
|              ++  + xxx ++x xx + ** *x+  +  + +  x *                         |
|+x xx x*    x+++xx*x*xx+++*+*xx++** *x* x+***x*+xx+*     + *    +  +        *|
|               |__|__________MA___A___________|___|                          |
+-----------------------------------------------------------------------------+
    N           Min           Max        Median           Avg        Stddev
x  49         62.33         65.41         63.49      63.53449    0.62757822
+  50         62.28          65.4          63.7       63.6982      0.656564
No difference proven at 95.0% confidence

Reviewed-by: Matt Turner <mattst88@gmail.com>
src/mesa/drivers/dri/i965/brw_eu_emit.c
src/mesa/drivers/dri/i965/brw_fs_generator.cpp
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
src/mesa/drivers/dri/i965/gen8_fs_generator.cpp