Contextを変数に保持しておいて、
任意のタイミングでgetResources.openRawResource(int)を呼んでも上手く画像が読み込めないのですが、
起動したActivityと別のスレッドだと上手く動かない、と言ったことはあるのでしょうか。

GLSurfaceView.RendererのonSurfaceCreatedから同じ処理を呼ぶと上手く動くのですが・・・。