intel/fs: Use split sends for surface writes on gen9+
authorJason Ekstrand <jason.ekstrand@intel.com>
Fri, 16 Nov 2018 16:46:27 +0000 (10:46 -0600)
committerJason Ekstrand <jason@jlekstrand.net>
Tue, 29 Jan 2019 18:43:55 +0000 (18:43 +0000)
commita920979d4f30a48a23f8ff375ce05fa8a947dd96
tree3e5d67997b6b699c917395a80f6d2b4684e2314b
parent014edff0d20d52191570a4cb125c37b63955d664
intel/fs: Use split sends for surface writes on gen9+

Surface reads don't need them because they just have the one address
payload.  With surface writes, on the other hand, we can put the address
and the data in the different halves and avoid building the payload all
together.

The decrease in register pressure and added freedom in register
allocation resulting from this change reduces spilling enough to improve
the performance of one customer benchmark by about 2x.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
src/intel/compiler/brw_fs.cpp
src/intel/compiler/brw_fs_builder.h