Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AnimationBenchmark #165

Closed
Niffy opened this issue Aug 25, 2012 · 1 comment
Closed

AnimationBenchmark #165

Niffy opened this issue Aug 25, 2012 · 1 comment

Comments

@Niffy
Copy link

Niffy commented Aug 25, 2012

I've copied the AnimationBenchmark over to a new project. The method drawUsingSpriteBatch works fine. (I get 27fps on a Nexus 7 tablet running jelly bean...)

So Everytime I run it on the nexus 7 I get the following when running the drawUsingSpritesWithSharedVertexBuffer method, following code the error occurs.

final AnimatedSprite face = new AnimatedSprite(this.mRandom.nextFloat() * (CAMERA_WIDTH - 32), this.mRandom.nextFloat() * (CAMERA_HEIGHT - 32), this.mFaceTextureRegion, faceSharedVertexBuffer);

This causes a blank screen as well

08-26 00:39:49.798: D/AndEngine(4958): MainActivity.onPause @(Thread: 'main')
08-26 00:39:55.648: D/AndEngine(5012): MainActivity.onCreate @(Thread: 'main')
08-26 00:39:55.688: D/AndEngine(5012): MainActivity.onResume @(Thread: 'main')
08-26 00:39:55.858: D/AndEngine(5012): VERSION: OpenGL ES 2.0 14.01002
08-26 00:39:55.858: D/AndEngine(5012): RENDERER: NVIDIA Tegra 3
08-26 00:39:55.858: D/AndEngine(5012): EGLCONFIG: EGLConfig(Red=5, Green=6, Blue=5, Alpha=0, Depth=0, Stencil=0)
08-26 00:39:55.858: D/AndEngine(5012): EXTENSIONS: GL_OES_rgb8_rgba8 GL_OES_EGL_sync GL_OES_fbo_render_mipmap GL_NV_depth_nonlinear GL_NV_draw_path GL_NV_texture_npot_2D_mipmap GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_vertex_half_float GL_OES_mapbuffer GL_NV_draw_buffers GL_NV_multiview_draw_buffers GL_EXT_Cg_shader GL_EXT_packed_float GL_OES_texture_half_float GL_EXT_texture_array GL_OES_compressed_ETC1_RGB8_texture GL_EXT_texture_compression_latc GL_NV_texture_compression_latc GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_s3tc GL_NV_texture_compression_s3tc GL_EXT_texture_filter_anisotropic GL_NV_get_tex_image GL_NV_read_buffer GL_NV_shader_framebuffer_fetch GL_NV_copy_image GL_NV_fbo_color_attachments GL_EXT_bgra GL_EXT_texture_format_BGRA8888 GL_EXT_unpack_subimage GL_NV_pack_subimage GL_NV_texture_compression_s3tc_update GL_NV_read_depth GL_NV_read_stencil GL_NV_uniform_buffer_object GL_EXT_robustness GL_OES_standard_derivatives GL_NV_EGL_stream_consumer_external GL_NV_3dvision_settings GL_EXT_debug_marker GL_EXT_debug_label GL_NV_coverage_sample GL_EXT_occlusion_query_boolean GL_NV_timer_query 
08-26 00:39:55.858: D/AndEngine(5012): MAX_VERTEX_ATTRIBS: 16
08-26 00:39:55.858: D/AndEngine(5012): MAX_VERTEX_UNIFORM_VECTORS: 256
08-26 00:39:55.858: D/AndEngine(5012): MAX_FRAGMENT_UNIFORM_VECTORS: 1024
08-26 00:39:55.858: D/AndEngine(5012): MAX_TEXTURE_IMAGE_UNITS: 16
08-26 00:39:55.858: D/AndEngine(5012): MAX_TEXTURE_SIZE: 2048
08-26 00:39:55.858: D/AndEngine(5012): MainActivity.onSurfaceCreated @(Thread: 'GLThread 6829')
08-26 00:39:55.858: D/AndEngine(5012): MainActivity.onCreateGame @(Thread: 'GLThread 6829')
08-26 00:39:55.858: D/AndEngine(5012): MainActivity.onCreateResources @(Thread: 'GLThread 6829')
08-26 00:39:55.868: D/AndEngine(5012): MainActivity.onCreateScene @(Thread: 'GLThread 6829')
08-26 00:39:55.878: E/AndEngine(5012): MainActivity.onCreateScene failed. @(Thread: 'GLThread 6829')
08-26 00:39:55.878: E/AndEngine(5012): java.lang.IndexOutOfBoundsException: index=20, limit=20
08-26 00:39:55.878: E/AndEngine(5012):  at java.nio.Buffer.checkIndex(Buffer.java:156)
08-26 00:39:55.878: E/AndEngine(5012):  at java.nio.FloatToByteBufferAdapter.put(FloatToByteBufferAdapter.java:150)
08-26 00:39:55.878: E/AndEngine(5012):  at org.andengine.entity.sprite.vbo.LowMemoryTiledSpriteVertexBufferObject.onUpdateVertices(LowMemoryTiledSpriteVertexBufferObject.java:90)
08-26 00:39:55.878: E/AndEngine(5012):  at org.andengine.entity.sprite.TiledSprite.onUpdateVertices(TiledSprite.java:127)
08-26 00:39:55.878: E/AndEngine(5012):  at org.andengine.entity.sprite.Sprite.<init>(Sprite.java:114)
08-26 00:39:55.878: E/AndEngine(5012):  at org.andengine.entity.sprite.TiledSprite.<init>(TiledSprite.java:88)
08-26 00:39:55.878: E/AndEngine(5012):  at org.andengine.entity.sprite.TiledSprite.<init>(TiledSprite.java:84)
08-26 00:39:55.878: E/AndEngine(5012):  at org.andengine.entity.sprite.TiledSprite.<init>(TiledSprite.java:60)
08-26 00:39:55.878: E/AndEngine(5012):  at org.andengine.entity.sprite.AnimatedSprite.<init>(AnimatedSprite.java:61)
08-26 00:39:55.878: E/AndEngine(5012):  at com.example.benchmarkexample.MainActivity.drawUsingSpritesWithSharedVertexBuffer(MainActivity.java:152)
08-26 00:39:55.878: E/AndEngine(5012):  at com.example.benchmarkexample.MainActivity.onCreateScene(MainActivity.java:113)
08-26 00:39:55.878: E/AndEngine(5012):  at org.andengine.ui.activity.SimpleBaseGameActivity.onCreateScene(SimpleBaseGameActivity.java:48)
08-26 00:39:55.878: E/AndEngine(5012):  at org.andengine.ui.activity.BaseGameActivity$3.onCreateResourcesFinished(BaseGameActivity.java:169)
08-26 00:39:55.878: E/AndEngine(5012):  at org.andengine.ui.activity.SimpleBaseGameActivity.onCreateResources(SimpleBaseGameActivity.java:43)
08-26 00:39:55.878: E/AndEngine(5012):  at org.andengine.ui.activity.BaseGameActivity.onCreateGame(BaseGameActivity.java:181)
08-26 00:39:55.878: E/AndEngine(5012):  at org.andengine.ui.activity.BaseGameActivity.onSurfaceCreated(BaseGameActivity.java:110)
08-26 00:39:55.878: E/AndEngine(5012):  at org.andengine.opengl.view.EngineRenderer.onSurfaceCreated(EngineRenderer.java:80)
08-26 00:39:55.878: E/AndEngine(5012):  at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1494)
08-26 00:39:55.878: E/AndEngine(5012):  at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
08-26 00:39:55.878: D/AndEngine(5012): MainActivity.onSurfaceChanged(Width=1104,  Height=736) @(Thread: 'GLThread 6829')

