On 8 February 2017 at 18:03, Marek Olšák <mar...@gmail.com> wrote: > From: Eric Anholt <e...@anholt.net> > > v2: Rebase on the Begin/End changes, and just disable this feature on > non-GL-core. > --- > src/mapi/glapi/gen/gl_marshal.py | 10 ++++++++++ > src/mesa/Makefile.sources | 2 ++ > src/mesa/main/glthread.c | 25 +++++++++++++++++++++++++ > 3 files changed, 37 insertions(+) > > diff --git a/src/mapi/glapi/gen/gl_marshal.py > b/src/mapi/glapi/gen/gl_marshal.py > index f8dfa00..e4137f4 100644 > --- a/src/mapi/glapi/gen/gl_marshal.py > +++ b/src/mapi/glapi/gen/gl_marshal.py > @@ -59,20 +59,30 @@ def indent(delta = 3): > class PrintCode(gl_XML.gl_print_base): > def __init__(self): > super(PrintCode, self).__init__() > > self.name = 'gl_marshal.py' > self.license = license.bsd_license_template % ( > 'Copyright (C) 2012 Intel Corporation', 'INTEL CORPORATION') > > def printRealHeader(self): > print header > + print '#include <X11/Xlib-xcb.h>' > + print > + print 'static _X_INLINE int safe_mul(int a, int b)' > + print '{' > + print ' if (a < 0 || b < 0) return -1;' > + print ' if (a == 0 || b == 0) return 0;' > + print ' if (a > INT_MAX / b) return -1;' > + print ' return a * b;' > + print '}' > + print > Seemingly unrelated hunk ?
> --- a/src/mesa/main/glthread.c > +++ b/src/mesa/main/glthread.c > @@ -47,22 +47,30 @@ glthread_allocate_batch(struct gl_context *ctx) > static void > glthread_unmarshal_batch(struct gl_context *ctx, struct glthread_batch > *batch) > { > + size_t pos = 0; > + > _glapi_set_dispatch(ctx->CurrentServerDispatch); > > + while (pos < batch->used) { > + pos += _mesa_unmarshal_dispatch_cmd(ctx, &batch->buffer[pos]); > + } > + Nit: drop the curly brackets. > void > _mesa_glthread_init(struct gl_context *ctx) > { > struct glthread_state *glthread = calloc(1, sizeof(*glthread)); > > if (!glthread) > return; > > + /* The marshalling dispatch table isn't integrated with the Begin/End > + * dispatch table for desktop OpenGL, and the drawing functions are > + * synchronous to support user vertex arrays on everything but GL core > + * (even GLES 2/3) anyway, which means you'll end up with too much > overhead > + * from threading. > + */ > + if (ctx->API != API_OPENGL_CORE) > + return; Leaking glthread ? -Emil _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev