OpenGL ES 2.0

OpenGL ES 2.0 端末

数が増えたので こちら にまとめました。

OpenGL ES 2.0 を使うためには、ハードウエア(GPU)、OS の両方が対応している必要があります。

  • Android の場合
    • Android OS 2.0 以降は NDK で OpenGL ES 2.0 API が利用できます。
    • Android OS 2.2 以降は Java でも OpenGL ES 2.0 が利用できます。
    • Qualcomm Snapdragon など GPU が Adreno 200 以降は OpenGL ES 2.0 API が利用できます。
  • iOS の場合
    • PowerVR SGX 535 搭載機種はすべて OpenGL ES 2.0 が利用できます。

CPU/GPU/OS

Native platform interface

OS API
iOS (iPhoneOS) EAGL iPhone/iPad/iPod touch
Android EGL Android OS (Java / NDK 2.3 )
OpenGL ES common EGL NetWalker (Linux,Ubuntu)
Windows WGL
X-window glx
MacOS X AGL?

Androd OS と OpenGL ES

Version codename Linux API Level sdk version OpenGL ES Java OpenGL ES NDK MultiTouch NativeActivity RenderScript HW UI GamePad
1.0 1
1.1 2
1.5 Cupcake 2.6.27 3 ndk-r1
1.6 Donut 2.6.27 4 ndk-r2 OpenGL ES 1.1
2.0 Eclair 2.6.29 5 r3 OpenGL ES 1.1 OpenGL ES 2.0
2.0.1 Eclair 2.6.29 6 r4 OpenGL ES 1.1 OpenGL ES 2.0
2.1 Eclair 2.6.29 7 r5 / ndk-r3 OpenGL ES 1.1 OpenGL ES 2.0
2.2 Froyo 2.6.32 8 r6,r7 / ndk-r4,4b OpenGL ES 2.0△ OpenGL ES 2.0
2.3 Gingerbread 2.6.35 9 r8 / ndk-r5 OpenGL ES 2.0 OpenGL ES 2.0
2.3.3 Gingerbread 2.6.35 10 r9 / ndk-r5b OpenGL ES 2.0 OpenGL ES 2.0
3.0 Honeycomb 2.6.36 11 r10 OpenGL ES 2.0 OpenGL ES 2.0
3.1 Honeycomb 12 r11/r12 / ndk-r6 OpenGL ES 2.0 OpenGL ES 2.0
3.2 Honeycomb 13 r12/r13 / ndk-r6b OpenGL ES 2.0 OpenGL ES 2.0
4.0 Ice Cream Sandwich 14 r14/r15 / ndk-r7 OpenGL ES 2.0 OpenGL ES 2.0
4.0.3 Ice Cream Sandwich 15 r16 OpenGL ES 2.0 OpenGL ES 2.0
OS Chip CPU FPU GPU RAM
2008 G1 1.5 MSM7201A ARM11 528MHz 192MB
2010 Nexus One 2.1 QSD8250 Scorpion 1GHz VFP,NEON Adreno 200 512MB
2010 Nexus S 2.3 S5PC110 Cortex-A8 1GHz VFP,NEON PVR SGX540 512MB
2011 XOOM 3.0 Tegra250 Cortex-A9 x2 1GHz VFP ULP GeForce(8) 1GB
2011 Galaxy Nexus 4.0 OMAP4460 Cortex-A9 x2 1.2GHz VFP,NEON PVR SGX540 1GB

iPhone 世代と OpenGL ES

ARM v6 / GLES 1.1 世代 (ARM11)
iPhone iPod touch iPad ram cpu gpu api iOS4/5
iPhone (2G) iPod touch 1 128MB ARM11 412MHz (ARMv6+VFP) PowerVR MBX OpenGL ES 1.1 ×
iPhone 3G 128MB ARM11 412MHz (ARMv6+VFP) PowerVR MBX OpenGL ES 1.1 △4.2
iPod touch 2 128MB ARM11 533MHz (ARMv6+VFP) PowerVR MBX OpenGL ES 1.1 △4.2
ARM v7 / GLES 2.0 世代 (Cortex-A8 + PVR SGX535)
iPhone iPod touch iPad ram cpu gpu api iOS4/5
iPhone 3GS iPod touch 3 256MB S5PC100 ARM Cortex-A8 600MHz (ARMv7A) PowerVR SGX 535 OpenGL ES 2.0
iPad 3G/Wi-Fi 256MB A4 ARM Cortex-A8 1GHz (ARMv7A) PowerVR SGX 535 OpenGL ES 2.0
iPhone 4 512MB A4 ARM Cortex-A8 800MHz? (ARMv7A) PowerVR SGX 535 OpenGL ES 2.0
iPod touch 4 256MB A4 ARM Cortex-A8 800MHz? (ARMv7A) PowerVR SGX 535 OpenGL ES 2.0
ARM v7 / GLES 2.0 世代 (Cortex-A9 dual + PVR SGX543MP2)
iPhone iPod touch iPad ram cpu gpu api iOS4/5
iPad2 3G/Wi-Fi 512MB A5 ARM Cortex-A9 x2 1GHz (ARMv7A) PowerVR SGX 543MP2 OpenGL ES 2.0
iPhone 4S 512MB A5 ARM Cortex-A9 x2 800MHz? (ARMv7A) PowerVR SGX 543MP2 OpenGL ES 2.0

CPU Core

CPU core arch float vector instruction set
ARM11 ARMv6 arm VFP(fast,optional) - 32bit
ARM11 ARMv6 thumb - - 16bit
Cortex-A8 ARMv7-A arm VFP(slow) and NEON(fast) NEON 32bit
Cortex-A8 ARMv7-A thumb2 VFP(slow) and NEON(fast) NEON 16bit or 32bit
Scorpion ARMv7-A arm VFP(fast) and NEON(fast) NEON 32bit
Scorpion ARMv7-A thumb2 VFP(fast) and NEON(fast) NEON 16bit or 32bit
Cortex-A9 ARMv7-A arm VFP(fast) (optional NEON) (NEON) 32bit
Cortex-A9 ARMv7-A thumb2 VFP(fast) (optional NEON) (NEON) 16bit or 32bit
Krait ARMv7-A VFP NEON 32bit
  • Cortex-A8 は必ず VFPv3-D32 + NEON が入っている
  • Cortex-A9 は VFPv3-D16 or VFPv3-D32 + NEON のどちらか (ただし今のところ NEON が無いのは Tegra2 だけ)
CPU cpu core clock arch FPU Vector L1 L2
ARM1176JZF-S ARMv6KZ VFPv2 - 16K/16K 0 in-order
MSM7201A ARM1136J-S 528MHz ARMv6 - - 16K/16K 0 in-order
MSM7225 ARM1136EJ-S 528MHz ARMv6 - - 0
S5PC100 Cortex-A8 833MHz ARMv7-A VFPv3-D32 NEON 32K/32K 256KB in-order
A4 Cortex-A8 1GHz ARMv7-A VFPv3-D32 NEON 32K/32K? 640KB in-order
i.MX515 Cortex-A8 800MHz ARMv7-A VFPv3-D32 NEON 32K/32K 256KB in-order
QSD8250 Scorpion 1GHz ARMv7-A VFPv3-D32 NEON 32K/32K 256KB out-of-order
Tegra 600 ARM11 x2 650MHz ARMv6 VFP? - in-order
Tegra 650 ARM11 x2 750MHz ARMv6 VFP? - in-order
Tegra 250 Cortex-A9 x2 1GHz ARMv7-A VFPv3-D16 - 32K/32K 1MB out-of-order
Tegra 3 Cortex-A9 x4 1.3GHz ARMv7-A VFPv3-D32 NEON 32K/32K 1MB out-of-order
A5 Cortex-A9 x2 1GHz ARMv7-A VFPv3-D32 NEON out-of-order
S5PC210 Cortex-A9 x2 1.2GHz ARMv7-A VFPv3-D32 NEON 32K/32K 1MB out-of-order

Qualcomm

Processor CPU core FPU ARM cache GPU Core API
MSM7200/7500/7600 400MHz ARM11 - ARMv6 Adreno 130 (ATI Imageon) 3D ES 1.1 4Mtri/s 133Mtex/s
MSM7201A/7601A 528MHz ARM11 - ARMv6 64MB Adreno 130 (ATI Imageon) 3D ES 1.1
MSM7200A/7600A 528MHz ARM11 - ARMv6 32MB Adreno 130 (ATI Imageon) 3D ES 1.1 4Mtri/s 133Mtex/s
ESM7206A 528MHz ARM11 - ARMv6 32MB ? ?
MSM7225/7625 528MHz ARM11 - ARMv6 - software
MSM7227/7627 600MHz ARM11 VFPv2 ARMv6 Adreno 200 (ATI Imageon Z430) 3D OpenGL ES 2.0
Snapdragon QSD8250/8650 S1 1GHz Scorpion VFPv3-D32,NEON ARMv7 Adreno 200 (ATI Imageon Z430) 3D OpenGL ES 2.0
Snapdragon MSM7230 S1 800MHz Scorpion VFPv3-D32,NEON ARMv7 Adreno 205 3D OpenGL ES 2.0
Snapdragon QSD8250A/8650A S2 1.3GHz Scorpion VFPv3-D32,NEON ARMv7 Adreno 205 3D OpenGL ES 2.0
Snapdragon MSM8255/8655 S2 1GHz Scorpion VFPv3-D32,NEON ARMv7 Adreno 205 3D OpenGL ES 2.0
Snapdragon MSM8260/8660 S3 1.5GHz Scorpion x2 VFPv3-D32,NEON ARMv7 Adreno 220 3D OpenGL ES 2.0
Snapdragon APQ8060 S3 1.5GHz Scorpion x2 VFPv3-D32,NEON ARMv7 Adreno 220 3D OpenGL ES 2.0
Snapdragon MSM8960 Krait x2 ? ARMv7 Adreno 225 3D OpenGL ES 2.0
Snapdragon MSM8930 Krait ? ARMv7 Adreno 305 3D OpenGL ES 2.0
Snapdragon AQP8064 Krait x4 ? ARMv7 Adreno 320 3D OpenGL ES 3.0
  • x2xx と x6xx は性能差ではなく WCDMA か CDMA 系かの違い

TI

Processor CPU core FPU ARM GPU core API
OMAP3630 1.0GHz Cortex-A8 VFPv3-D32,NEON ARMv7 PowerVR SGX 530 OpenGL ES 2.0
OMAP3622 1.0GHz Cortex-A8 VFPv3-D32,NEON ARMv7 PowerVR SGX 530 OpenGL ES 2.0
OMAP4430 1.2GHz Cortex-A9 x2 VFPv3-D32,NEON ARMv7 PowerVR SGX 540 OpenGL ES 2.0
OMAP4460 1.5GHz Cortex-A9 x2 VFPv3-D32,NEON ARMv7 PowerVR SGX 540 OpenGL ES 2.0

Samsung

Processor CPU core FPU ARM L1 L2 GPU core API
S3C6410 800Mhz ARM1176JZF-S none ARMv6 16K/16K - FIMG-3DSE OpenGL ES 1.1 4Mtri/sec
S5PC100 833MHz Cortex-A8 VFPv3-D32,NEON ARMv7 32K/32K 256KB PowerVR SGX535 OpenGL ES 2.0 10Mtri/sec
S5PC110 (Exynos 3110?) 1.4GHz Cortex-A8 VFPv3-D32,NEON ARMv7 32k/32K 512KB PowerVR SGX540 OpenGL ES 2.0 20Mtri/sec, 1Gpix/sec
S5PC210 (Exynos 4210) 1.5GHz Cortex-A9 x2 VFPv3-D32,NEON ARMv7 32K/32K 1MB Mali-400MP OpenGL ES 2.0

NVIDIA

Processor CPU core FPU ARM GPU core API
Tegra 250 (Tegra2) 1.0GHz Cortex-A9 x2 VFPv3-D16 ARMv7 ULP GeForce (8) OpenGL ES 2.0 (GLSL 1.1)
Tegra 3 1.3GHz Cortex-A9 x4 VFPv3-D32 ARMv7 ULP GeForce (12) OpenGL ES 2.0 (GLSL 1.1)

Freescale

Processor CPU core FPU ARM GPU core API
i.MX515 800MHz Cortex-A8 VFPv3-D32,NEON ARMv7 AMD Z430 (same as Adreno 200) OpenGL ES 2.0

ZiiLABS

Processor CPU core FPU ARM GPU core API
ZMS-08 HD 1.0GHz Cortex-A8 VFPv3-D32,NEON ARMv7 ZMS-08 PE (64) OpenGL ES 2.0

cpuinfo

GPU core

旧リスト

GPU Compressed Texture Formats

OpenGL / OpenGL ES

OpenGL ES GLSL DX ShaderModel shader
OpenGL ES 1.0 無し DirectX7 無し (固定機能のみ) OpenGL 1.3 相当
OpenGL ES 1.1 無し DirectX7 無し (固定機能のみ) OpenGL 1.5 相当
OpenGL ES 2.0 GLSL ES 1.0 d3d9 sm 3.0 vsh/fsh OpenGL 2.0 / GLSL 1.1+ 相当
OpenGL ES 2.1? GLSL ES 1.1 S3TC 追加?, sampling shader?
OpenGL GLSL DX ShaderModel
OpenGL 2.0 GLSL 1.1 d3d9 sm 3.0 vsh/fsh
OpenGL 2.1 GLSL 1.2 d3d9 sm 3.0 vsh/fsh
OpenGL 3.0 GLSL 1.3 d3d9 sm 3.0 vsh/fsh
OpenGL 3.1 GLSL 1.4 d3d9 sm 3.0 vsh/fsh
OpenGL 3.2 GLSL 1.5 d3d10 sm 4.0 vsh/gsh/fsh Geometry Shader
OpenGL 3.3 GLSL 3.3 d3d10.1 sm4.1? vsh/gsh/fsh
OpenGL 4.0 GLSL 4.0 d3d11 sm 5.0 vsh/tcsh/tesh/gsh/fsh Tessellator
OpenGL 4.1 GLSL 4.1 d3d11 sm 5.0 vsh/tcsh/tesh/gsh/fsh OpenGL ES 2.0 Compatibility
OpenGL 4.2 GLSL 4.2 d3d11 sm 5.0 vsh/tcsh/tesh/gsh/fsh Unordered Access View (UAV)
  • DX ShaderModel は大まかな対応付です。OpenGL は Extension を使えば上位の機能を使えるので、DirectX ほどあまり厳密な世代の区別はありません。
DirectX Shader OpenGL Shader ShaderModel
Vertex Shader vsh Direct3D 8 Vertex Shader vsh OpenGL 2.0 sm 1.0
Pixel Shader psh Direct3D 8 Fragment Shader fsh OpenGL 2.0 sm 1.0
Geometry Shader gsh Direct3D 10 Geomtery Shader gsh OpenGL 3.2 sm 4.0
Hull Shader hsh Direct3D 11 Tessellation Control Shader tcsh OpenGL 4.0 sm 5.0
Domain Shader dsh Direct3D 11 Tessellation Evaluation Shader tesh OpenGL 4.0 sm 5.0
Compute Shader csh Direct3D 11 – (OpenCL) OpenCL sm 4.0
  • Compute Shader が追加されたのは Direct3D 11 ですが、ドライバが対応していれば ShaderModel 4.0 の GPU でも利用できます。

OpenGL ES 2.0 Emulator

Developers site

解像度、ピクセル数比較

解像度 pixel 数 倍率
320×240 76800 x1 QVGA iPAQ h3630, PDA/Smartphone
400×240 96000 x1.25 WQVGA
480×240 115200 x1.5
480×272 130560 x1.7 PSP
480×320 153600 x2 HVGA iPhone2G/3G/3GS/iPod touch
640×480 307200 x4 VGA TouchDiamond/Zaurus
800×480 384000 x5 WVGA X06HT Desire/EM・ONE
854×480 409920 x5.34 WVGA+ Xperia X10, ハイエンド携帯
800×600 480000 x6.25 SVGA
1024×480 491520 x6.4 HXGA ハイエンド携帯最大 941SH
960×544 522240 x6.8 PSP2 (NGP)
960×640 614400 x8 iPhone 4
1024×600 614400 x8 WSVGA EeePC 901/NetWalker, NetBook/Smartbook
1024×768 786432 x10.24 XGA iPad, Windows Note PC
1280×720 921600 x12 720p,D4
1280×768 983040 x12.8 WXGA Windows Note PC
1600×768 1228800 x16 VAIO type P (PVR SGX 535 機種で最大解像度?)
1920×1080 2073600 x27 1080p,D5
opengl/devices.txt · 最終更新: 2011/12/20 01:19 by oga
 
特に明示されていない限り、本Wikiの内容は次のライセンスに従います: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki