Hello!
We have a some performance issue in our game application with landscape rendering. Rendering is as follows: vertices represented as 16 static VBO, every frame we generate indices and flush it to single elements buffer object (if it's important - it created with 'dynamic' hint), then do a several glDrawElements calls. The problem is in using that elements buffer object. If we use it - performance is much lower, than in case, when we forward indices to glDrawElements from 'non-gpu' memory (so-called 'user provided'). We use DS-5 Streamline on test application with one landscape in scene to find a problem. The capture shows that bottleneck at vertex processing. In case with using buffer, vertex processor process about ten times more vertices, but fetch the same count. Looks like post-T&L cache misses. It greatly decrease performance in real game with complicated scenes. Could you help to understand what happens and how we can resolve the problem? (except using 'user provided' indices).
Captures have been made in DS-5 v5.21.1 on Samsung Galaxy Note 2 with Mali-400 GPU, driver version is r3p2. Test applications and captures in attachment ("IB" - case with elements buffer object, "UP" - 'user provided' case).
Thank in advice for help!