I've been playing with OpenGL but am unable to get a steady framerate due to GC.
When rendering 100 tiles each frame (in ortho mode), the GC needs to recover ~22000 objects every 3 seconds or so. Each collection is taking around 110 ms. Of course this means quite a framerate dip. ... D/dalvikvm( 9837): GC freed 21841 objects / 524272 bytes in 113ms D/dalvikvm( 9837): GC freed 21841 objects / 524272 bytes in 113ms D/dalvikvm( 9837): GC freed 21841 objects / 524272 bytes in 113ms D/dalvikvm( 9837): GC freed 21841 objects / 524272 bytes in 114ms ... The rendering loop I tested with is not making any objects and is very simple; while (super.running) { gl.glClear(GL10.GL_COLOR_BUFFER_BIT); gl.glBindTexture(GL10.GL_TEXTURE_2D, tex); for(x = 0 ; x < 100; x++) { gl.glVertexPointer(2, GL10.GL_FIXED, 0, tileCoords[x]); gl.glTexCoordPointer(2, GL10.GL_FIXED, 0, tileTexCoords[x]); gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4); } egl.eglSwapBuffers(dpy, surface); } The calls to gl.glVertexPointer(...); and gl.glTexCoordPointer(...); seem to be ones creating the most objects. When I take those two calls outside the for and while loop (so rendering the same tile at the same position a 100 times each frame), GC didn't occur at all for the three minutes I waited. So, is this supposed to be the case ? I also could not find sources for the implementation which is "com.google.android.jsr239.GLImpl"? Anyone knows where to find those? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---