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>
Thu, 14 Apr 2016 22:59:33 +0000 (15:59 -0700)
commit963513bb24bdd542f1af3733fab53ad450d3221b
treea5c14c3a629ebdb80685c0f39a89e6526ee73344
parent71f8039f728eb0a67e471321da61f0e88aec8035
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.

Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_fs.cpp