llvmpipe: Make a llvmpipe OpenGL context thread safe.
authorMathias Fröhlich <Mathias.Froehlich@gmx.net>
Sun, 13 Jul 2014 10:49:41 +0000 (12:49 +0200)
committerMathias Fröhlich <Mathias.Froehlich@gmx.net>
Tue, 30 Sep 2014 18:51:02 +0000 (20:51 +0200)
commitd90ff351f3a3598834f77b9c0723532b3abd3cd5
tree338b6fcba4f86b70fee872efca7d9947dee31eab
parent83c62597fc8eb38bf274fa1a3ca03c6adafb4bf9
llvmpipe: Make a llvmpipe OpenGL context thread safe.

This fixes the remaining problem with the recently introduced
global jit memory manager. This change again uses a memory manager
that is local to gallivm_state. This implementation still frees
the majority of the memory immediately after compilation.
Only the generated code is deferred until this code is no longer used.

This change and the previous one using private LLVMContext instances
I can now safely run several independent OpenGL contexts driven
by llvmpipe from different threads.

v3: Rebase on llvm-3.6 compile fixes.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Signed-off-by: Mathias Froehlich <Mathias.Froehlich@web.de>
src/gallium/auxiliary/gallivm/lp_bld_init.c
src/gallium/auxiliary/gallivm/lp_bld_init.h
src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
src/gallium/auxiliary/gallivm/lp_bld_misc.h