GLenum mode_before_gs = mode;
if (tes) {
- if (tes->TessEval.PointMode)
+ struct gl_shader *tes_sh = tes->_LinkedShaders[MESA_SHADER_TESS_EVAL];
+ if (tes_sh->TessEval.PointMode)
mode_before_gs = GL_POINTS;
- else if (tes->TessEval.PrimitiveMode == GL_ISOLINES)
+ else if (tes_sh->TessEval.PrimitiveMode == GL_ISOLINES)
mode_before_gs = GL_LINES;
else
/* the GL_QUADS mode generates triangles too */
else if (ctx->_Shader->CurrentProgram[MESA_SHADER_TESS_EVAL]) {
struct gl_shader_program *tes =
ctx->_Shader->CurrentProgram[MESA_SHADER_TESS_EVAL];
-
- if (tes->TessEval.PointMode)
+ struct gl_shader *tes_sh = tes->_LinkedShaders[MESA_SHADER_TESS_EVAL];
+ if (tes_sh->TessEval.PointMode)
pass = ctx->TransformFeedback.Mode == GL_POINTS;
- else if (tes->TessEval.PrimitiveMode == GL_ISOLINES)
+ else if (tes_sh->TessEval.PrimitiveMode == GL_ISOLINES)
pass = ctx->TransformFeedback.Mode == GL_LINES;
else
pass = ctx->TransformFeedback.Mode == GL_TRIANGLES;