Мы столкнулись именно с этой проблемой в нашей игре с устройствами HTC Sensation и Android 2.3.4 - поэтому мы пошли и купили устройство и немного поэкспериментировали. Одним из решений было вызвать egl.eglWaitGL()
в конце метода onDraw()
, но это вдвое уменьшило частоту кадров - удивительно только на этом устройстве, но я посчитал это плохим решением и продолжал искать.
Второе исправление, которое мы используем в настоящее время и которое практически не сказывается на производительности, заключалось в прекращении использования glBufferSubData
для обновления наших вершинных массивов и продолжении загрузки всего массива с glBufferData
. Если вы используете VBO и glBufferSubData для их обновления, попробуйте изменить их.