This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Omap3530 triangles/sec

7827.barrel_metal.rar

I'm trying to understand why the rendering is taking longer than it should.  I've followed the guidelines for OpenGL ES but am far from the advertised speed.  The proc speed is 600Mhz , memory is 32bit wide LPDDR.  My object is 73,728 verticies (24,576 triangles). 

 Rendering takes ~48ms

 

Object                                    vertices                  triangles                 render time

Metal barrel                           73,728                     24,576                     48ms

Frames/sec = 1/.050 = 20fps * 25,000triangles = 500,000 triangles per second

This is far from the expected triangles per second.  Is there something I am doing wrong or could you explain why I am getting a poor render time.  I have included my object file.

 

I render on a timer

 //-----------------------------------------

//Clear buffers and set background color

glClear(GL_COLOR_BUFFER_BIT);

glClear(GL_DEPTH_BUFFER_BIT);

glClear(GL_STENCIL_BUFFER_BIT);

glClearColor(.30f, .30f, .30f, 1.0f); //grey background

 

//-----------------------------------------

//Draw the cylinder

 glLoadIdentity();

glTranslatef(-4,0,0);

glRotatef(-(m_fRotateLastX+m_fRotateX),1.0,0,0);

glScalef(m_fScale,m_fScale,1.0);

glEnableClientState(GL_VERTEX_ARRAY);

glEnableClientState(GL_NORMAL_ARRAY);

glBindBuffer(GL_ARRAY_BUFFER,vertexBuffer);

glVertexPointer(3, GL_FLOAT, sizeof(VertexData3D), 0);//&Cylinder_VertexData[0].vertex));

glNormalPointer(GL_FLOAT, sizeof(VertexData3D), (GLvoid*)12);//&Cylinder_VertexData[0].normal);

glDrawArrays(GL_TRIANGLES, 0, BarrelNumberOfVertices); //73,728 Vertices

glDisableClientState(GL_NORMAL_ARRAY);

glDisableClientState(GL_VERTEX_ARRAY);

glBindBuffer(GL_ARRAY_BUFFER,NULL);

 

OnPaint only swaps the the buffer

eglSwapBuffers(m_iEglDisplay,m_iEglSurface);