Gentle ping. PS: I also pinged Matt about this, but (again) probably Friday evening is not the best time for reminders ;)
On 23/10/15 16:17, Alejandro Piñeiro wrote: > Equivalent to commit 4eebeb but with sel operations. In this case > we select the PredCtrl based on the writemask. > > This change allows cmod propagation to optimize out several > instructions. > > Shader-db numbers: > total instructions in shared programs: 6235835 -> 6228008 (-0.13%) > instructions in affected programs: 219850 -> 212023 (-3.56%) > total loops in shared programs: 1979 -> 1979 (0.00%) > helped: 1192 > HURT: 0 > --- > src/mesa/drivers/dri/i965/brw_vec4_nir.cpp | 18 +++++++++++++++++- > 1 file changed, 17 insertions(+), 1 deletion(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp > b/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp > index 0f04f65..bc86be6 100644 > --- a/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp > +++ b/src/mesa/drivers/dri/i965/brw_vec4_nir.cpp > @@ -1437,8 +1437,24 @@ vec4_visitor::nir_emit_alu(nir_alu_instr *instr) > case nir_op_bcsel: > emit(CMP(dst_null_d(), op[0], src_reg(0), BRW_CONDITIONAL_NZ)); > inst = emit(BRW_OPCODE_SEL, dst, op[1], op[2]); > - inst->predicate = BRW_PREDICATE_NORMAL; > + switch (dst.writemask) { > + case WRITEMASK_X: > + inst->predicate = BRW_PREDICATE_ALIGN16_REPLICATE_X; > + break; > + case WRITEMASK_Y: > + inst->predicate = BRW_PREDICATE_ALIGN16_REPLICATE_Y; > + break; > + case WRITEMASK_Z: > + inst->predicate = BRW_PREDICATE_ALIGN16_REPLICATE_Z; > + break; > + case WRITEMASK_W: > + inst->predicate = BRW_PREDICATE_ALIGN16_REPLICATE_W; > + break; > + default: > + inst->predicate = BRW_PREDICATE_NORMAL; > break; > + } > + break; > > case nir_op_fdot_replicated2: > inst = emit(BRW_OPCODE_DP2, dst, op[0], op[1]); -- Alejandro Piñeiro (apinhe...@igalia.com) _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev