В настоящее время я работаю над игровым движком на Android, используя NDK. Я разработал графический движок с использованием OpenlGL ES 1. Я создал сцену для рендеринга с вращением большого квадрата (без текстуры). Отлично работает на смартфоне (Galaxy S с Android ICS). У меня 60 FPS, и он очень плавный и стабильный. Однако на моем преобразователе Asus (Tegra 2, Honeycomb) производительность довольно плохая. Сцена работает только с 44 FPS.
Я обнаружил, что когда я рендерил несколько больших поверхностей, приложение медленно работает на планшете, и я действительно не знаю почему, поскольку размер графического элемента не имеет значения с моей стороны (без рендеринга OpenGL).
Я попробовал свой игровой движок в однопоточном и многопоточном режимах, и результат в точности совпадает. Я действительно не знаю, что не так с тем, что я делаю, потому что это прекрасно работает на телефоне.
На планшете eglSwapBuffers требуется от 200 до 20000 микросекунд для рендеринга сцены. 20000, кажется, очень высока для рендеринга сцены с 3 вращающимися квадратами и набором прямоугольников и текстов (примерно 20).
На смартфоне та же функция занимает только от 800 до 1100 микросекунд для одной и той же сцены.