ベンチマークソフトを手持ちのデバイスで試してみました。
・Sillicon Studio MOBILE GPUMARK
MOBILE GPUMARK GEMS DP NB GPU Total --------------------------------------------------------------------- iPhone5 A6 PowerVR SGX543MP3 751 902 474 4068 6195 iPad4 A6X PowerVR SGX554MP4 665 729 429 3943 5757 iPad mini A5 PowerVR SGX543MP2 582 695 362 2852 4491 Nexus 7 Tegra3 ULP GeForce(12) 362 623 231 3271 4487 EVO 3D ISW12HT MSM8660 Adreno220 431 564 245 2235 3475 iPod touch5 A5 PowerVR SGX543MP2 385 450 239 2338 3412 Galaxy S2 SC-02C Exynos4210 Mali-400MP4 577 730 174 1196 2677 Optimus Pad L-06C Tegra2 ULP GeForce(8) 121 220 81 1838 2260 Galaxy Nexus SC-04D OMAP4460 PowerVR SGX540 160 161 63 1273 1657 HONEYBEE 101K APE5R PowerVR SGX543MP 407 572 240 10673 11892 ※無効 ・数値が大きいほうが高速。スコアは v1.0 時のもの ・GEMS=RIGID GEMS, DP=DEAD PARKING, NB= NATURAL BONE, GPU=GPU BENCHMARK ・CPU はすべて dual core 以上
iPad4 より iPhone5 の方が良い結果でした。
画面の解像度が小さい方が多少有利に働くのかもしれません。
SC-04D は非常に低速で、ひと通り完了を待つだけでもかなり時間がかかりました。
見かけの速度は速いですが、SGX540 はやはりひと世代前の GPU であることがわかります。
Galaxy S2 はそこそこのスコアですがディザがかかったような画面に見えるのが気になりました。
HONEYBEE 101K が突出した値に見えますが実は描画が正しく行われておりません。
もともとこの端末は OpenGL ES 2.0 で問題が生じることが多かったのですが、
GEMS,DP,NB の描画はラスタ状に一瞬見える程度でほとんど暗転しており、まるで
V-Sync を待たずにフレームバッファがクリアされているような画面になっています。
よってこのスコアは無効です。
GPU BENCHMARK の内容をさらに詳しく比較したのが下記の表です。
GPU BENCHMARK fill high many vert spec pix norm 420 800 1280 ------------------------------------------------------------------------------- iPhone5 PVR SGX543MP3 538 82 242 1013 871 343 310 364 203 102 iPad4 PVR SGX554MP4 403 137 296 765 726 412 393 234 269 172 iPad mini PVR SGX543MP2 484 62 158 640 560 241 222 274 144 67 Nexus 7 Tegra3 ULP GF(12) 185 56 116 828 571 288 235 667 218 107 EVO 3D 8660 Adreno220 283 98 123 384 378 320 279 191 132 47 iPod touch5 PVR SGX543MP2 286 39 130 601 513 183 164 243 123 56 Galaxy S2 4210 Mali-400MP4 253 37 26 193 138 159 145 196 29 20 Optimus Pad Tegra2 ULP GF(8) 75 22 77 572 409 125 102 317 98 41 Galaxy Nexus 4460 PVR SGX540 87 31 48 302 265 190 131 134 62 26 HONEYBEE101K PVR SGX543MP 7768 72 91 1038 595 385 416 161 102 45 ・数値が大きいほうが高速。スコアは v1.0 時のもの ・fill=Fill Test, high=High Polygon Model, many=Many Models ・vert=Per Vertex Lighting, spec=Per Vertex Lighting & Specular ・pix=Per Pixel Lighting & Specular, norm=Per Pixel Lighting & Specular & Normal Map ・420=YEBIS Resolution 420x234, 800=YEBIS Resolution 800x450, 1280=YEBIS Resolution 1280x720
PowerVR 系は頂点(vert,spec)とピクセル(pix,norm)のスコアに極端な差が
ついていることがわかります。
Unified Shader である PowerVR 系はピクセル負荷が下がった分だけ頂点性能が
大きく向上します。
同じ Unified ながら全く性質が異なるのが Adreno 220 系で、
頂点(vert,spec)とピクセル(pix,norm)の差がわずかです。
全体の負荷を下げてもピーク性能が上がらない代わりに、ある程度複雑な
ピクセルシェーダーを走らせても性能が落ちにくい傾向があります。
Discrete Shader である Tegra は頂点性能が非常に高いことがわかります。
ピクセル負荷に影響を受けず、Tegra2 でもアンバランスに見えるほど
頂点スコアが高くなっています。
Tegra3 はピクセルも強化されていますが、PowerVR とは異なり
シェーダーの演算能力よりも fill が弱点になっているようです。
Tegra と正反対なのが同じ Discrete の Mali-400MP4 です。
4 core あるのはピクセルユニットだけなので、どうしても相対的に頂点性能が
足りないようです。
spec, pix を比べるとわかりますが、頂点でライティングするよりもむしろ
ピクセルでライティングした方が速くなっています。
GEMS, DP だけを見ると上位に食い込むスコアなので、NB を含めて
ハイポリ系が大きくスコアを落とす原因となっているようです。
HONEYBEE 101K では 420,800,1280 (YEBIS) の描画が完全に壊れていました。
よってこのスコアは正しくないことに注意してください。
それ以外は一見正しく描画されていましたが fill の値だけなぜか突出しています。
この機種だけ Android 2.3 であることも何か関係しているかもしれません。
実際のラインキングを見ると Snapdragon S4 (Adreno225/320) がかなり
上位を占めているようです。
ポストエフェクトなどスクリーン系エフェクトは TBDR の PowerVR 等とは
相性がよくなく、Mobile 系 GPU ではあまり用いられていませんでした。
このソフトでは非常によく動いており各種効果による違いもよくわかります。
PowerVR はかなり特徴が偏っているため、PC と同じアプローチだと他の GPU と
あまり差がつかないかもしれません。その点 Tegra の方が素直です。
また highp 演算が多い場合やピクセルの演算命令が複雑な場合は Adreno が有利です。
今後は様々な GPU が登場し、レンダリング手法も幅が広がってくるものと思われます。
Adreno 320 では TBR だけでなく Direct Rendering Mode も使い分けられるので、
このようなケースでも今まで以上に最適化が可能となるようです。
新しい世代の Adreno 320/Mali-T604 をまだ入手できていないので、
機会があればぜひ比べてみたいと思います。