I draw 2 triangles covering the entire surface using only the GLES20 context. The problem is that drawing just one texture this way seems unreasonably slow. The frame rate is reduced from 58 frames per second to 21 frames per second.
- the problem really is the total area of ββthe pixel drawn from all the squares together.
- bitmaps change to pow2 upon loading
- bitmaps are loaded with the correct GL internal formats
- using a raster image 8888 or 565 does not change anything
- both vertex and fragment shader code is absolutely minimal
- turning on / off mixing doesn't change anything
- drawing the entire raster image in one fragment or in several fragments does not help
- glDrawTexiOES doesn't seem to work with GLES20 (GL enumeration error)
I am here in difficulty; I thought that shining a single image in GL should be at least as fast as doing the same with Canvas, but it doesn't seem to be.
Can anyone give any advice or explanation for this performance hit?
Update:
I just adapted the rendering stream to support the canvas instead of the EGL context, and I am doing exactly the same thing; showing fps text and blitting background texture. Guess what: showing only text, I get 58 frames per second, adding background I get ... 57 frames per second!
. ,
, GLES20, ,
2D- - Canvas; ,
3D, OpenGL.
, OpenGL , 2D API,
?