日別アーカイブ: 2014年11月3日

(Kindle) Fire HD 6 は OpenGL ES 3.0 対応で非対称 4 core CPU

Amazon の新しい Tablet である Fire HD 6 は、Android 4.4 ベースの
Fire OS 4.1 を搭載しています。
Android 4.4 、API Level 19 になったことで GPU が対応していれば
OpenGL ES 3.0 が使えるようになりました。

下記は Fire HD 6 の結果です。

GL_VERSION: OpenGL ES 3.0 build 1.3@2876724
GL_RENDERER: PowerVR Rogue Han
GL_VENDOR: Imagination Technologies
GL_SHADING_LANGUAGE_VERSION: OpenGL ES GLSL ES 3.00 build 1.3@2876724

SoC は MediaTek MT8135 で、非対称の 4 core CPU に PowerVR G6200。
Extension と対応している圧縮テクスチャフォーマットは下記の通り。

Extension:
GL_OES_rgb8_rgba8
GL_OES_depth24
GL_OES_vertex_half_float
GL_OES_texture_float
GL_OES_texture_half_float
GL_OES_element_index_uint
GL_OES_mapbuffer
GL_OES_fragment_precision_high
GL_OES_compressed_ETC1_RGB8_texture
GL_OES_EGL_image
GL_OES_EGL_image_external
GL_OES_EGL_sync
GL_OES_required_internalformat
GL_OES_depth_texture
GL_OES_get_program_binary
GL_OES_packed_depth_stencil
GL_OES_standard_derivatives
GL_OES_vertex_array_object
GL_OES_texture_npot
GL_OES_surfaceless_context
GL_EXT_discard_framebuffer
GL_EXT_multi_draw_arrays
GL_EXT_multisampled_render_to_texture
GL_EXT_shader_texture_lod
GL_EXT_texture_filter_anisotropic
GL_EXT_texture_format_BGRA8888
GL_EXT_blend_minmax
GL_EXT_texture_rg
GL_EXT_occlusion_query_boolean
GL_EXT_color_buffer_float
GL_EXT_shader_framebuffer_fetch
GL_EXT_separate_shader_objects
GL_EXT_robustness
GL_EXT_draw_buffers
GL_IMG_shader_binary
GL_IMG_texture_compression_pvrtc
GL_IMG_texture_compression_pvrtc2
GL_IMG_texture_npot
GL_IMG_texture_format_BGRA8888
GL_IMG_read_format
GL_IMG_program_binary
GL_IMG_multisampled_render_to_texture
GL_KHR_debug

TextureFormat 17
00=8c01  GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG
01=8c03  GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG
02=8c00  GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG
03=8c02  GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
04=9137  GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG
05=9138  GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG
06=8d64  GL_ETC1_RGB8_OES
07=9274  GL_COMPRESSED_RGB8_ETC2
08=9275  GL_COMPRESSED_SRGB8_ETC2
09=9278  GL_COMPRESSED_RGBA8_ETC2_EAC
10=9279  GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
11=9276  GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
12=9277  GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
13=9271  GL_COMPRESSED_SIGNED_R11_EAC
14=9270  GL_COMPRESSED_R11_EAC
15=9273  GL_COMPRESSED_SIGNED_RG11_EAC
16=9272  GL_COMPRESSED_RG11_EAC

ETC2/EAC だけでなく PVRTC2 (PVRTCv2) にも対応していることがわかります。
同じ Series 6 でも iOS では PVRTCv2 に対応していませんでした。
PVRTCv2 は ETC2 と同じように、上位互換性を保ちつつモード分岐による
画質の向上が施された 2世代目の圧縮フォーマットです。

1世代目   2世代目
-------------------
ETC1      ETC2/EAC
PVRTCv1   PVRTCv2

OpenGL 4.3/ES 3.0 ETC2 Texture 圧縮の仕組み (PVRTC2,ASTC)

                          PVRTCv1  PVRTCv2  ETC1  ETC2/EAC
----------------------------------------------------------
Android PowerVR Series 5    Y        -       Y       -
Android PowerVR Series 6    Y        Y       Y       Y
iOS PowerVR Series 5        Y        -       -       -
iOS PowerVR Series 6        Y        -       Y*1     Y

 *1 ETC2 は ETC1 の上位互換性があるため ETC1 の読み込みも可能

CPU は Cortex-A15 x2 と Cortex-A7 x2 の big.LITTLE 構成です。
実際に試してみると、HMP が有効らしくアプリケーションからは 4 core と
認識されていることがわかります。
負荷をかけた状態は下記の通り。4 core ともアクティブです。

$ cat /sys/devices/system/cpu/online
0-3

$ cat /proc/cpuinfo
Processor	: ARMv7 Processor rev 3 (v7l)
processor	: 0
BogoMIPS	: 31.81
Features	: swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xc07
CPU revision	: 3

Processor	: ARMv7 Processor rev 3 (v7l)
processor	: 1
BogoMIPS	: 31.81
Features	: swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xc07
CPU revision	: 3

Processor	: ARMv7 Processor rev 2 (v7l)
processor	: 2
BogoMIPS	: 35.06
Features	: swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x3
CPU part	: 0xc0f
CPU revision	: 2

Processor	: ARMv7 Processor rev 2 (v7l)
processor	: 3
BogoMIPS	: 26.00
Features	: swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x3
CPU part	: 0xc0f
CPU revision	: 2

Hardware	: MT8135
Revision	: 000f 000a
Serial		: 0000000000000000

ミドルクラスでも Cortex-A7 Quad の端末が増えている中、
価格帯 1万円前後ながら Cortex-A15 を搭載している点が大きな特徴と言えます。
Cortex-A15 と Cortex-A7 は数倍の性能差があるので、
HMP (GTS) ではスケジューラがどのようにタスクを割り振るのか興味あるところです。

下記ページを更新しました

CPU/GPU OpenGL ES Extension (Mobile GPU)

関連エントリ
OpenGL 4.3/GLES 3.0 次の圧縮テクスチャ ASTC
OpenGL 4.3/ES 3.0 ETC2 Texture 圧縮の仕組み (PVRTC2,ASTC)