gallium/u_threaded: drop and ignore all non-async debug callbacks
This is necessary to comply with OpenGL. Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
parent
4c98afb241
commit
e24d094d70
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue