i965/fs: Rewrite fs_visitor::split_virtual_grfs
authorJason Ekstrand <jason.ekstrand@intel.com>
Tue, 19 Aug 2014 20:57:11 +0000 (13:57 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Tue, 30 Sep 2014 17:29:13 +0000 (10:29 -0700)
commit3dc3fccb7586e6198c50114d6245017fc9badde8
tree552a17b7b741470bdb6629d40c0fa44960dad02c
parentf9da0740e22f27a6f8bd429f0bb768752b311398
i965/fs: Rewrite fs_visitor::split_virtual_grfs

The original vgrf splitting code was written with the assumption that vgrfs
came in two types: those that can be split into single registers and those
that can't be split at all It was very conservative and bailed as soon as
more than one element of a register was read or written.  This won't work
once we start allowing a regular MOV or ADD operation to operate on
multiple registers.  This rewrite allows for the case where a vgrf of size
5 may appropriately be split in to one register of size 1 and two registers
of size 2.

Signed-off-by: Jason Ekstrand <jason.ekstrand@intel.com>
Acked-by: Matt Turner <mattst88@gmail.com>
src/mesa/drivers/dri/i965/brw_fs.cpp