日別アーカイブ: 2016年2月13日

SHIELD Android TV (Tegra X1) は OpenGL ES 3.2 対応

NVIDIA SHIELD Android TV はすでに OpenGL ES 3.2 の Context に対応していることがわかりました。

Android 5.1 Tegra X1 Maxwell (256)

GL_VERSION: OpenGL ES 3.2 NVIDIA 349.00
GL_RENDERER: NVIDIA Tegra
GL_VENDOR: NVIDIA Corporation
GL_SHADING_LANGUAGE_VERSION: OpenGL ES GLSL ES 3.20

OpenGL ES 3.2 は ES 3.1 AEP が取り込まれており D3D11/OpenGL 4.x 相当の API となります。Android SDK が 3.2 に対応していないので現状ではあまり意味はありませんが、Desktop と共通のドライバが使われていることが読み取れます。

下記は Tegra K1 (Nexus 9 Driver 343.00) から追加された Extension です。

GL_EXT_discard_framebuffer
GL_EXT_draw_elements_base_vertex
GL_EXT_multi_draw_indirect
GL_EXT_post_depth_coverage
GL_EXT_raster_multisample
GL_EXT_shader_texture_lod
GL_KHR_context_flush_control
GL_KHR_robust_buffer_access_behavior
GL_KHR_robustness
GL_NV_conditional_render
GL_NV_conservative_raster
GL_NV_fill_rectangle
GL_NV_fragment_coverage_to_color
GL_NV_fragment_shader_interlock
GL_NV_framebuffer_mixed_samples
GL_NV_geometry_shader_passthrough
GL_NV_path_rendering_shared_edge
GL_NV_polygon_mode
GL_NV_sample_locations
GL_NV_sample_mask_override_coverage
GL_NV_shader_noperspective_interpolation
GL_NV_viewport_array
GL_NV_viewport_array2
GL_OES_copy_image
GL_OES_draw_buffers_indexed
GL_OES_draw_elements_base_vertex
GL_OES_texture_border_clamp
GL_OES_tessellation_point_size
GL_OES_tessellation_shader
GL_OES_texture_buffer
GL_OES_geometry_point_size
GL_OES_geometry_shader
GL_OES_gpu_shader5
GL_OES_shader_io_blocks
GL_OES_texture_view
GL_OES_primitive_bounding_box
GL_OES_texture_cube_map_array

↑ GL_NV_conservative_raster や GL_NV_fragment_shader_interlock など、Maxwell GM2xx で追加された D3D12 相当の機能も見えます。(参考)
↓ 他にも K1 との違いとして fp16 対応があります。

Precision:
 0: [15 15] 10       VS float  lowp
 1: [15 15] 10       VS float  mediump
 2: [127 127] 23     VS float  highp
 3: [31 30] 0        VS int    lowp
 4: [31 30] 0        VS int    mediump
 5: [31 30] 0        VS int    highp
 6: [15 15] 10       FS float  lowp
 7: [15 15] 10       FS float  mediump
 8: [127 127] 23     FS float  highp
 9: [31 30] 0        FS int    lowp
10: [31 30] 0        FS int    mediump
11: [31 30] 0        FS int    highp

詳細は下記に追加しました。

CPU/GPU OpenGL ES Extension (Mobile GPU)

公式サイトには Tegra X1 の CPU clock が載っていませんが、調べた限りでは 2.0GHz でした。ただし VFP Benchmark の実測では 2.1GHz 相当なので TB のような機能が働いているものと思われます。

VFP Benchmark Log

関連エントリ
Direct3D 12 GeForce GTX970 は FeatureLevel 12_1 対応、Resource Bind/Heap Tier は低い
NVIDIA SHIELD Tablet Tegra K1 は OpenGL ES 3.1 で Extension Pack 対応