When tearing down a GL context with an active performance query, the
implementation can be confused by a query marked active when it's
being deleted.
This shouldn't happen in the implementation because the context will
already be idle.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: <mesa-stable@lists.freedesktop.org>
Closes: https://gitlab.freedesktop.org/mesa/mesa/issues/2235
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3115>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3115>
struct gl_perf_query_object *m = data;
struct gl_context *ctx = user;
+ /* Don't confuse the implementation by deleting an active query. We can
+ * toggle Active/Used to false because we're tearing down the GL context
+ * and it's already idle (see _mesa_free_context_data).
+ */
+ m->Active = false;
+ m->Used = false;
ctx->Driver.DeletePerfQuery(ctx, m);
}