ilo: correctly initialize undefined registers in fs

Initialize all 4 channels of undefined registers (that is, TEMPs that are used
before being assigned) in FS.
This commit is contained in:
Chia-I Wu 2013-07-11 06:39:05 +08:00
parent a06ee5a09e
commit 29af29b8dc

View file

@ -2136,11 +2136,21 @@ ra_get_src(struct toy_tgsi *tgsi,
struct toy_dst dst = tdst_from(src);
dst.writemask = TOY_WRITEMASK_XYZW;
/*
* Always initialize registers. Otherwise, if the random value
* ends up in a VUE, FS may fail to interpolate correctly.
*/
tc_MOV(tgsi->tc, dst, tsrc_type(tsrc_imm_d(0), type));
/* always initialize registers before use */
if (tgsi->aos) {
tc_MOV(tgsi->tc, dst, tsrc_type(tsrc_imm_d(0), type));
}
else {
struct toy_dst tdst[4];
int i;
tdst_transpose(dst, tdst);
for (i = 0; i < 4; i++) {
tc_MOV(tgsi->tc, tdst[i],
tsrc_type(tsrc_imm_d(0), type));
}
}
}
break;
default: