※ 이 글은 오가사와라 히로유키(小笠原博之) 씨가 블로그에 적은 글을 번역한 것입니다. 사정에 따라 예고없이 삭제될 수 있으므로 양해부탁드립니다.
SHIELD Android TV(Tegra X1)는 OpenGL ES 3.2 대응
(원문 : 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
자세한 것은 다음 글에 추가했습니다.
공식 사이트에서는 Tegra X1의 CPU clock이 올라와있지 않습니다만, 조사해본 바로는 2.0GHz였습니다. 다만 VFP Benchmark로 실제로 측정한 결과로는 2.1GHz에 상당하므로 TB같은 기능이 동작하고 있으리라 생각됩니다.