#include "main/accum.h"
#include "main/api_exec.h"
#include "main/context.h"
+#include "main/debug_output.h"
#include "main/glthread.h"
#include "main/samplerobj.h"
#include "main/shaderobj.h"
st_destroy_program_variants(st);
- _mesa_free_context_data(ctx, true);
+ /* Do not release debug_output yet because it might be in use by other threads.
+ * These threads will be terminated by _mesa_free_context_data and
+ * st_destroy_context_priv.
+ */
+ _mesa_free_context_data(ctx, false);
/* This will free the st_context too, so 'st' must not be accessed
* afterwards. */
st_destroy_context_priv(st, true);
st = NULL;
+ _mesa_destroy_debug_output(ctx);
+
free(ctx);
if (save_ctx == ctx) {