- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic to the Top
- Bookmark
- Subscribe
- Printer Friendly Page
MB200: cannot use VBO (Vertex Buffer Objects)
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
10-29-2009 06:11 AM
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
Re: MB200: cannot use VBO (Vertex Buffer Objects)
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
10-31-2009 06:30 AM
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.
Re: MB200: cannot use VBO (Vertex Buffer Objects)
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
10-31-2009 07:19 AM
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.
Re: MB200: cannot use VBO (Vertex Buffer Objects)
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
10-31-2009 12:20 PM
Re: MB200: cannot use VBO (Vertex Buffer Objects)
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
11-02-2009 08:39 AM
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
Re: MB200: cannot use VBO (Vertex Buffer Objects)
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
11-02-2009 01:13 PM
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.EGLSurfaceI
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
...
Re: MB200: cannot use VBO (Vertex Buffer Objects)
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
12-01-2009 03:51 PM
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
Re: MB200: cannot use VBO (Vertex Buffer Objects)
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
12-02-2009 07:08 AM
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. ![]()
Re: MB200: cannot use VBO (Vertex Buffer Objects)
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
12-02-2009 09:52 AM
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).
Re: MB200: cannot use VBO (Vertex Buffer Objects)
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content
12-02-2009 10:56 AM
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_ha
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
