On 11.05.2017 23:01, Marek Olšák wrote:
On Thu, May 11, 2017 at 9:02 PM, Nicolai Hähnle <nhaeh...@gmail.com> >
Some general remarks:
Violating the "async" promise on debug callbacks is a problem. This breaks
the OpenGL API in a place where it wasn't broken before, and that's not
okay. I'm not sure what to do about this precisely, but the spec is very
explicit:
"When DEBUG_OUTPUT_SYNCHRONOUS is enabled, the driver guarantees
synchronous calls to the callback routine by the context. When
synchronous callbacks are enabled, all calls to the callback
routine will be made by the thread that owns the current context;
all such calls will be made serially by the current context; and
each call will be made before the GL command that generated the
debug message is allowed to return."
The last part is the strictest and implies that sync-ing becomes mandatory.
Maybe this can be handled without a performance impact by swapping out
pipe_context function pointers when the debug callback changes to !async.
We can probably just drop !async set_debug_callback calls and handle
shader-db as a special case, e.g. set GALLIUM_THREAD=0 in
shader-db/run.
Yes, that works as well.
Cheers,
Nicolai
Marek
--
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev