Hi everyone.
I am using Mali-400 GPU, on Allwinner A20, under linux.
I am using egl pixmap surface. Rendering results correct, but every time when i calling glDraw with the same parameters, the runtime of glDraw(only last) slower and slower.
I am checking only glDraw without anything else.
The time of drawing
1 call -- 150ms
2 time repeat -- 240ms( only second call without first)
.
6 time repeat -- 620ms( only 6 call without any other)
I am repeating this
GL_CHECK(glEnableVertexAttribArray(iLocPosition)); GL_CHECK(glVertexAttribPointer(iLocPosition, 2, GL_FLOAT, GL_FALSE, 0, vertex)); time.Start(); LoadDataToTexture( first, second ); time.Stop(); timeOfGPU.loadTime = time.GetTime(); time.Start(); GL_CHECK(glDrawArrays( type, 0, sizeOfVertex )); GL_CHECK(glFinish()); time.Stop(); timeOfGPU.drawTime = time.GetTime(); time.Start(); GL_CHECK(glReadPixels(0, 0, windowW, windowH, GL_RGBA, GL_UNSIGNED_BYTE , result)); time.Stop(); timeOfGPU.retTime = time.GetTime();
Why any new call slower than previews call?
When i was used window surface, this problem solved by eglSwapBuffers...
But now i don't know what is problem...
Thank for any reply.
Thank you very much.