i965/fs: Push small uniform arrays
authorJason Ekstrand <jason.ekstrand@intel.com>
Wed, 9 Dec 2015 01:34:38 +0000 (17:34 -0800)
committerJason Ekstrand <jason.ekstrand@intel.com>
Mon, 14 Dec 2015 23:58:10 +0000 (15:58 -0800)
commit091b6156dd8553979336c15acdaf140e5419c483
treeabb5ac46d3cff871525f34aca0cbaaaf9234d9f3
parent63c313de84afa9ee65f5d98e1c843ace3a5c9f21
i965/fs: Push small uniform arrays

Unfortunately, this also means that we need to use a slightly different
algorithm for assign_constant_locations.  The old algorithm worked based on
the assumption that each read of a uniform value read exactly one float.
If it encountered a MOV_INDIRECT, it would immediately bail and push the
whole thing.  Since we can now read ranges using MOV_INDIRECT, we need to
be able to push a series of floats without breaking them up.  To do this,
we use an algorithm similar to the on in split_virtual_grfs.
src/mesa/drivers/dri/i965/brw_fs.cpp