summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp
diff options
context:
space:
mode:
authorFrancisco Jerez <currojerez@riseup.net>2013-12-08 04:57:35 +0100
committerFrancisco Jerez <currojerez@riseup.net>2014-02-12 23:07:57 +0100
commit756d37b1d6d09ad7ee3b8835888a49d4256e427b (patch)
tree14c42ac76c4de97878daf36da4953868288323e3 /src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp
parent4c7206bafdd7bde7617e14840812e43459682718 (diff)
downloadexternal_mesa3d-756d37b1d6d09ad7ee3b8835888a49d4256e427b.zip
external_mesa3d-756d37b1d6d09ad7ee3b8835888a49d4256e427b.tar.gz
external_mesa3d-756d37b1d6d09ad7ee3b8835888a49d4256e427b.tar.bz2
i965/fs: Add support for specifying register horizontal strides.
v2: Some improvements for copy propagation with non-contiguous register strides and mismatching types. v3: Add example of the situation that the copy propagation changes are intended to avoid. Clarify that 'fs_reg::apply_stride()' is expected to work with zero strides too. Reviewed-by: Matt Turner <mattst88@gmail.com> Reviewed-by: Paul Berry <stereotype441@gmail.com>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp')
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp b/src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp
index a2d88aa..2aeabad 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_live_variables.cpp
@@ -85,7 +85,7 @@ fs_live_variables::setup_one_read(bblock_t *block, fs_inst *inst,
* would get stomped by the first decode as well.
*/
int end_ip = ip;
- if (v->dispatch_width == 16 && (reg.smear != -1 ||
+ if (v->dispatch_width == 16 && (reg.smear != -1 || reg.stride == 0 ||
(v->pixel_x.reg == reg.reg ||
v->pixel_y.reg == reg.reg))) {
end_ip++;