On Sun, Mar 8, 2015 at 1:08 AM, Kenneth Graunke <kenn...@whitecape.org> wrote: > These computations don't have anything to do with the currently > executing channels, so they should use force_writemask_all. > > This fixes assert failures. > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=86974 > Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> > Cc: mesa-sta...@lists.freedesktop.org > --- > src/mesa/drivers/dri/i965/brw_fs.cpp | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp > b/src/mesa/drivers/dri/i965/brw_fs.cpp > index d6acc23..45a5793 100644 > --- a/src/mesa/drivers/dri/i965/brw_fs.cpp > +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp > @@ -759,18 +759,23 @@ fs_visitor::emit_shader_time_end() > reset.set_smear(2); > fs_inst *test = emit(AND(reg_null_d, reset, fs_reg(1u))); > test->conditional_mod = BRW_CONDITIONAL_Z; > + test->force_writemask_all = true; > emit(IF(BRW_PREDICATE_NORMAL)); > > fs_reg start = shader_start_time; > start.negate = true; > fs_reg diff = fs_reg(GRF, alloc.allocate(1), BRW_REGISTER_TYPE_UD, 1); > - emit(ADD(diff, start, shader_end_time)); > + fs_inst *add = ADD(diff, start, shader_end_time); > + add->force_writemask_all = true; > + emit(add);
Emit returns a pointer to the instruction it emitted, so you can cut one line by wrapping the ADD with emit(). Either way's fine. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev