Module: Mesa
Branch: master
Commit: e24d094d70a1ccd4d41b8dd245e2e3f95fb95498
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e24d094d70a1ccd4d41b8dd245e2e3f95fb95498

Author: Marek Olšák <[email protected]>
Date:   Fri May 12 01:25:49 2017 +0200

gallium/u_threaded: drop and ignore all non-async debug callbacks

This is necessary to comply with OpenGL.

Reviewed-by: Nicolai Hähnle <[email protected]>

---

 src/gallium/auxiliary/util/u_threaded_context.c | 7 +++++++
 src/gallium/auxiliary/util/u_threaded_context.h | 4 +---
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/gallium/auxiliary/util/u_threaded_context.c 
b/src/gallium/auxiliary/util/u_threaded_context.c
index b44430fd09..50cb820440 100644
--- a/src/gallium/auxiliary/util/u_threaded_context.c
+++ b/src/gallium/auxiliary/util/u_threaded_context.c
@@ -1592,6 +1592,13 @@ tc_set_debug_callback(struct pipe_context *_pipe,
    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);
 }
diff --git a/src/gallium/auxiliary/util/u_threaded_context.h 
b/src/gallium/auxiliary/util/u_threaded_context.h
index ea58d4ca0c..f13923050a 100644
--- a/src/gallium/auxiliary/util/u_threaded_context.h
+++ b/src/gallium/auxiliary/util/u_threaded_context.h
@@ -55,9 +55,7 @@
  *    - 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

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to