ブログってもしかたない

twitter始めました。 http://twitter.com/#!/chototsumoushin

全体表示

[ リスト ]

PowerVR SGX540のバグ

ついに!PowerVR SGX540でMikuMikuStudio Sample Tiny ARが動くようになりました!!
苦労しました。
いくら調べても原因が分からず、開発元のImagination社に問い合わせたところ、頂点シェーダに
precision mediump float;

と書くと駄目ということを教えてくれました。
本来OpenGL ESの仕様ではシェーダで変数の精度の指定をしないといけないはずなのですが、PowerVRの一部のバージョンのドライバーでは精度指定するとコンパイラがバグるらしいです。
結局レンダラーの中でこんな感じでPowerVRの時だけ精度指定を外すようにしました。
        if (source.getType().equals(ShaderType.Vertex)
                && GLES20.glGetString(GLES20.GL_RENDERER).indexOf("PowerVR")>=0) {
            GLES20.glShaderSource(
                    id,
                     source.getDefines()
                    + source.getSource());
        } else {
            GLES20.glShaderSource(
                    id,
                    "precision mediump float;\n"
                    + source.getDefines()
                    + source.getSource());
        }
親切に対応してくださったImagination社のサポートに感謝します。

閉じる コメント(2)

顔アイコン

情報ありがとうございます。すごい調査力ですね。今後ともご教示よろしくおねがいします。

2012/2/4(土) 午前 8:28 [ 5GDOG ]

顔アイコン

サポート契約しているわけでもなければユーザーでもないので聞いても無視されるかなと思ってたんですが、プログラムを送ったらデバッガーで追いかけてくれて原因を特定出来ました。
やっぱり聞いてみるものですね。
これでやっと機能拡張に専念出来ます。

2012/2/4(土) 午前 10:52 [ chototsu_moushinp ]


.


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事