mesa: choose GLSL vertex shader over ARB/internal vertex program in get_fp_input_mask()
This is a work-around the for the fact that we do fragment shader state validation before vertex shader validation (see comments in state.c) so in get_fp_input_mask() we can't rely on ctx->VertexProgram._Current being up to date yet. This fixes a glean glsl1 test failure.
This commit is contained in:
@@ -258,7 +258,19 @@ static GLbitfield get_fp_input_mask( GLcontext *ctx )
|
||||
}
|
||||
else {
|
||||
/* calculate from vp->outputs */
|
||||
GLbitfield vp_outputs = ctx->VertexProgram._Current->Base.OutputsWritten;
|
||||
struct gl_vertex_program *vprog;
|
||||
GLbitfield vp_outputs;
|
||||
|
||||
/* Choose GLSL vertex shader over ARB vertex program. Need this
|
||||
* since vertex shader state validation comes after fragment state
|
||||
* validation (see additional comments in state.c).
|
||||
*/
|
||||
if (vertexShader)
|
||||
vprog = ctx->Shader.CurrentProgram->VertexProgram;
|
||||
else
|
||||
vprog = ctx->VertexProgram._Current;
|
||||
|
||||
vp_outputs = vprog->Base.OutputsWritten;
|
||||
|
||||
/* These get generated in the setup routine regardless of the
|
||||
* vertex program:
|
||||
|
||||
Reference in New Issue
Block a user