原文地址:http://www.linuxgraphics.cn/android/check_g1_opengl_hardware_acceleration.html

简介

一直以来有个疑惑,T-Mobile G1 上的 OpenGL 是软件实现的还是硬件实现的,在网上查了好多次,但众说纷纭,有说是软件实现,也有说是硬件实现。受 glxinfo 的启发,本文使用 glGetString 接口做一下检测,结论是 G1 手机的 OpenGL 是基于硬件实现的。

思路

使用 glGetString 接口查看 GL_RENDERER, GL_VERDOR, GL_VERSION, GL_EXTENSIONS 等信息,尤其是 GL_RENDERER,即可判断出是硬件实现还是软件实现。

核心代码片段如下所示:

        Log.d("GL", "GL_RENDERER = " + gl.glGetString(GL10.GL_RENDERER));        Log.d("GL", "GL_VENDOR = " + gl.glGetString(GL10.GL_VENDOR));        Log.d("GL", "GL_VERSION = " + gl.glGetString(GL10.GL_VERSION));        Log.i("GL", "GL_EXTENSIONS = " + gl.glGetString(GL10.GL_EXTENSIONS));

使用 LogCat 看 debug 信息:

adb logcat

数据

测试程序跑在虚拟机上的打印信息:

GL_RENDERER = Android PixelFlinger 1.0GL_VENDOR = AndroidGL_VERSION = OpenGL ES-CM 1.0GL_EXTENSIONS =    GL_OES_byte_coordinates    GL_OES_fixed_point    GL_OES_single_precision    GL_OES_read_format    GL_OES_compressed_paletted_texture    GL_OES_draw_texture    GL_OES_matrix_get    GL_OES_query_matrix    GL_ARB_texture_compression    GL_ARB_texture_non_power_of_two    GL_ANDROID_direct_texture    GL_ANDROID_user_clip_plane    GL_ANDROID_vertex_buffer_object    GL_ANDROID_generate_mipmap

从 GL_RENDERER 信息可以看出,虚拟机上的 OpenGL 是 Android PixelFlinger 实现的,即软件实现。

测试程序跑在 G1 手机上的打印信息:

GL_RENDERER = Q3Dimension MSM7500 01.02.08 0 4.0.0GL_VENDOR = QUALCOMM, Inc.GL_VERSION = OpenGL ES 1.0-CMGL_EXTENSIONS =    GL_ARB_texture_env_combine    GL_ARB_texture_env_crossbar    GL_ARB_texture_env_dot3    GL_ARB_texture_mirrored_repeat    GL_ARB_vertex_buffer_object    GL_ATI_extended_texture_coordinate_data_formats    GL_ATI_imageon_misc    GL_ATI_texture_compression_atitc    GL_EXT_blend_equation_separate    GL_EXT_blend_func_separate    GL_EXT_blend_minmax    GL_EXT_blend_subtract    GL_EXT_stencil_wrap    GL_OES_byte_coordinates    GL_OES_compressed_paletted_texture    GL_OES_draw_texture    GL_OES_fixed_point    GL_OES_matrix_palette    GL_OES_point_size_array    GL_OES_point_sprite    GL_OES_read_format    GL_OES_single_precision    GL_OES_vertex_buffer_object    GL_QUALCOMM_vertex_buffer_object    GL_QUALCOMM_direct_texture

从上面的 GL_RENDERER 信息可以看出,G1 的 OpenGL 是基于 Q3Dimesion MSM7500 芯片实现的,即是硬件实现,支持硬件加速。

Q3Dimesion MSM7500 的 GLBenchmark 测试细节:

http://www.glbenchmark.com/resultdetails.jsp?benchmark=glpro&resultid=6392206&D=LG%20KS20

更多相关文章

  1. android通过Location API显示地址信息的实现方法
  2. Android日志系统第三方库------Logger
  3. Android中MVC框架的运用
  4. [Android(安卓)硬件] android手机主流屏幕分辨率有?
  5. Android(安卓)-- Vold机制简要分析
  6. Android学习之Android中Http通信:Http协议
  7. Android(安卓)Framework层看硬件加速
  8. Android(安卓)安全机制
  9. Android(安卓)Mms 源码结构

随机推荐

  1. 冷月手撕408之操作系统(14)-内存分配之非
  2. 冷月手撕408之操作系统(6)-线程概述
  3. 冷月手撕408之操作系统(5)-进程概述
  4. 冷月手撕408之操作系统(23)-输入输出管理
  5. 冷月手撕408之操作系统(12)-内存的分配与
  6. 冷月手撕408之数据结构(4)-链表
  7. 冷月手撕408之操作系统(21)-文件的实现
  8. 冷月手撕408之操作系统(4)-操作系统的运
  9. 冷月手撕408之操作系统(21)-文件的共享与
  10. 冷月手撕408之操作系统(12)-内存管理基础