This also fixes a conform mustpass failure we're seeing. Reviewed-by: Roland Scheidegger <srol...@vmware.com>
Am 26.06.2017 um 02:49 schrieb Marek Olšák: > From: Marek Olšák <marek.ol...@amd.com> > > Broken by: > > commit 00173d91b70ae4dcea7c6324ee4858c498cae14b > Author: Marek Olšák <marek.ol...@amd.com> > Date: Sat Jun 10 12:09:43 2017 +0200 > > mesa: don't flag _NEW_TRANSFORM for st/mesa if possible > > It also optimizes the case slightly for GL core. > > It doesn't try to fix that glEnable might be a bad place to do the > clip plane transformation. > --- > src/mesa/main/enable.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c > index e1293f9..18a288d 100644 > --- a/src/mesa/main/enable.c > +++ b/src/mesa/main/enable.c > @@ -354,22 +354,27 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, > GLboolean state) > if (ctx->API == API_OPENGL_COMPAT || ctx->API == API_OPENGLES || > !ctx->DriverFlags.NewClipPlaneEnable) { > FLUSH_VERTICES(ctx, _NEW_TRANSFORM); > } else { > FLUSH_VERTICES(ctx, 0); > } > ctx->NewDriverState |= ctx->DriverFlags.NewClipPlaneEnable; > > if (state) { > ctx->Transform.ClipPlanesEnabled |= (1 << p); > - if (ctx->API == API_OPENGL_COMPAT || ctx->API == API_OPENGLES) > + > + /* The projection matrix transforms the clip plane. */ > + /* TODO: glEnable might not be the best place to do it. */ > + if (ctx->API == API_OPENGL_COMPAT || ctx->API == > API_OPENGLES) { > _mesa_update_clip_plane(ctx, p); > + ctx->NewDriverState |= ctx->DriverFlags.NewClipPlane; > + } > } > else { > ctx->Transform.ClipPlanesEnabled &= ~(1 << p); > } > } > break; > case GL_COLOR_MATERIAL: > if (ctx->API != API_OPENGL_COMPAT && ctx->API != API_OPENGLES) > goto invalid_enum_error; > if (ctx->Light.ColorMaterialEnabled == state) > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev