mesa: ensure UsesFogFragCoord value is set for non-glsl shaders
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.
This commit is contained in:
parent
578230dbbf
commit
b3e8e1cd4c
|
@ -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; */
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue