fix InputsRead bug in _mesa_combine_programs()
diff --git a/src/mesa/shader/program.c b/src/mesa/shader/program.c
index 2d8b887..ed1aacd 100644
--- a/src/mesa/shader/program.c
+++ b/src/mesa/shader/program.c
@@ -469,6 +469,7 @@
    const GLuint lenB = progB->NumInstructions;
    const GLuint numParamsA = _mesa_num_parameters(progA->Parameters);
    const GLuint newLength = lenA + lenB;
+   GLbitfield inputsB;
    GLuint i;
 
    ASSERT(progA->Target == progB->Target);
@@ -498,8 +499,11 @@
                            PROGRAM_OUTPUT, FRAG_RESULT_COLR);
       }
 
-      newProg->InputsRead = progA->InputsRead;
-      newProg->InputsRead |= (progB->InputsRead & ~(1 << FRAG_ATTRIB_COL0));
+      inputsB = progB->InputsRead;
+      if (progA->OutputsWritten & (1 << FRAG_RESULT_COLR)) {
+         inputsB &= ~(1 << FRAG_ATTRIB_COL0);
+      }
+      newProg->InputsRead = progA->InputsRead | inputsB;
       newProg->OutputsWritten = progB->OutputsWritten;
    }
    else {