10/27 15:28 昨晩作業終わって寝るかと思ったところで出たバグが取れず今に至る。力尽きて一時寝てたが :D
10/27 15:53 そしてやっと判明した。たぶんICONIA TAB A500のGLES2のバグな気がする
10/27 16:00 しかしICONIA TAB A500のGLES2ドライバだと、glDetachShader()しちゃったプログラムをglUseProgram()するとその後のglDrawElements()の中でクラッシュする
10/27 16:10 本来、デタッチしちゃいけないならglUseProgram()でエラーが出ないとおかしい。そこでエラーが出ないで実際にそのプログラムで描画しようとしてクラッシュするんだからタチが悪い
10/27 16:29 追加条件がわかった。アタッチするシェーダはVertexとFragmentの2種類があるんだが、このうちFragmentだけをデタッチすると異状が発生する。Vertexだけ、あるいは両方ともデタッチすると異状は出ない
10/27 16:32 本来両方ともデタッチしたほうがいいところを片方しかしていなかったのは当方のミスではある。まあ普通は「次のプログラム用に新しいシェーダをアタッチすると古いのはデタッチされる」ので、こんなバグは気づきにくいかもしれない
10/27 17:44 A500、「Vertexだけ、あるいは両方ともデタッチすると異状は出ない」って間違いだった。やっぱりおかしい
10/27 17:48 A500、デタッチするとシェーダが不定(前後のシェーダ状況に依存)になってるんじゃないかな、これ
10/27 23:20 しかしそろそろ席予約のオプションにパンフ購入を用意してもらえないだろうか…また売り切れ食らった…