On Fri, 2016-02-26 at 22:02 -0800, Francisco Jerez wrote: > swizzle() works for vector immediates other than VF. > --- > .../drivers/dri/i965/brw_vec4_copy_propagation.cpp | 19 > +------------------ > 1 file changed, 1 insertion(+), 18 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp > b/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp > index 6bd9928..5c25164 100644 > --- a/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp > +++ b/src/mesa/drivers/dri/i965/brw_vec4_copy_propagation.cpp > @@ -76,22 +76,6 @@ is_channel_updated(vec4_instruction *inst, src_reg > *values[4], int ch) > inst->dst.writemask & (1 << BRW_GET_SWZ(src->swizzle, ch))); > } > > -static unsigned > -swizzle_vf_imm(unsigned vf4, unsigned swizzle) > -{ > - union { > - unsigned vf4; > - uint8_t vf[4]; > - } v = { vf4 }, ret; > - > - ret.vf[0] = v.vf[BRW_GET_SWZ(swizzle, 0)]; > - ret.vf[1] = v.vf[BRW_GET_SWZ(swizzle, 1)]; > - ret.vf[2] = v.vf[BRW_GET_SWZ(swizzle, 2)]; > - ret.vf[3] = v.vf[BRW_GET_SWZ(swizzle, 3)]; > - > - return ret.vf4; > -} > - > static bool > is_logic_op(enum opcode opcode) > { > @@ -144,8 +128,7 @@ try_constant_propagate(const struct brw_device_info > *devinfo, > } > } > > - if (value.type == BRW_REGISTER_TYPE_VF) > - value.ud = swizzle_vf_imm(value.ud, inst->src[arg].swizzle); > + value = swizzle(value, inst->src[arg].swizzle);
so I guess V/UV was broken before this? Reviewed-by: Iago Toral Quiroga <ito...@igalia.com> > switch (inst->opcode) { > case BRW_OPCODE_MOV: _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev