diff options
author | Kenneth Graunke <kenneth@whitecape.org> | 2015-03-08 00:13:41 -0800 |
---|---|---|
committer | Emil Velikov <emil.l.velikov@gmail.com> | 2015-03-11 18:22:08 +0000 |
commit | 82ef4994ddc0222241b101bcda8e729e729d93b0 (patch) | |
tree | ae9d7222d37b828f5f30547213b5eba20ef3c47f | |
parent | c3fc8b2870668fe0313fd35b2789306dbf3b9594 (diff) |
i965/fs: Set smear on shader_time diff register.
The ADD(diff, diff, fs_reg(-2u)) instruction reads diff, which is a
width 1 register. We need to read it as <0,1,0> with a subreg of 0,
which is what smear accomplishes.
Fixes assertion:
brw_eu_emit.c:285: validate_reg: Assertion `hstride == 0' failed.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=86974
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Cc: mesa-stable@lists.freedesktop.org
(cherry picked from commit f1adc45dbe649cdd4538fb96f6d2a27328bbfba1)
Conflicts:
src/mesa/drivers/dri/i965/brw_fs.cpp
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index 67719d3e74c..5caea5a50e6 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -766,6 +766,7 @@ fs_visitor::emit_shader_time_end() fs_reg start = shader_start_time; start.negate = true; fs_reg diff = fs_reg(GRF, virtual_grf_alloc(1), BRW_REGISTER_TYPE_UD, 1); + diff.set_smear(0); fs_inst *add = ADD(diff, start, shader_end_time); add->force_writemask_all = true; emit(add); |