Am 11.10.2015 um 03:29 schrieb Marek Olšák: > From: Marek Olšák <marek.ol...@amd.com> > > This is useful only when emit functions use it. > The new radeonsi min/max opcode implementation requires this. > --- > src/gallium/auxiliary/gallivm/lp_bld_tgsi.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi.c > b/src/gallium/auxiliary/gallivm/lp_bld_tgsi.c > index c4ae304..c50d83e 100644 > --- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi.c > +++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi.c > @@ -114,12 +114,17 @@ lp_build_emit_llvm( > struct lp_build_emit_data * emit_data) > { > struct lp_build_tgsi_action * action = &bld_base->op_actions[tgsi_opcode]; > + const struct tgsi_opcode_info *old_info = emit_data->info; > /* XXX: Assert that this is a componentwise or replicate instruction */ > > lp_build_action_set_dst_type(emit_data, bld_base, tgsi_opcode); > emit_data->chan = 0; > + > + /* Set and restore the opcode info. */ > + emit_data->info = tgsi_get_opcode_info(tgsi_opcode); > assert(action->emit); > action->emit(action, bld_base, emit_data); > + emit_data->info = old_info; > return emit_data->output[0]; > } > >
Could you elaborate why this is necessary? Looks like a hack and I can't see why opcode info would be wrong in the first place. Or if that's never set correctly and you just need it to be able to distinguish min/max later, I'd suggest you shouldn't do that and just use different functions. Roland _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev