r300: clean fog_attr/wpos_attr if code accessing these attributes has been removed FP during compilation

This commit is contained in:
Maciej Cencora 2010-03-21 11:19:02 +01:00
parent 516334b7ff
commit 70929f4505

View file

@ -256,6 +256,19 @@ static void translate_fragment_program(GLcontext *ctx, struct r300_fragment_prog
fp->InputsRead = compiler.Base.Program.InputsRead;
/* Clear the fog/wpos_attr if code accessing these
* attributes has been removed during compilation
*/
if (fp->fog_attr != FRAG_ATTRIB_MAX) {
if (!(fp->InputsRead & (1 << fp->fog_attr)))
fp->fog_attr = FRAG_ATTRIB_MAX;
}
if (fp->wpos_attr != FRAG_ATTRIB_MAX) {
if (!(fp->InputsRead & (1 << fp->wpos_attr)))
fp->wpos_attr = FRAG_ATTRIB_MAX;
}
rc_destroy(&compiler.Base);
}