Pārlūkot izejas kodu

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.
tags/intel_2009q2_rc3
Keith Whitwell pirms 16 gadiem
vecāks
revīzija
b3e8e1cd4c
2 mainītis faili ar 8 papildinājumiem un 0 dzēšanām
  1. 7
    0
      src/mesa/shader/arbprogparse.c
  2. 1
    0
      src/mesa/shader/programopt.c

+ 7
- 0
src/mesa/shader/arbprogparse.c Parādīt failu

@@ -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);

+ 1
- 0
src/mesa/shader/programopt.c Parādīt failu

@@ -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; */
}


Notiek ielāde…
Atcelt
Saglabāt