I'm developing a graphics engine in which graphics and game logic are executed in separate threads. CG is used as shader language.
When I try to update shader parameters from the logic thread (during scene graph evaluation) program crashes on CgSetParameter*() functions. OpenGL context was created in the rendering thread.
When I changed the engine to be single-threaded everything works fine.
Multi-threaded version works fine on NVIDIA cards.
So my question is: is it possible to change shader parameters from thread that hasn't created OpenGL context?