From: Kenneth Graunke Date: Mon, 9 May 2016 05:45:01 +0000 (-0700) Subject: mesa: Call TransformFeedback driver hooks before setting flags. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=47fbe178fa631ae855fa862d638f5313a2b13bc3;p=mesa.git mesa: Call TransformFeedback driver hooks before setting flags. This way, the driver's EndTransformFeedback() hook can tell whether the transform feedback operation was paused. It's also convenient to have Paused remain false until the driver's PauseTransformFeedback hook finishes. Signed-off-by: Kenneth Graunke Reviewed-by: Dave Airlie Reviewed-by: Jordan Justen --- diff --git a/src/mesa/main/transformfeedback.c b/src/mesa/main/transformfeedback.c index c92f0ccd5a5..9c06bc84009 100644 --- a/src/mesa/main/transformfeedback.c +++ b/src/mesa/main/transformfeedback.c @@ -505,12 +505,12 @@ _mesa_EndTransformFeedback(void) FLUSH_VERTICES(ctx, 0); ctx->NewDriverState |= ctx->DriverFlags.NewTransformFeedback; + assert(ctx->Driver.EndTransformFeedback); + ctx->Driver.EndTransformFeedback(ctx, obj); + ctx->TransformFeedback.CurrentObject->Active = GL_FALSE; ctx->TransformFeedback.CurrentObject->Paused = GL_FALSE; ctx->TransformFeedback.CurrentObject->EndedAnytime = GL_TRUE; - - assert(ctx->Driver.EndTransformFeedback); - ctx->Driver.EndTransformFeedback(ctx, obj); } @@ -1173,10 +1173,10 @@ _mesa_PauseTransformFeedback(void) FLUSH_VERTICES(ctx, 0); ctx->NewDriverState |= ctx->DriverFlags.NewTransformFeedback; - obj->Paused = GL_TRUE; - assert(ctx->Driver.PauseTransformFeedback); ctx->Driver.PauseTransformFeedback(ctx, obj); + + obj->Paused = GL_TRUE; }