・Android Adreno 320 OpenGL ES 3.0 (Nexus 7 2013)
・Android Adreno 320 OpenGL ES 2.0 (HTC J butterfly HTL21 )
・Android Mali-T604 OpenGL ES 3.0 (Nexus 10 2012)
・Android Tegra 4 ULP GeForce(72) OpenGL ES 2.0 (Tegra Note 7)
・Android Tegra 3 ULP GeForce(12) OpenGL ES 2.0 (Nexus 7 2012)
・iOS7 PowerVR SGX543MP3 OpenGL ES 2.0 (iPhone 5)
・iOS7 PowerVR G6430 OpenGL ES 3.0 (iPhone 5s)
・RK3066 Mali-400MP4 OpenGL ES 2.0 (MOMO7)
・Vivante GC4000 OpenGL ES 2.0 (dtab 01)
OpenGL ES 2.0 デバイスの大半は GL_OES_depth_texture だけに対応しており
フィルタはかかりません。
depth_texture が無い Tegra2/3 は ColorBuffer で代用しています。
Tegra 4 は OpenGL ES 2.0 ですが Extension で GL_EXT_shadow_samplers に
対応しておりハードウエアで sampling できるようになっています。
同じように iOS の PowerVR Series5XT も OpenGL ES 2.0 ながら早くから
GL_EXT_shadow_samplers に対応していました。
iOS5/6 の当初は PCF もなく見た目が全く変わらなかったのですが、
iOS7 ではいつの間にかフィルタがかかるようになっていました。
なお同じ PowerVR Series5XT の GPU でも Android では残念ながら
shadow_samplers が使えない場合が多いです。
OpenGL ES 3.0 以降は PC 同様そのまま shadow samplers が使えます。
ただし結果は GPU やドライバによってかなり差があるようで、
Adreno 320 や PowerVR G6430 が 4 tap PCF のみ。
逆に Mali-T604 のフィルタは他より質が高くなっています。
OS OpenGL depth-tex sh-sample PCF Linear ----------------------------------------------------------------- APQ8064 Adreno 320 A44 ES 3.0 ◎ ◎ ◎ -- APQ8064 Adreno 320 A41 ES 2.0 ◎ -- -- -- Exynos5 Dual Mali-T604 A44 ES 3.0 ◎ ◎ ◎ ◎ Tegra 4 ULP GeForce(72) A43 ES 2.0 ◎ ◎ ◎ ◎ Tegra 3 ULP GeForce(12) A44 ES 2.0 -- -- -- -- A6 PowerVR SGX543MP3 i70 ES 2.0 ◎ ◎ ◎ ◎ A7 PowerVR G6430 i70 ES 3.0 ◎ ◎ ◎ -- K3V2 Vivante GC4000 A41 ES 2.0 ◎ -- -- -- RK3066 Mali-400MP4 A41 ES 2.0 ◎ -- -- -- OMAP4430 PowerVR SGX540 A42 ES 2.0 ◎ -- -- --
Tegra 2 → Tegra 3 は core 数(速度) が違うだけで機能は全く同一でした。
対して Tegra 4 の GPU は、Tegra2/3 と比べると大幅に拡張されています。
機能面で見ればほぼ別 GPU といえるほど差があるのですが、
OpenGL ES 3.0 未対応など先行する他 GPU より見劣りする部分もあります。
DX9 世代の G70 ベースの限界なのか、それとも単に Tegra2/3 で
削っていた能力を元に戻しただけなのかもしれません。
一般的に NVIDIA に期待するイメージは強力な GPU でしょう。
ですがこれまでの Tegra は真逆で CPU に偏重した作りでした。
次の Tegra K1 以降はようやく NVIDIA らしい GPU になりそうです。