Reply
Contributor
Hexage
Posts: 10
Registered: 10-29-2009
0

MB200: cannot use VBO (Vertex Buffer Objects)

Hi,

 

I've been testing our products (games) on MB200 using DeviceAnywhere. While the OpenGL driver indicates support for VBO (GL_OES_vertex_buffer_object, GL_ARB_vertex_buffer_object) calling any VBO function yields "called unimplemented OpenGL ES API". The weird thing is that sometimes it works (like 1 out of 10 tries) for no apparent reason, with no changes made to app.

 

Is there anything we can do to properly initialize VBO in our applications?

 

Thanks,

David

 

Contributor
FredGrott
Posts: 22
Registered: 09-22-2009
0

Re: MB200: cannot use VBO (Vertex Buffer Objects)

I have seen reports by the DIY bloog author Robert Green that OpenGL testuign  using Deviceanywhere instead of real device is problematic at best for

OpenGL(only)..

You might want to teston actual device and compare.

Fred Grott android Developer
Contributor
Hexage
Posts: 10
Registered: 10-29-2009
0

Re: MB200: cannot use VBO (Vertex Buffer Objects)

The problem was also reported by several unhappy CLIQ owners on retail handsets, it's not just DeviceAnywhere. One of the users managed to send me a log with the same "called unimplemented OpenGL ES API" messages.

 

I've tested this problem using GLSurfaceView and direct EGL/GL initialization, with the same result. The driver reports the same GL_RENDERER as on G1 Q3Dimension MSM7500 01.02.08 0 4.0.0

 

All other Android devices works well with our games (G1, Magic, Hero, Droid). Hopefully a Motorola engineer could take a look.

Regular Contributor
nEx
Posts: 69
Registered: 08-05-2009
0

Re: MB200: cannot use VBO (Vertex Buffer Objects)

I just got my CLIQ, and can confirm that I am seeing the same issue with both Buka and Totemo. Same error messages filling logcat.
Justin
nEx.Software
http://www.nexsoftware.net/
Motorola
EricC
Posts: 172
Registered: 08-19-2008
0

Re: MB200: cannot use VBO (Vertex Buffer Objects)

Hi Justin,

 

Can you email me the logcat messages? I'll push this through the CLIQ engineering team.

 

Thanks 

 

ericc at motorola dot com

--
Eric Cloninger
Sr. Product Manager, MOTODEV Studio for Android
Eclipse Sequoyah Project Lead
Contributor
Hexage
Posts: 10
Registered: 10-29-2009
0

Re: MB200: cannot use VBO (Vertex Buffer Objects)

The log is not very usefull. However the problem can be easily reproduced -- every time you call a VBO function (glGenBuffers, glBindBuffer, glBufferData, etc) the same error is logged (ERROR/GLLogger(579): called unimplemented OpenGL ES API.)

 

I've created a simple test app, you can see its log bellow. I'd really appreciate if you could pass it to the CLIQ engineering team. I'm ready to answer any questions they might have.

 

10-29 03:42:39.121: INFO/ActivityManager(92): Start proc net.hexage.bender for activity net.hexage.bender/.MainActivity: pid=579 uid=10048 gids={3003}
10-29 03:42:39.201: INFO/PowerManagerService(92): keypad run :true:8:153
10-29 03:42:39.281: INFO/global(579): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.
10-29 03:42:39.361: INFO/System.out(579): PlatformActivity.onCreate:
10-29 03:42:39.411: INFO/System.out(579): PlatformActivity.onResume:
10-29 03:42:39.411: INFO/System.out(579): PlatformCanvas.onResume: paused=false surfaceCreated=false
10-29 03:42:39.471: INFO/System.out(579): PlatformCanvas.onWindowFocusChanged: hasWindowFocus=true
10-29 03:42:39.481: WARN/IInputConnectionWrapper(147): showStatusIcon on inactive InputConnection
10-29 03:42:39.551: INFO/System.out(579): PlatformCanvas.surfaceCreated:
10-29 03:42:39.551: INFO/System.out(579): PlatformCanvas.surfaceChanged: format=-1 width=480 height=320 screenWidth=0
10-29 03:42:39.741: ERROR/GLLogger(579): called unimplemented OpenGL ES API
10-29 03:42:39.741: ERROR/GLLogger(579): called unimplemented OpenGL ES API
10-29 03:42:39.741: ERROR/GLLogger(579): called unimplemented OpenGL ES API
10-29 03:42:39.761: WARN/Settings(579): Setting android_id has moved from android.provider.Settings.System to android.provider.Settings.Secure, returning read-only value.
10-29 03:42:39.811: INFO/System.out(579): Device information:
10-29 03:42:39.811: INFO/System.out(579): UDID: 20000400b14246aa
10-29 03:42:39.811: INFO/System.out(579): MODEL: MB200
10-29 03:42:39.811: INFO/System.out(579): FIRMWARE: CUPCAKE v1.5 sdk3
10-29 03:42:39.811: INFO/System.out(579): LANGUAGE: enGL_VERSION: OpenGL ES 1.0-CM
10-29 03:42:39.811: INFO/System.out(579): GL_RENDERER: Q3Dimension MSM7500 01.02.08 0 4.0.0
10-29 03:42:39.811: INFO/System.out(579): GL_EXTENSIONS:
10-29 03:42:39.811: INFO/System.out(579):     GL_ARB_texture_env_combine
10-29 03:42:39.811: INFO/System.out(579):     GL_ARB_texture_env_crossbar
10-29 03:42:39.811: INFO/System.out(579):     GL_ARB_texture_env_dot3
10-29 03:42:39.811: INFO/System.out(579):     GL_ARB_texture_mirrored_repeat
10-29 03:42:39.811: INFO/System.out(579):     GL_ARB_vertex_buffer_object
10-29 03:42:39.811: INFO/System.out(579):     GL_ATI_extended_texture_coordinate_data_formats
10-29 03:42:39.811: INFO/System.out(579):     GL_ATI_imageon_misc
10-29 03:42:39.811: INFO/System.out(579):     GL_ATI_texture_compression_atitc
10-29 03:42:39.811: INFO/System.out(579):     GL_EXT_blend_equation_separate
10-29 03:42:39.811: INFO/System.out(579):     GL_EXT_blend_func_separate
10-29 03:42:39.811: INFO/System.out(579):     GL_EXT_blend_minmax
10-29 03:42:39.811: INFO/System.out(579):     GL_EXT_blend_subtract
10-29 03:42:39.811: INFO/System.out(579):     GL_EXT_stencil_wrap
10-29 03:42:39.811: INFO/System.out(579):     GL_OES_byte_coordinates
10-29 03:42:39.811: INFO/System.out(579):     GL_OES_compressed_paletted_texture
10-29 03:42:39.811: INFO/System.out(579):     GL_OES_draw_texture
10-29 03:42:39.811: INFO/System.out(579):     GL_OES_fixed_point
10-29 03:42:39.811: INFO/System.out(579):     GL_OES_matrix_palette
10-29 03:42:39.811: INFO/System.out(579):     GL_OES_point_size_array
10-29 03:42:39.811: INFO/System.out(579):     GL_OES_point_sprite
10-29 03:42:39.811: INFO/System.out(579):     GL_OES_read_format
10-29 03:42:39.811: INFO/System.out(579):     GL_OES_single_precision
10-29 03:42:39.811: INFO/System.out(579):     GL_OES_vertex_buffer_object
10-29 03:42:39.811: INFO/System.out(579):     GL_QUALCOMM_vertex_buffer_object
10-29 03:42:39.811: INFO/System.out(579):     GL_QUALCOMM_direct_texture
10-29 03:42:39.811: INFO/System.out(579): OpenGL limits:
10-29 03:42:39.811: INFO/System.out(579): GL_RED_BITS: 5
10-29 03:42:39.811: INFO/System.out(579): GL_GREEN_BITS: 6
10-29 03:42:39.811: INFO/System.out(579): GL_BLUE_BITS: 5
10-29 03:42:39.811: INFO/System.out(579): GL_ALPHA_BITS: 0
10-29 03:42:39.811: INFO/System.out(579): GL_DEPTH_BITS: 0
10-29 03:42:39.811: INFO/System.out(579): GL_STENCIL_BITS: 0
10-29 03:42:39.821: INFO/System.out(579): GL_MAX_ELEMENTS_VERTICES: 65536
10-29 03:42:39.821: INFO/System.out(579): GL_MAX_ELEMENTS_INDICES: 65536
10-29 03:42:39.821: INFO/System.out(579): GL_MAX_LIGHTS: 8
10-29 03:42:39.821: INFO/System.out(579): GL_MAX_MODELVIEW_STACK_DEPTH: 16
10-29 03:42:39.821: INFO/System.out(579): GL_MAX_PROJECTION_STACK_DEPTH: 2
10-29 03:42:39.821: INFO/System.out(579): GL_MAX_TEXTURE_STACK_DEPTH: 2
10-29 03:42:39.821: INFO/System.out(579): GL_MAX_TEXTURE_SIZE: 1024
10-29 03:42:39.821: INFO/System.out(579): GL_MAX_TEXTURE_UNITS: 2
10-29 03:42:39.821: INFO/System.out(579): GL_MAX_VIEWPORT_DIMS: 480, 320
10-29 03:42:39.821: INFO/System.out(579): GL_NUM_COMPRESSED_TEXTURE_FORMATS:  0x8b90 0x8b91 0x8b92 0x8b93 0x8b94 0x8b95 0x8b96 0x8b97 0x8b98 0x8b99
10-29 03:42:39.821: INFO/System.out(579): PlatformCanvas.create: screenWidth=480 screenHeight=320 canvasWidth=480 canvasHeight=320
10-29 03:42:40.051: INFO/System.out(579): PlatformCanvas.resumeEGL: eglSurface=com.google.android.gles_jni.EGLSurfaceImpl@43465110
10-29 03:42:40.071: INFO/ActivityManager(92): Displayed activity net.hexage.bender/.MainActivity: 1251 ms
10-29 03:42:40.081: ERROR/GLLogger(579): called unimplemented OpenGL ES API
10-29 03:42:40.081: ERROR/GLLogger(579): called unimplemented OpenGL ES API
10-29 03:42:40.081: ERROR/GLLogger(579): called unimplemented OpenGL ES API
10-29 03:42:40.081: ERROR/GLLogger(579): called unimplemented OpenGL ES API
10-29 03:42:40.081: ERROR/GLLogger(579): called unimplemented OpenGL ES API
10-29 03:42:40.111: ERROR/GLLogger(579): called unimplemented OpenGL ES API
10-29 03:42:40.121: ERROR/GLLogger(579): called unimplemented OpenGL ES API
10-29 03:42:40.161: ERROR/GLLogger(579): called unimplemented OpenGL ES API
10-29 03:42:40.201: ERROR/GLLogger(579): called unimplemented OpenGL ES API
10-29 03:42:40.231: ERROR/GLLogger(579): called unimplemented OpenGL ES API
...

