This is necessary to comply with OpenGL.
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
struct threaded_context *tc = threaded_context(_pipe);
struct pipe_context *pipe = tc->pipe;
+ /* Drop all synchronous debug callbacks. Drivers are expected to be OK
+ * with this. shader-db will use an environment variable to disable
+ * the threaded context.
+ */
+ if (cb && cb->debug_message && !cb->async)
+ return;
+
tc_sync(tc);
pipe->set_debug_callback(pipe, cb);
}
* - generate_mipmap uses is_format_supported to determine success;
* the return value from the driver is ignored.
* - resource_commit always returns true; failures are ignored.
- * - If a non-async debug callback is set, the threaded context keeps using
- * asynchronous execution. This is OK for shader-db, but the driver
- * shouldn't use the debug callback in any other way.
+ * - set_debug_callback is skipped if the callback is synchronous.
*
*
* Thread-safety requirements on context functions