From 47fbe178fa631ae855fa862d638f5313a2b13bc3 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Sun, 8 May 2016 22:45:01 -0700 Subject: [PATCH] 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 --- src/mesa/main/transformfeedback.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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; }