always use same gl context from render thread