Please ignore above patch. On Wed, Mar 29, 2017 at 5:48 PM, Bartosz Tomczyk < bartosz.tomczy...@gmail.com> wrote:
> This avoids costly thread synchronisation. With this fix games that > previously regressed with mesa_glthread=true like xonotic or grid autosport. > Could someone test if games that benefit from glthread didn't regress? > --- > src/mesa/main/glthread.c | 17 +++++++++++++---- > 1 file changed, 13 insertions(+), 4 deletions(-) > > diff --git a/src/mesa/main/glthread.c b/src/mesa/main/glthread.c > index 06115b916d..d46288c242 100644 > --- a/src/mesa/main/glthread.c > +++ b/src/mesa/main/glthread.c > @@ -252,12 +252,21 @@ _mesa_glthread_finish(struct gl_context *ctx) > if (pthread_self() == glthread->thread) > return; > > - _mesa_glthread_flush_batch(ctx); > - > pthread_mutex_lock(&glthread->mutex); > > - while (glthread->batch_queue || glthread->busy) > - pthread_cond_wait(&glthread->work_done, &glthread->mutex); > + if (!(glthread->batch_queue || glthread->busy)) > + { > + if (glthread->batch && glthread->batch->used) > + { > + glthread_unmarshal_batch(ctx, glthread->batch); > + } > + glthread_allocate_batch(ctx); > + } > + else > + { > + while (glthread->batch_queue || glthread->busy) > + pthread_cond_wait(&glthread->work_done, &glthread->mutex); > + } > > pthread_mutex_unlock(&glthread->mutex); > } > -- > 2.12.2 > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev