ハードウェア GPU の情報


オリジナルの iPhone の導入以来、Apple は新しい iOS デバイスで GPU の能力を向上させ続けています。Metal や OpenGL ES のアプリを記述するときは、アプリが動作する各デバイスの特定の限界を理解する必要があります。現在、2つの異なる GPU カテゴリが、一般的に使用されています:



表 2-1 に、Metal と OpenGL ES と互換性のあるデバイスの一覧を示します。


表 2-1 Metal と OpenGL ES 3.0 と互換のデバイス


デバイス名GPU
iPhone 6s
iPhone 6s Plus
Apple A9 GPU
iPhone 6
iPhone 6 Plus
Apple A8 GPU
iPhone 5sApple A7 GPU
iPad Pro Wi-Fi
iPad Pro Wi-Fi + Cellular
Apple A9 GPU
iPad Air 2 Wi-Fi
iPad Air 2 Wi-Fi + Cellular
Apple A8 GPU
iPad Air Wi-Fi
iPad Air Wi-Fi + Cellular
Apple A7 GPU
iPad ミニ 4 Wi-Fi
iPad ミニ 4 Wi-Fi + Cellular
Apple A8 GPU
iPad ミニ 3 Wi-Fi
iPad ミニ 3 Wi-Fi + Cellular
iPad ミニ 2 Wi-Fi
iPad ミニ 2 Wi-Fi + Cellular
Apple A7 GPU
iPod Touch (第6世代)Apple A8 GPU


表 2-2 に、OpenGL ES 2.0 と互換性のあるデバイスのリストを示します。


表 2-2 OpenGL ES 2.0 と互換のデバイス

デバイス名GPU
iPhone 6s
iPhone 6s Plus
Apple A9 GPU
iPhone 6
iPhone 6 Plus
Apple A8 GPU
iPhone 5sApple A7 GPU
iPhone 5c
iPhone 5
iPhone 4s
SGX 543
iPhone 4
iPhone 3GS
iPhone 3GS (中国製)
SGX 535
iPad Pro Wi-Fi
iPad Pro Wi-Fi + Cellular
Apple A9 GPU
iPad Air 2 Wi-Fi
iPad Air 2 Wi-Fi + Cellular
Apple A8 GPU
iPad Air Wi-Fi
iPad Air Wi-Fi + Cellular
Apple A7 GPU
iPad ミニ 4 Wi-Fi
iPad ミニ 4 Wi-Fi + Cellular
Apple A8 GPU
iPad ミニ 3 Wi-Fi
iPad ミニ 3 Wi-Fi + Cellular
iPad ミニ 2 Wi-Fi
iPad ミニ 2 Wi-Fi + Cellular
Apple A7 GPU
iPad ミニ Wi-Fi
iPad ミニ Wi-Fi + Cellular
SGX 543
iPad Wi-Fi (第4世代)
iPad Wi-Fi + Cellular (第4世代)
SGX 554
iPad Wi-Fi (第3世代)
iPad Wi-Fi + Cellular (第3世代)
iPad 2 Wi-Fi
iPad 2 Wi-Fi + 3G
SGX 543
iPad Wi-Fi
iPad Wi-Fi + 3G
SGX 535
iPod Touch (第6世代)Apple A8 GPU
iPod Touch (第5世代)SGX 543
iPod Touch (第3世代)
iPod Touch (第4世代)
SGX 535


アップル A7,A8,A9 GPU ハードウェア


Apple A7、A8、および A9 GPU は Metal と OpenGL ES 3.0 の両方をサポートするグラフィックスハードウェアの新世代を共に作成します。A7、A8、および A9 の GPU 上で実行されている 3D、グラフィックスが支配するアプリを最大限に活用するには、Metal を使用します。Metal は、あなたの洗練されたグラフィックス・レンダリングと計算タスクのため非常に高い性能を可能にする、A7、A8、および A9 の GPU に非常に低いオーバーヘッドのアクセスを提供します。Metal は伝統的なグラフィックス API で見られるような多くの高価な状態検証のようなパフォーマンスのボトルネック-を排除します。Metal を使用したくない場合は、アプリをビルドする時、OpenGL ES 3.0を使用して下さい。Metal と OpenGL ES 3.0 は両方とも以前モバイルプロセッサでは使用できなかった複数のレンダリングターガットと変換フィードバックなどのような、多くの新機能を組み込みます。これは、繰延レンダリングなどのように、以前はデスクトップマシン上でしか利用できなかった高度なレンダリング技術が、今や、iOS アプリで使用できることを意味します。どんな特徴が Metal のアプリに表示されるかについての詳細は、メタル・プログラミング・ガイド を参照してください。


A7、A8、および A9 の GPU のパワーを活用するには、あなたのアプリは、Metal または OpenGL ES 3.0 をサポートしていなければなりません。Metal または OpenGL ES 3.0 を使用すると、リソースをレンダリングする、大きなプールと新しい機能へのアクセスを提供します。例えば、A7、A8、および A9 の GPU、Metal または OpenGL ES 3.0 を使用したアプリは、OpenGL ES 2.0 を使用したアプリよりも、シェーダで二倍のテクスチャにアクセスすることができます。


Metal の機能セット


Metal 機能セットは、Metal 実装の機能、制限、および可能性について説明します。各 Metal 機能セットは、特定の OS や GPU のペアリングに接続されています。各 Metal 機能セットに関する具体的な情報については、メタル・プログラミング・ガイドMetal 機能セット表 の章を参照してください。


OpenGL ES 3.0 のベストプラクティス


これらのプラクティスは、Apple A7、A8、および A9 の GPU ハードウェア上での OpenGL ES のアプリに適用されます。


アップル A7,A8,A9 GPU 上の OpenGL ES 3.0


表 2-3 に、OpenGL ES 3.0 の高レベルの概要を提供しています。


表 2-3 アップル A7,A8,A9 GPUに実装された OpenGL ES 3.0 の属性値

OpenGL ES 3.0 属性A7 GPU の値
MAX_TEXTURE_SIZE, MAX_RENDERBUFFER_SIZE, MAX_CUBE_MAP_TEXTURE_SIZE4096*4096
MAX_ARRAY_TEXTURE_LAYERS2048
MAX_COLOR_ATTACHMENTS4
MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS50048
MAX_COMBINED_TEXTURE_IMAGE_UNITS32
MAX_COMBINED_UNIFORM_BLOCKS24
MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS51200
MAX_DRAW_BUFFERS4
MAX_FRAGMENT_INPUT_COMPONENTS64
MAX_FRAGMENT_UNIFORM_BLOCKS12
MAX_FRAGMENT_UNIFORM_COMPONENTS896
MIN_PROGRAM_TEXEL_OFFSET-8
MAX_PROGRAM_TEXEL_OFFSET7
MAX_SAMPLES8
MAX_TEXTURE_IMAGE_UNITS16
MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS64
MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS4
MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS4
MAX_VARYING_VECTORS15
MAX_VERTEX_ATTRIBS16
MAX_VERTEX_OUTPUT_COMPONENTS64
MAX_VERTEX_TEXTURE_IMAGE_UNITS16
MAX_VERTEX_UNIFORM_BLOCKS12
MAX_VERTEX_UNIFORM_COMPONENTS2048
MAX_UNIFORM_BLOCK_SIZE16384


検討事項


A7、A8、および A9 の GPU はスカラプロセッサを使用して、これらの値がベクトルの中で宣言されていても、すべての浮動小数点演算を処理します。書き込みマスクと計算の慎重な定義の適切な使用は、あなたのシェーダのパフォーマンスを向上させます。詳細の情報については、iOS 用の OpenGL ES プログラミング·ガイドベクトル計算の遅延した実行 を参照してください。


中·低精度の浮動小数点の、シェーダ値は、16 ビットの浮動小数点値として、同じように計算されます。これは、低精度の値に対して 10 ビットの固定小数点形式を使用する、PowerVR SGX ハードウェアからの変更です。シェーダが低精度の浮動小数点変数を使用し、また PowerVR SGX のハードウェアをサポートする場合は、両方の GPU でシェーダをテストしなければなりません。


アップルの A7,A8,A9 GPU は依存的テクスチャフェッチを不利にしません。


フレームバッファの内容がもはや必要でなくなったときには、常にフレームバッファの破棄操作を使用して下さい。そうしないことでのペナルティーは、それが以前の GPU であったより高いです。最良の結果を得るには、GLKView クラスを使用します。それは自動的にフレームバッファの破棄操作を実装します。


複数のターゲットにレンダリングする場合、4つのイメージのターゲット(およびターゲットに書き込まれたデータ全体が A7 では 128 ビット以下、A8 では 256 ビット以下) にアプリを制限して下さい。単一の sRGB のターゲットは 64 ビットとしてカウントされます。


サポートされている OpenGL ES 3.0 の拡張機能


OpenGL ES 3 は、OpenGL ES 2.0 の Appleの実装の拡張機能によって提供される機能を含んでいます。OpenGL ES 3.0 を使用するよう既存の OpenGL ES 2.0 のアプリを更新する場合は、これらの拡張機能の多くが、OpenGL ES 3.0 では提供されていないことに注意してください。したがって、コードは、代わりに新たなコア機能を使用するように更新する必要があります。


以下の拡張機能は OpenGL ES 3 アプリで A7,A8,A9 GPU でサポートされています。


以下の追加拡張機能はサポートされていますが、OpenGL ES 3 は、これらの拡張機能と一致するコア機能を提供しています。これらの拡張機能を使用している OpenGL ES 2 アプリを移植する場合には、コアの OpenGL ES 3 の機能にシェーダを移行する必要があります。


Apple A7,A8,A9 GPU 上での OpenGL ES 2.0


表 2-4 に、OpenGL ES 2.0 の高レベルの概要を示します。


表 2-4 アップル A7 GPU に実装された OpenGL ES 2.0 の属性値


OpenGL ES 2.0 の属性A7,A8,A9 GPU の値
MAX_TEXTURE_SIZE、MAX_RENDERBUFFER_SIZE、
MAX_CUBE_MAP_TEXTURE_SIZE
4096*4096
MAX_TEXTURE_IMAGE_UNITS8
MAX_COMBINED_TEXTURE_IMAGE_UNITS8
MAX_VERTEX_TEXTURE_IMAGE_UNITS8
MAX_VERTEX_ATTRIBS16
MAX_VERTEX_UNIFORM_VECTORS128
MAX_FRAGMENT_UNIFORM_VECTORS64
MAX_VARYING_VECTORS8


検討事項


A7,A8,A9 GPUは、スカラ·プロセッサを使用して、すべての浮動小数点演算を処理し、それらの値がベクトルで宣言された場合であっても、処理します。書き込みマスクとあなたの計算の慎重な定義を適切に使用すると、シェーダのパフォーマンスを向上させます。詳細については、iOS 用の OpenGL ES プログラミング·ガイドベクトル計算の遅延した実行 を参照してください。


中·低精度のシェーダ浮動小数点値は、16 ビットの浮動小数点値として、同じように計算されます。これは、低精度の値にとして 10 ビットの固定小数点形式を使用する PowerVR SGX ハードウェアからの変更です。シェーダが、低精度の浮動小数点変数を使用し、また PowerVR SGX のハードウェアをサポートする場合は、両方の GPU でシェーダをテストしなければなりません。


アップル A7,A8,A9 GPU は依存テクスチャフェッチを不利にしません。


フレームバッファの内容がもはや必要なくなったときには、常にフレームバッファの破棄操作を使用して下さい。フレームバッファを破棄しないことでのペナルティーは、それが以前の GPU であった時より高いです。最良の結果を得るには、GLKView クラスを使用します。それは自動的にフレームバッファの破棄操作を実装します。


サポートされている OpenGL ES 2.0 の拡張機能


次の拡張機能が Apple A7 GPU でサポートされています。


PowerVR SGX ハードウェア


イマジネーションテクノロジーズは、PowerVR の技術に関するいくつかの有用な事を紹介します。


  • PowerVR SGX OpenGL ES 2.0 アプリケーション開発の推奨事項。プロセッサの SGX シリーズを紹介し、最適化する方法について説明します。
  • PowerVR 3D アプリケーション開発の推奨事項。3D グラフィックスのアプリを紹介し、そのようなアプリを開発するためのいくつかの 「黄金のルール」を提供します。
  • イマジネーションテクノロジーズ のホームページ。

  • OpenGL ES 2.0 のためのベストプラクティス


    これらのプラクティスは、SGX シリーズ 5 ハードウェア上の OpenGL ES アプリに適用されます。


    PowerVR SGX 5 シリーズハードウェアでの OpenGL ES 2.0


    表 2-5 に、OpenGL ES 2.0 のプラットフォーム用の高レベルの概要を示します。


    表 2-5 SGX 543、554 に実装された OpenGL ES 2.0 の属性値


    OpenGL ES 2.0 属性SGX 543 と 554 の値
    MAX_TEXTURE_SIZE, MAX_RENDERBUFFER_SIZE,
    MAX_CUBE_MAP_TEXTURE_SIZE
    4096*4096
    MAX_TEXTURE_IMAGE_UNITS8
    MAX_COMBINED_TEXTURE_IMAGE_UNITS8
    MAX_VERTEX_TEXTURE_IMAGE_UNITS8
    MAX_VERTEX_ATTRIBS16
    MAX_VERTEX_UNIFORM_VECTORS128
    MAX_FRAGMENT_UNIFORM_VECTORS64
    MAX_VARYING_VECTORS8

    検討事項


    PowerVR SGX は、スカラープロセッサを用いた高精度浮動小数点演算を処理し、それらの値がベクトルで宣言された場合であっても、処理します。書き込みマスクとあなたの計算の慎重な定義を適切に使用するとシェーダのパフォーマンスを向上させます。詳細については、iOS 用の OpenGL ES プログラミング·ガイドベクトル計算の遅延した実行を参照してください。


    中·低精度の浮動小数点値は両方とも、並行して処理されますが、低精度の変数は、いくつかの特定の性能限界があります。


    サポートされている OpenGL ES 2.0 の拡張機能


    以下の拡張機能を、すべての SGX シリーズ 5 のプロセッサ 543、および 554 でサポートしています。






    前の章

    次の章
    目次
    Xcode 11 の新機能
    ========================
    iOS デバイスの互換性リファレンス
  • デバイスの互換性
  • 必要なデバイス機能の宣言
    iPhone デバイス
    iPad のデバイス
    iPod Touch のデバイス
  • ハードウェア GPU の情報
  • アップル A7,A8,A9 GPU ハードウェア
  • Metal の機能セット
    OpenGL ES 3.0 のベストプラクティス
  • アップル A7,A8,A9 GPU 上の OpenGL ES 3.0
  • 検討事項
    サポートされている OpenGL ES 3.0 の拡張機能
  • Apple A7,A8,A9 GPU 上での OpenGL ES 2.0
  • 検討事項
    サポートされている OpenGL ES 2.0 の拡張機能
  • PowerVR SGX ハードウェア
  • OpenGL ES 2.0 のためのベストプラクティス
  • PowerVR SGX 5 シリーズハードウェアでの OpenGL ES 2.0
  • 検討事項
    サポートされている OpenGL ES 2.0 の拡張機能
  • カメラ
    iPhone 6 と iPhone 6S カメラの概要
  • カメラ機能の概要
  • 最大スチル画像解像度
    ビデオ解像度とフレームレート
    高フレームレート(HFR)/スローモーションビデオ
    焦点ピクセル
    光学式手ブレ補正(OIS)
    シネマティックビデオ安定化
    Retina フラッシュ
    ライブ写真
    シングルショット/ビデオ HDR
    ビデオキャプチャ中に高解像度の静止画
    iPhone デバイスキャプチャ形式
    文書改定履歴












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