Низкий fps на некоторых устройствах Android

Я разрабатывал игру для Android-устройств, которую создал на iOS с помощью cocos2d x. Я получаю довольно хороший fps около 45 на iPad2. Когда дело доходит до устройства Android, частота кадров варьируется, как указано ниже:

  1. Устройство — Samsung note Графический процессор — Mali-400MP FPS — 55-60
  2. Устройство — Moto defy+ Графический процессор — PowerVR SGX530 FPS — 35–40
  3. Устройство — Samsung Google Nexus S GPU — PowerVR SGX540 FPS — 50–55
  4. Устройство — Moto xoom GPU — ULP GeForce FPS — 15-20
  5. Устройство — Samsung Galaxy 10.1 Графический процессор — ULP GeForce FPS — 15-20

Я использую художественные ресурсы PVR (RGBA4444). Связана ли проблема с падением FPS с графическим процессором, используемым устройством. Или кто-нибудь может помочь с получением хорошего fps на устройствах moto-xoom и samsung galaxy 10.1 (не менее 40-45).


person user1210728    schedule 15.02.2012    source источник


Ответы (2)


Да, GPU для этих устройств очень разные. У них разные стратегии и приемы оптимизации. Для устройств Nvidia Tegra2 загрузите «Tegra Android Toolkit 1.0r4» отсюда http://developer.nvidia.com/tegra-resources и попробуйте некоторые из хороших инструментов для измерения производительности, таких как oprofile, perfhud, tegra-profiler. Они могут помочь вам определить, где узкое место в вашем приложении.

Прочтите также документ Разработка OpenGL ES 2.0 для платформы Tegra, где приведены советы по оптимизации. ваш код OpenGL ES 2.0.

person Mārtiņš Možeiko    schedule 15.02.2012
comment
привет, спасибо за ваш ответ. Я использую opengl es 1.1, так как cocos2d-x поддерживает только его. - person user1210728; 15.02.2012

Рассмотрите возможность добавления этой строки в свой Application.mk:

APP_ABI := armeabi armeabi-v7a

Если набор инструкций ARMv7 доступен для использования устройства, это даст вам некоторое повышение производительности.

person Ivan    schedule 23.02.2012