最初に、I stated in answer to the question you've linked aboveとして、LLVMは一般に、iOSをターゲットとするときにコンパイルされたコードのパフォーマンスを向上させます。 AppleはXcodeからコンパイラとしてGCCを削除しているので、あなたはそれについて本当に選択肢がありません。 LLVMを使用します。
第2に、iOSデバイス上のOpenGL ESの実装には固定小数点数学に関するこの記事のステートメントは適用されません。これらのデバイスで使用されるPowerVR GPUは、浮動小数点入力を使用するように調整されており、固定小数点データを扱うときに実際にパフォーマンスが低下する可能性があります。 AppleのOpenGL ES Programming Guide:
OpenGL ES GL_FIXEDデータ型は使用しないでください。同じ の量のメモリがGL_FLOATとして必要ですが、値の範囲は小さくなります。 すべてのiOSデバイスはハードウェア浮動小数点ユニットをサポートしているため、浮動小数点 の浮動小数点値をより迅速に処理できます。
と
IOSデバイスでARMプロセッサは、ネイティブ浮動小数点命令 を処理します。可能であれば、 ポイント計算の代わりに浮動小数点を使用する必要があります。 が固定小数点演算を使用するアプリケーションを移植する場合は、浮動小数点 型を使用するようにコードを書き換えてください。
私はPowerVRのドキュメント(無料のSDKの一部として利用可能)にもこれが言及されていると思います。
また、ARMv7デバイス(iPhone 3G S以降)でThumb用のビルドを有効にし、ARMv6デバイス用に無効にする必要があります。これにより、浮動小数点計算が遅くなるため、前者では計算が遅くなり、以前のクラスのデバイスでのパフォーマンス
最後に、行列演算については、iOS 5.0のみをターゲットにする場合は、GLKitに付属の新しい行列演算関数を使用する必要があります。それらは、高速ベクトル演算を実行するNEONアクセラレーションの実装を使用します。自分自身をロールバックしたり、Accelerateフレームワークを使用する既存の実装を見つけたり、NEONの計算を指示したりすることもできます。
OpenGL ESレンダリングを実行するとき、これらの領域はどれもボトルネックにはなりません。インストゥルメントと他のツールを使用して、アプリケーション内でレンダリングを遅くする実際の領域を見つけます。私が言及したこれらの最適化は、これのわずかな時間を削減するだけです。
いつものように、ブラッド、あなたは最高です!私はGPUImageフレームワークにいくつかのフィルタを提供することができますので、このすべての基礎を学んで作業してください! https://github.com/BradLarson/GPUImage –
@MatisseVerDuyn - ありがたいことに、OpenGLのフラグメントシェーダに関する多くのドキュメントがOpenGL ESに翻訳されています。また、イマジネーションテクノロジーズでは、SDKのPDFの一部としてかなり役立つチューニング情報を提供しています。http://www.imgtec.com/powervr/insider/powervr-sdk-docs.asp –