Ping On Sat, Nov 10, 2018 at 1:29 AM Marek Olšák <mar...@gmail.com> wrote:
> From: Marek Olšák <marek.ol...@amd.com> > > If you insert printf there, you'll know why glthread was disabled. > --- > src/mapi/glapi/gen/gl_marshal.py | 2 +- > src/mesa/main/glthread.c | 4 ++-- > src/mesa/main/glthread.h | 2 +- > src/mesa/main/marshal.c | 2 +- > 4 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/src/mapi/glapi/gen/gl_marshal.py > b/src/mapi/glapi/gen/gl_marshal.py > index 5b35357ac54..4fd2bc2a5b9 100644 > --- a/src/mapi/glapi/gen/gl_marshal.py > +++ b/src/mapi/glapi/gen/gl_marshal.py > @@ -242,21 +242,21 @@ class PrintCode(gl_XML.gl_print_base): > out('{0} *cmd;'.format(struct)) > > out('debug_print_marshal("{0}");'.format(func.name)) > > need_fallback_sync = self.validate_count_or_fallback(func) > > if func.marshal_fail: > out('if ({0}) {{'.format(func.marshal_fail)) > with indent(): > out('_mesa_glthread_finish(ctx);') > - out('_mesa_glthread_restore_dispatch(ctx);') > + out('_mesa_glthread_restore_dispatch(ctx, __func__);') > self.print_sync_dispatch(func) > out('return;') > out('}') > > out('if (cmd_size <= MARSHAL_MAX_CMD_SIZE) {') > with indent(): > self.print_async_dispatch(func) > out('return;') > out('}') > > diff --git a/src/mesa/main/glthread.c b/src/mesa/main/glthread.c > index 18a83bb9be4..8610d1ef933 100644 > --- a/src/mesa/main/glthread.c > +++ b/src/mesa/main/glthread.c > @@ -114,25 +114,25 @@ _mesa_glthread_destroy(struct gl_context *ctx) > > _mesa_glthread_finish(ctx); > util_queue_destroy(&glthread->queue); > > for (unsigned i = 0; i < MARSHAL_MAX_BATCHES; i++) > util_queue_fence_destroy(&glthread->batches[i].fence); > > free(glthread); > ctx->GLThread = NULL; > > - _mesa_glthread_restore_dispatch(ctx); > + _mesa_glthread_restore_dispatch(ctx, "destroy"); > } > > void > -_mesa_glthread_restore_dispatch(struct gl_context *ctx) > +_mesa_glthread_restore_dispatch(struct gl_context *ctx, const char *func) > { > /* Remove ourselves from the dispatch table except if another > ctx/thread > * already installed a new dispatch table. > * > * Typically glxMakeCurrent will bind a new context (install new > table) then > * old context might be deleted. > */ > if (_glapi_get_dispatch() == ctx->MarshalExec) { > ctx->CurrentClientDispatch = ctx->CurrentServerDispatch; > _glapi_set_dispatch(ctx->CurrentClientDispatch); > diff --git a/src/mesa/main/glthread.h b/src/mesa/main/glthread.h > index 8cd5d022674..59cb95feb4a 100644 > --- a/src/mesa/main/glthread.h > +++ b/src/mesa/main/glthread.h > @@ -92,15 +92,15 @@ struct glthread_state > /** > * Tracks on the main thread side whether the current element array > (index > * buffer) binding is in a VBO. > */ > bool element_array_is_vbo; > }; > > void _mesa_glthread_init(struct gl_context *ctx); > void _mesa_glthread_destroy(struct gl_context *ctx); > > -void _mesa_glthread_restore_dispatch(struct gl_context *ctx); > +void _mesa_glthread_restore_dispatch(struct gl_context *ctx, const char > *func); > void _mesa_glthread_flush_batch(struct gl_context *ctx); > void _mesa_glthread_finish(struct gl_context *ctx); > > #endif /* _GLTHREAD_H*/ > diff --git a/src/mesa/main/marshal.c b/src/mesa/main/marshal.c > index 8f8e8c78ed2..1827585ef0a 100644 > --- a/src/mesa/main/marshal.c > +++ b/src/mesa/main/marshal.c > @@ -82,21 +82,21 @@ _mesa_unmarshal_Enable(struct gl_context *ctx, > > void GLAPIENTRY > _mesa_marshal_Enable(GLenum cap) > { > GET_CURRENT_CONTEXT(ctx); > struct marshal_cmd_Enable *cmd; > debug_print_marshal("Enable"); > > if (cap == GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB) { > _mesa_glthread_finish(ctx); > - _mesa_glthread_restore_dispatch(ctx); > + _mesa_glthread_restore_dispatch(ctx, > "Enable(DEBUG_OUTPUT_SYNCHRONOUS)"); > } else { > cmd = _mesa_glthread_allocate_command(ctx, DISPATCH_CMD_Enable, > sizeof(*cmd)); > cmd->cap = cap; > _mesa_post_marshal_hook(ctx); > return; > } > > _mesa_glthread_finish(ctx); > debug_print_sync_fallback("Enable"); > -- > 2.17.1 > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev