With recent changes to support frontfacing in glsl, it is necessary to ensure that the UsesFogFragCoord value is accurate in all shaders. We were previously not setting it for fixed-function and ARB_fs shaders.tags/intel_2009q2_rc3
| @@ -3922,6 +3922,13 @@ _mesa_parse_arb_fragment_program(GLcontext* ctx, GLenum target, | |||
| if (program->FogOption) | |||
| program->Base.InputsRead |= FRAG_BIT_FOGC; | |||
| /* XXX: assume that ARB fragment programs don't have access to the | |||
| * FrontFacing and PointCoord values stuffed into the fog | |||
| * coordinate in GLSL shaders. | |||
| */ | |||
| if (program->Base.InputsRead & FRAG_BIT_FOGC) | |||
| program->UsesFogFragCoord = TRUE; | |||
| if (program->Base.Instructions) | |||
| _mesa_free(program->Base.Instructions); | |||
| @@ -396,6 +396,7 @@ _mesa_append_fog_code(GLcontext *ctx, struct gl_fragment_program *fprog) | |||
| fprog->Base.Instructions = newInst; | |||
| fprog->Base.NumInstructions = inst - newInst; | |||
| fprog->Base.InputsRead |= FRAG_BIT_FOGC; | |||
| fprog->UsesFogFragCoord = GL_TRUE; | |||
| /* XXX do this? fprog->FogOption = GL_NONE; */ | |||
| } | |||