[最新] ■[前年|前月|前日|2012/10/27|翌日|翌月|翌年] ■表示[全て|@gorry5のみ|個別]
■グループ[Mention] ■その他[Twitter:@gorry5][日記] ■[twtlog 20100921a]

--------
10/27 15:28 昨晩作業終わって寝るかと思ったところで出たバグが取れず今に至る。力尽きて一時寝てたが :D
--------
10/27 15:53 そしてやっと判明した。たぶんICONIA TAB A500のGLES2のバグな気がする
10/27 15:57 URL:www.khronos.org によると、「glLinkProgram()したあと、glAttachShader()でアタッチされていたシェーダオブジェクトはglDetachShader()してもよい」ということになっている
10/27 16:00 しかしICONIA TAB A500のGLES2ドライバだと、glDetachShader()しちゃったプログラムをglUseProgram()するとその後のglDrawElements()の中でクラッシュする
10/27 16:06 ちょっとあとで検証プログラム書いておくか…
10/27 16:10 本来、デタッチしちゃいけないならglUseProgram()でエラーが出ないとおかしい。そこでエラーが出ないで実際にそのプログラムで描画しようとしてクラッシュするんだからタチが悪い
10/27 16:17 ちなみにglDeleteShader()しちゃう分には正常に動く。これは「OpenGL ES 2.0プログラミングガイド URL:www.amazon.co.jp 」に実コードがある。恐らくKhronosのサンプルコードに含まれているんじゃないか
10/27 16:29 追加条件がわかった。アタッチするシェーダはVertexとFragmentの2種類があるんだが、このうちFragmentだけをデタッチすると異状が発生する。Vertexだけ、あるいは両方ともデタッチすると異状は出ない
10/27 16:32 本来両方ともデタッチしたほうがいいところを片方しかしていなかったのは当方のミスではある。まあ普通は「次のプログラム用に新しいシェーダをアタッチすると古いのはデタッチされる」ので、こんなバグは気づきにくいかもしれない
10/27 16:36 (@yunyundetective) @gorry5 Androidは大変ですのう(^^; (mira)
10/27 17:11 @motoyuki 猪木だったらあるいは :D
10/27 17:44 A500、「Vertexだけ、あるいは両方ともデタッチすると異状は出ない」って間違いだった。やっぱりおかしい
10/27 17:48 A500、デタッチするとシェーダが不定(前後のシェーダ状況に依存)になってるんじゃないかな、これ
10/27 18:45 A500のGLESドライバとの格闘がやっと決着。検証プログラムは気が向いたら作る
10/27 18:48 @argrath おお、結構がんばった?
10/27 19:40 (@argrath) @gorry5 関東だともっと条件いいところもあるみたいなんですが関西だとこれくらいっぽいですねえ (zogi)
10/27 20:16 @Niratama まあxperiaはお安くないから短期売り切りな商売はアリだと思う (dora)
10/27 23:19 009観てきた。100分って結構入るんだなー的
10/27 23:20 しかしそろそろ席予約のオプションにパンフ購入を用意してもらえないだろうか…また売り切れ食らった…

■グループ[Mention] ■その他[Twitter:@gorry5][日記] ■[twtlog 20100921a]
[最新] ■[前年|前月|前日|2012/10/27|翌日|翌月|翌年] ■表示[全て|@gorry5のみ|個別]