Является ли OpenGL потокобезопасным для нескольких потоков с разными контекстами?

Я знаю, что совместное использование одного контекста между потоками - плохая новость. Я знаю, что могу безопасно создавать и использовать контекст с закадровым буфером кадра во вторичном потоке, когда ничего не происходит с GL в основном потоке.

Я еще не смог найти окончательного ответа на вопрос, действительно ли Я могу безопасно создать два контекста в двух разных потоках (скажем, основной поток, выводящий на экран, и вторичный поток, выполняющий закадровое рисование), и заставить их обоих одновременно выполнять вызовы функций GL.

Другими словами, если контексты различны, могут ли два потока «совместно использовать» C API и, следовательно, графический процессор? Или это по своей сути то, чем нельзя делиться? Или это зависит от реализации?

Специально спрашивают об OpenGL ES на iOS, но, вероятно, это общий вопрос GL.

11
задан genpfault 7 May 2012 в 15:04
поделиться