i965: Ask the register allocator to round-robin through registers.
authorEric Anholt <eric@anholt.net>
Sat, 1 Dec 2012 00:34:09 +0000 (16:34 -0800)
committerEric Anholt <eric@anholt.net>
Thu, 4 Apr 2013 19:51:06 +0000 (12:51 -0700)
commitb6e9b54d066d29d250c4502e0005b317589dd8b3
tree8b173e6dace1abf226454293a34cf6e0aeb1c011
parentbe9a42e980d9555f4f4c6c4a248dc269766085d9
i965: Ask the register allocator to round-robin through registers.

The way we were allocating registers before, packing into low register
numbers for Ironlake, resulted in an overly-constrained dependency graph
for instruction scheduling.  Improves GLBenchmark 2.1 performance by
4.5% +/- 0.7% (n=26).  No difference on my old GLSL demo (n=20).  No
difference on nexuiz (n=15).

v2: Fix off-by-one bug that made the change only work for 16-wide on i965.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
src/mesa/program/register_allocate.c
src/mesa/program/register_allocate.h