Code in GPU_buffers_free was already trying to be safe for threading, by skipping OGL calls there, but in fact it was still buggy. Namely, freeing was doing buffers shift in a cycle, and if two threads will call this function shifting will go crazy. Now made it so GPU_buffers_alloc and GPU_buffers_free are using mutex lock, so they're completely safe for threading. Same goes to gpu_buffer_setup function. It required minor functions reshuffle, so there're no locks happening from locked thread, but it's all very straightforward change -- svn merge -r58276:58277 ^/branches/soc-2013-depsgraph_mt