El framework de rendimiento dinámico de Android (ADPF) es una herramienta potente de Google para los desarrolladores que desean optimizar el rendimiento de sus aplicaciones. A través de sus APIs térmicas, ADPF proporciona información en tiempo real sobre el estado térmico del dispositivo, que luego se usa para ajustar la configuración de gráficos en la aplicación.
Con fines de investigación, Arm desarrolló una demostración con Unreal Engine y ADPF para investigar cómo se usa ADPF para optimizar el rendimiento de los juegos.
ADPF supervisa el estado térmico, y las cualidades de los gráficos se ajustan en el motor de juego según corresponda.
Teniendo en cuenta a los desarrolladores, el objetivo es permitir que los usuarios jueguen durante más tiempo sin afectar la experiencia de juego ni que el dispositivo consuma demasiada energía.
Antes de comenzar
Antes de analizar la demostración con más detalle, es importante destacar la documentación oficial de Google sobre ADPF. Esta documentación es un recurso invaluable que proporciona estadísticas detalladas y orientación sobre el uso de ADPF.
Sin embargo, para quienes prefieren el aprendizaje personalizable, el repositorio de muestras de ADPF contiene ejemplos prácticos de la implementación de ADPF en aplicaciones para Android.
Ajuste de la configuración de gráficos
En el contexto de Unreal Engine, podemos ajustar la configuración de gráficos de forma dinámica para mantener el rendimiento.
Usamos el monitor de estado térmico y la API de Thermal Headroom en ADPF para supervisar la limitación térmica. Luego, puedes ajustar la configuración de calidad, como la calidad de las sombras, la calidad de las reflexiones y la calidad de las texturas, a medida que el dispositivo comienza a reducir la velocidad.
La siguiente configuración de calidad de gráficos en Unreal Engine se usa para modificar varios parámetros:
- ViewDistanceQuality
- ShadowQuality
- GlobalIlluminationQuality
- ReflectionQuality
- AntiAliasingQuality
- TextureQuality
- VisualEffectQuality
- PostProcessingQuality
- FoliageQuality
- ShadingQuality
- OverallScalabilityLevel
Pruebas en el mundo real
Arm crea sus propios juegos de demostración, que se usan para investigar las tecnologías de juegos y gráficos para dispositivos móviles. Este año, probamos ADPF en una de ellas, la demo de SteelArms.
SteelArms tiene diferentes niveles de intensidad de gráficos y una carga de trabajo sustancial de la CPU. Está diseñado para ser como los juegos para dispositivos móviles modernos, de modo que podamos modelar el comportamiento del juego en los teléfonos celulares actuales. También nos permite probar cómo podrían funcionar diferentes tecnologías en un juego en dispositivos móviles basados en Arm.
Resultados
En las imágenes anteriores, se muestra una diferencia entre la mejor calidad (Cinemática) y la más baja (Baja) cuando se activa ADPF para ajustar la configuración de gráficos. Este cambio es gradual y los usuarios no lo notan durante el juego.
Vista de pantalla dividida de la configuración de gráficos más alta a la izquierda (robot azul) y la más baja a la derecha (robot rojo).
En las figuras 3 y 4 anteriores, se puede ver la misma vista del robot en paralelo. Si se observa con mayor detalle, se ve la configuración de gráficos ajustada con ADPF. ¿Observas el piso del ring, el hombro del robot, las cuerdas del ring y el público? Todas parecen tener una calidad ligeramente inferior, lo que se hizo con ADPF.
Cuando la limitación era inminente, estos efectos se reducían en la demo de SteelArms. Es difícil detectar estas pequeñas reducciones en el procesamiento posterior y los efectos visuales. Además, los usuarios no suelen notarlos cuando juegan. Esto significa que puedes mantener la mayor parte de la experiencia visual del juego sin afectar la experiencia de juego. Puedes hacer todo esto y, al mismo tiempo, mantener el rendimiento de energía del juego y la duración de batería del dispositivo.
Como se mencionó anteriormente, a modo de demostración, comparamos las imágenes con la configuración de calidad más alta con las de la más baja. Por este motivo, la diferencia aún se puede ver si se observa con atención. Sin embargo, cuando se reduce la escala durante el juego, el usuario apenas lo nota, a la vez que se mantiene una experiencia de juego estable.
Resultados
El dispositivo evita el sobrecalentamiento y se mantiene dentro de un margen térmico de 1.0.
Consumo eléctrico
Resultados de ADPF
Los resultados de ADPF activados y desactivados se pueden ver en las figuras que se mostraron anteriormente. Se muestra que hay una diferencia en la velocidad de fotogramas del juego y en el consumo de energía de los núcleos. Cuando la ADPF está activada, se observa una mejora de hasta el 57% en la velocidad de fotogramas. Cuando ADPF está desactivada, la GPU consume una cantidad significativa de energía. Luego, el núcleo de CPU grande tiene picos de energía que son coherentes con la carga de trabajo de la GPU. A medida que se pone al día con la cantidad de procesamiento que se le solicita. En comparación, cuando el ADPF está activado, el núcleo de CPU grande responde al estrangulamiento y reduce el consumo general de energía de todos los núcleos del dispositivo.
Conclusión
El ADPF puede mejorar significativamente el consumo de energía de los juegos. En última instancia, esto significa un tiempo de juego más prolongado para los jugadores, con una duración de batería mejorada y una temperatura más baja para el dispositivo que se usa. Desde la perspectiva del desarrollador, ADPF mantiene la velocidad de fotogramas correcta del juego. Al mismo tiempo, les brinda la flexibilidad para reducir la configuración de calidad y, aún así, ofrecer al usuario una excelente experiencia de juego.
Los dispositivos más nuevos y más antiguos pueden beneficiarse del uso de ADPF. Permite que los juegos se ejecuten con un alto nivel de calidad en generaciones anteriores de dispositivos sin trabajo de optimización adicional.