Visitor
gnevarez
Posts: 5
Registered: 12-01-2009
0

Re: MB200: cannot use VBO (Vertex Buffer Objects)

Any news on this item???

 

I'm beginning a development where this could be useful, is there a workaround we can use in the meantime?

 

 

Gerardo Nevárez 

Regular Contributor
nEx
Posts: 69
Registered: 08-05-2009
0

Re: MB200: cannot use VBO (Vertex Buffer Objects)

I just confirmed that this is no longer an issue as of the latest release to CLIQ users (MOTOBLUR version 1.1.31).

 

Thanks go to Eric for getting this issue to the right people and to those right people for getting it fixed. :smileyhappy:

Justin
nEx.Software
http://www.nexsoftware.net/
Contributor
Hexage
Posts: 10
Registered: 10-29-2009
0

Re: MB200: cannot use VBO (Vertex Buffer Objects)

Great!

 

It would be nice to know how to properly detect the new firmware to activate/deactivate VBO on CLIQ.

 

Currently I deactive VBO based on android.os.Build.MODEL (MB200), but it should be extended using android.os.Build.VERSION.INCREMENTAL (eg. greater than 091001).

Visitor
gnevarez
Posts: 5
Registered: 12-01-2009
0

Re: MB200: cannot use VBO (Vertex Buffer Objects)

More info...

 

My DEXT is the LATAM version, has the firmware version Blur_Version.0.11.8.MB200.AmericaMovil.en.MX (no updates available), and at least in Speed Forge 3D I still can't see nothing rendered. I tried to contact the developers to find out if they were using VBO, but seems very likely, since the logcat shows a very similar output (many non implemented OpenGL calls).

 

 Motorola, any idea on future firmware updates for this region??? :-)

 

I'm trying to get something together, but, even if I'm a skilled Java programmer on the backend side, my GL is still in "Hello Rectangle", so it may take me a few days to have something that fully tests if my frmware has the fix in the US version. (we are on different 3G frequencies, so, I expect you guys to get fixes first)

 

I found a reference to the Samsung Galaxy having a simmilar issue, that was solved by changing the settings to eglChooseConfig, like so:

 

m_glView.setEGLConfigChooser( 
     new GLSurfaceView.EGLConfigChooser() { 
          public EGLConfig chooseConfig(EGL10 egl,EGLDisplay display) { 
               int[] attributes=new int[]{ 
                    //EGL10.EGL_RED_SIZE, 
                    //5, 
                    //EGL10.EGL_BLUE_SIZE, 
                    //5, 
                    //EGL10.EGL_GREEN_SIZE, 
                    //6, 
                    EGL10.EGL_DEPTH_SIZE
                    16
                    EGL10.EGL_NONE 
               }
               EGLConfig[] configs=new EGLConfig[1]
               int[] result=new int[1]
               egl.eglChooseConfig(display,attributes,configs,1,result)
               return configs[0]
          } 
     } 

); 

 

Taken from: http://www.anddev.org/samsung_galaxy_odd_ogl_es_hardware_acceleration_resolved-t8511.html 

 

This could work, as Hexage posted a similar issue on the android lists about getting different bit depths, related to VBO working or not. I might try this, but again, I'm just beginning to grok GL.

 

 

But, if you have a small sample apk I can test, I could tell you what the real status is (log cat and all). 

 

 

Gerardo