On my HTC Desire running Android 2.2.2, with flickering and lots of rubbish

08-26 00:45:57.614: D/AndEngine(21150): MainActivity.onCreate @(Thread: 'main')
08-26 00:45:57.744: W/AndEngine(21150): ScreenOrientation.LANDSCAPE_SENSOR is not supported on this device. Falling back to ScreenOrientation.LANDSCAPE_FIXED
08-26 00:45:57.884: D/AndEngine(21150): MainActivity.onResume @(Thread: 'main')
08-26 00:45:58.044: D/AndEngine(21150): VERSION: OpenGL ES 2.0 1044053
08-26 00:45:58.044: D/AndEngine(21150): RENDERER: Adreno
08-26 00:45:58.044: D/AndEngine(21150): EGLCONFIG: EGLConfig(Red=5, Green=6, Blue=5, Alpha=0, Depth=0, Stencil=0)
08-26 00:45:58.044: D/AndEngine(21150): EXTENSIONS: GL_AMD_compressed_3DC_texture GL_AMD_compressed_ATC_texture GL_AMD_performance_monitor GL_AMD_program_binary_Z400 GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_type_2_10_10_10_REV GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth_texture GL_OES_depth24 GL_OES_EGL_image GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_fragment_precision_high GL_OES_get_program_binary GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_texture_3D GL_OES_texture_float GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_half_float GL_OES_vertex_type_10_10_10_2 GL_NV_fence GL_QCOM_driver_control GL_QCOM_perfmon_global_mode GL_QCOM_extended_get GL_QCOM_extended_get2 GL_QCOM_tiled_rendering GL_QCOM_writeonly_rendering GL_QCOM_memory_monitor 
08-26 00:45:58.044: D/AndEngine(21150): MAX_VERTEX_ATTRIBS: 16
08-26 00:45:58.044: D/AndEngine(21150): MAX_VERTEX_UNIFORM_VECTORS: 251
08-26 00:45:58.044: D/AndEngine(21150): MAX_FRAGMENT_UNIFORM_VECTORS: 222
08-26 00:45:58.044: D/AndEngine(21150): MAX_TEXTURE_IMAGE_UNITS: 16
08-26 00:45:58.044: D/AndEngine(21150): MAX_TEXTURE_SIZE: 2048
08-26 00:45:58.054: D/AndEngine(21150): MainActivity.onSurfaceCreated @(Thread: 'GLThread 10')
08-26 00:45:58.054: D/AndEngine(21150): MainActivity.onCreateGame @(Thread: 'GLThread 10')
08-26 00:45:58.054: D/AndEngine(21150): MainActivity.onCreateResources @(Thread: 'GLThread 10')
08-26 00:45:58.064: D/AndEngine(21150): MainActivity.onCreateScene @(Thread: 'GLThread 10')
08-26 00:45:58.074: E/AndEngine(21150): MainActivity.onCreateScene failed. @(Thread: 'GLThread 10')
08-26 00:45:58.074: E/AndEngine(21150): java.lang.IndexOutOfBoundsException
08-26 00:45:58.074: E/AndEngine(21150):     at java.nio.FloatToByteBufferAdapter.put(FloatToByteBufferAdapter.java:195)
08-26 00:45:58.074: E/AndEngine(21150):     at org.andengine.entity.sprite.vbo.LowMemoryTiledSpriteVertexBufferObject.onUpdateVertices(LowMemoryTiledSpriteVertexBufferObject.java:90)
08-26 00:45:58.074: E/AndEngine(21150):     at org.andengine.entity.sprite.TiledSprite.onUpdateVertices(TiledSprite.java:127)
08-26 00:45:58.074: E/AndEngine(21150):     at org.andengine.entity.sprite.Sprite.<init>(Sprite.java:114)
08-26 00:45:58.074: E/AndEngine(21150):     at org.andengine.entity.sprite.TiledSprite.<init>(TiledSprite.java:88)
08-26 00:45:58.074: E/AndEngine(21150):     at org.andengine.entity.sprite.TiledSprite.<init>(TiledSprite.java:84)
08-26 00:45:58.074: E/AndEngine(21150):     at org.andengine.entity.sprite.TiledSprite.<init>(TiledSprite.java:60)
08-26 00:45:58.074: E/AndEngine(21150):     at org.andengine.entity.sprite.AnimatedSprite.<init>(AnimatedSprite.java:61)
08-26 00:45:58.074: E/AndEngine(21150):     at com.example.benchmarkexample.MainActivity.drawUsingSpritesWithSharedVertexBuffer(MainActivity.java:152)
08-26 00:45:58.074: E/AndEngine(21150):     at com.example.benchmarkexample.MainActivity.onCreateScene(MainActivity.java:113)
08-26 00:45:58.074: E/AndEngine(21150):     at org.andengine.ui.activity.SimpleBaseGameActivity.onCreateScene(SimpleBaseGameActivity.java:48)
08-26 00:45:58.074: E/AndEngine(21150):     at org.andengine.ui.activity.BaseGameActivity$3.onCreateResourcesFinished(BaseGameActivity.java:169)
08-26 00:45:58.074: E/AndEngine(21150):     at org.andengine.ui.activity.SimpleBaseGameActivity.onCreateResources(SimpleBaseGameActivity.java:43)
08-26 00:45:58.074: E/AndEngine(21150):     at org.andengine.ui.activity.BaseGameActivity.onCreateGame(BaseGameActivity.java:181)
08-26 00:45:58.074: E/AndEngine(21150):     at org.andengine.ui.activity.BaseGameActivity.onSurfaceCreated(BaseGameActivity.java:110)
08-26 00:45:58.074: E/AndEngine(21150):     at org.andengine.opengl.view.EngineRenderer.onSurfaceCreated(EngineRenderer.java:80)
08-26 00:45:58.074: E/AndEngine(21150):     at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1319)
08-26 00:45:58.074: E/AndEngine(21150):     at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1118)
08-26 00:45:58.074: D/AndEngine(21150): MainActivity.onSurfaceChanged(Width=720,  Height=480) @(Thread: 'GLThread 10')
08-26 00:46:10.704: D/AndEngine(21150): MainActivity.onPause @(Thread: 'main')

Same happens as above on a HTC Desire S, with flickering and loads of rubbish

It seems to be the following line in LowMemoryTiledSpriteVertexBufferObject onUpdateVertices method

bufferData.put(bufferDataOffset + 4 * TiledSprite.VERTEX_SIZE + Sprite.VERTEX_INDEX_X, x);

Changing to a HighPerformanceTiledSpriteVertexBufferObject also causes the same error at the same line

I've only copied so I can play and compile the example,currently I cannot compile my example repo but can play with the examples on one of the phones, which I still get the exact same problem.

@Niffy
Copy link
Author

Niffy commented Aug 26, 2012

Never mind, I'm such a moron. I should stop doing things at 1 in the morning.
The capacity of the buffer has to be 500! as defined in SPRITE_COUNT.
DUH

@Niffy Niffy closed this as completed Aug 26, 2012
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant