diff options
author | Lionel Landwerlin <lionel.g.landwerlin@intel.com> | 2019-12-16 17:58:41 +0200 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2019-12-17 09:21:14 -0800 |
commit | 687df737af0a07e90e5f9f0b303fc320f9a0839f (patch) | |
tree | 448fe6fb458c24decaf850845c4befd040ced474 | |
parent | 1949c2a323b98e5fdc7062cc113305d76fef7486 (diff) |
mesa: avoid triggering assert in implementation
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>
(cherry picked from commit 2c8742ed858c6446c93bddec117abf467a393c35)
-rw-r--r-- | src/mesa/main/performance_query.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mesa/main/performance_query.c b/src/mesa/main/performance_query.c index b9e7cf9961b..1eaf0bb1a76 100644 --- a/src/mesa/main/performance_query.c +++ b/src/mesa/main/performance_query.c @@ -48,6 +48,12 @@ free_performance_query(GLuint key, void *data, void *user) 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); } |