HTC J butterfly HTL21 (AQP8064) を手に入れたので、
今更ながらやっと Krait と Adreno 320 を試せるようになりました。
Krait は Qualcomm が開発した ARMv7A CPU の CPU core で
Scorpion の後継にあたります。
ARM でいえば Cortex-A15 の世代に相当し、Apple A6/A6X の CPU core も同様に
この世代に属します。
これら ARM, Qualcomm, Apple 3つの CPU は同じ ARMv7-A の命令
アーキテクチャでアプリケーションに互換性がありますが、
Intel と AMD のように設計や性能は異なります。
ARM Qualcomm Apple --------------------------------------------------------- Cortex-A8/A9 Scorpion vfpv3 ~2012 Cortex-A15 Krait Apple A6 vfpv4 2012~
この中で Krait が最も先に登場しており、日本でも 5月の HTC J 以降
Snapdragon S4 MSM8960/8260A/8660A 搭載機種が増えています。
むしろ LTE では Krait でないスマートフォンの方が少ないかもしれません。
Snapdragon S4 Pro APQ8064 のもう一つ新しい点は、GPU も世代交代していることです。
GPU Adreno 320 はハードウエア的には OpenGL ES 3.0 に対応しており、
こちらも他社に先駆けて手に入る状態となりました。
実際に調べてみると、OpenGL ES 3.0 の新しい圧縮テクスチャ形式である
ETC2 / EAC に対応していることがわかります。
TextureFormat 26 tc[00]=87f9 GL_3DC_X_AMD tc[01]=87fa GL_3DC_XY_AMD tc[02]=8c92 GL_ATC_RGB_AMD tc[03]=8c93 GL_ATC_RGBA_EXPLICIT_ALPHA_AMD tc[04]=87ee GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD tc[05]=8d64 GL_ETC1_RGB8_OES tc[06]=8b90 GL_PALETTE4_RGB8_OES tc[07]=8b91 GL_PALETTE4_RGBA8_OES tc[08]=8b92 GL_PALETTE4_R5_G6_B5_OES tc[09]=8b93 GL_PALETTE4_RGBA4_OES tc[10]=8b94 GL_PALETTE4_RGB5_A1_OES tc[11]=8b95 GL_PALETTE8_RGB8_OES tc[12]=8b96 GL_PALETTE8_RGBA8_OES tc[13]=8b97 GL_PALETTE8_R5_G6_B5_OES tc[14]=8b98 GL_PALETTE8_RGBA4_OES tc[15]=8b99 GL_PALETTE8_RGB5_A1_OES tc[16]=9270 GL_COMPRESSED_R11_EAC tc[17]=9271 GL_COMPRESSED_SIGNED_R11_EAC tc[18]=9272 GL_COMPRESSED_RG11_EAC tc[19]=9273 GL_COMPRESSED_SIGNED_RG11_EAC tc[20]=9274 GL_COMPRESSED_RGB8_ETC2 tc[21]=9275 GL_COMPRESSED_SRGB8_ETC2 tc[22]=9276 GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 tc[23]=9277 GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 tc[24]=9278 GL_COMPRESSED_RGBA8_ETC2_EAC tc[25]=9279 GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
OpenGL ES 2.0 のままでも列挙されるので、すでに利用できる状態となっています。
ETC1 も同列に列挙されるのは OpenGL ES 2.0 API だからだと思われます。
また GPU Extension に GL_EXT_sRGB が増えています。
sRGB 対応もやはり OpenGL ES 3.0 の新機能です。
Extension の詳細は下記のページに追加しました。
・OpenGL ES Extension (Mobile GPU)
GPU 比較はこちら
いつものベンチマークはデータをとっている最中です。
使った感じは GPU が非常に速いです。
一番重いケースでも 30fps を余裕で超えており、とても Full HD (1920×1080)
でレンダリングしているとは思えません。
傾向としては Adreno 220 と同じでシェーダーの演算負荷に強く、同じ
Unified Shader ながら PowerVR のように面積が増えても極端に処理落ちしません。
演算精度によるペナルティが無いため、プログラマにとっては非常に扱いやすく
かつ演算精度が高いのでレンダリング結果も綺麗です。
ピクセルシェーダーの命令が少なく演算負荷が軽いケースでは PowerVR が
飛び抜けていますが、ピクセル(フラグメント)の演算量が多い場合はおそらく
A5X の PowerVR SGX543MP4 より速く、A6X の SGX554MP4 に近い数値が出るようです。
もちろん条件によるので万能ではありません。
CPU のデータも計測中ですが CPU core 単体では A6/A6X よりも遅いようです。
やはり A6/A6X は速いです。
その代わり core 数が A6/A6X の 2倍 (Quad core) なので、
総合的な能力では十分だと思います。
関連エントリ
・iPad 4 Apple A6X GPU PowerVR SGX554 MP4 の速度
・iPhone 5 / A6 の CPU 速度 その 3
・iPhone 5 / A6 の CPU 速度 その 2
・OpenGL / OpenGL ES ETC1 の互換性と KTX の落とし穴
・OpenGL 4.3/ES 3.0 ETC2 Texture 圧縮の仕組み (PVRTC2,ASTC)
・OpenGL 4.3 と GL_ARB_ES3_compatibility