So we may have a cast where the destination register mask is not fully rgba (or xyzw). Which means that they just want single components from the texture. So if they dont request alpha then we shouldnt need to fetch from the alpha texture. So you should put a if (dr.mask != 0) around each texture2D. Did you have issues doing this?