以下のリストに、さまざまな世代の iOS デバイスをまとめてあります。現在のデバイスシェーダーのパフォーマンスとは、gfxbench で、ベンチマークを使い、ハードウェア性能の違いを比較できます。
iPhone 3GS: シェーダー対応したハードウェア、ピクセルライティング (バンプマップ) は同時には画面の限られた領域のみ対応。 複雑なゲームでスクリプトの最適化が必要。2012 年 7 月時点でのアプリマーケットの平均的なハードウェア。
iPhone 4S は新しい A5 チップにより、複雑なシェーダーをスクリーン全体にレンダリングすることができます。イメージエフェクトであっても実現可能です。しかし、シェーダー最適化は依然として決定的に重要です。しかし、ゲームがデバイス性能を限界まで使用していない場合、PC と同様にこの世代のデバイスでは、スクリプトやゲームプレイの最適化は時間の無駄になります。
* Wifi + Blueooth + (3G セルラー HSDPA、3G バージョンでの 2G セルラー EDGE) 複雑なゲームでスクリプトの最適化が必要。2012 年 7 月時点でのアプリマーケットの平均的なハードウェア。
iPad: 第 4 世代 iPod Touch や iPhone 4 と似ている
iPad2: A5 では、シェーダーが十分にシンプルなものであればフルクリーンバンプマップが実現できます。しかし、ゲームが重要なオブジェクトでのみバンプマップされていることでベストのパフォーマンスを発揮する傾向があります。フルスクリーンのイメージエフェクトはまだ手が届かないところです。スクリプト最適化の重要性はやや劣ります。
iPad 3 では反射する水やフルスクリーンのイメージエフェクトといったテクスチャへのレンダーの効果を実現できます。ただし、シェーダー最適化は依然として重要です。ゲームがデバイスをハードウェア性能の限界まで使用していない場合、この世代のデバイスでは、スクリプトやゲームの最適化は PC デバイス同様に必要ありません。
iPhone/iPad グラフィックスプロセッシングユニット (GPU) はタイルベースのディファードレンダラーです。デスクトップコンピューターの多くの GPU と比較して iPhone/iPad GPU はシーンで、イメージを描画するために必要な処理を最小化することに集中しています。これにより、表示ピクセルのみが処理対象となります。
GPU のフレームバッファはタイルに分割され、レンダリングはタイルごとに行われます。最初に、フレーム全体の三角形が集積されてタイルに割り当てられます。次に各三角形の表示されているフラグメントが選ばれます。最後に、選ばれた三角形フラグメントはラスタライザーに渡されます (カメラからオクルージョンされた三角形フラグメントはこの段階で排除されます)。
言い換えると、iPhone/iPad GPU は Hidden Surface Removal (隠面消去) でコストを削減します。そのようなアーキテクチャはメモリの消費を抑え、使用電力を節約し、テクスチャ キャッシュバッファをより良く活用します。タイルベースの Deferred Rendering によりデバイスがオクルージョンされたフラグメントを実際のラスタライゼーションの前に排除し、オーバードローを低く抑えます。
詳細については以下も参照してください。
iPhone 3GS 以降の新しいデバイスには SGX シリーズの GPU が搭載されています。 SGX シリーズは OpenGL ES2.0 の機能をサポートし、最新のデバイスでは OpenGL ES3.0 のレンダリング API と頂点シェーダー、ピクセルシェーダーをサポートしています。これらの GPU では、固定パイプライン機能はネイティブではサポートされませんが、その代わり、動的に頂点・ピクセルシェーダーに似た機能をエミュレートします。
SGX シリーズは完全にマルチサンプルアンチエイリアスをサポートします。
iOS で唯一サポートされているテクスチャ圧縮は PVRTC です。PVRTC は RGB および RGBA (カラー情報に加えてアルファチャンネル)テクスチャ形式をサポートし、ひとつのピクセルを 2 または 4 バイトに圧縮できます。
PVRTC 形式はメモリ使用量を削減すること、メモリ帯域幅(すなわち、データがメモリから読み込みできるレート。通常はモバイルデバイスで非常に制限されている)の消費を抑えることのために重要です。
iPhone/iPad には、ラスタライゼーションと並行で計算を行う頂点処理専用のユニットがあります。よりよい並行処理を得るために、iPhone/iPad はラスタライザーより 1 フレーム先に頂点処理をします。
iPhone/iPad の CPU と GPU の双方とも、同じメモリを共有します。長所はテクスチャのビデオメモリ不足を気にする必要がないことです(もちろんメインメモリを使い切らないかぎり)。短所はゲームプレイやグラフィックスで同じメモリ帯域幅を共有することです。メモリ帯域幅をグラフィックスで占有するほど、ゲームプレイや物理計算で使用できる量は減ります。
iPhone/iPad メイン CPU は強力な SIMD (Single Instruction、Multiple Data) コプロセッサーを備えていて、VFP と NEON アーキテクチャのいずれかを採用しています。Unity iOS ランタイムはこれらのユニットを、スキンメッシュの変換、ジオメトリバッチング、音声処理、その他計算負荷の大きい演算など、複数のタスクで活用します。