¿Por qué está deshabilitado "Forzar procesamiento de GPU" en las opciones de desarrollador predeterminadas?

¿Por qué está deshabilitada esta característica? Cuando lo enciendo, muchas aplicaciones se vuelven ágiles e increíbles con gráficos fluidos. Parece que sería bueno si estuviera habilitado de forma predeterminada.

El artículo vinculado en esta pregunta dice que la aceleración de hardware no era predeterminada hasta 4.0.

¿La opción "Forzar procesamiento de GPU" está dirigida a aplicaciones que usan API para 3.0 y versiones anteriores?

Respuestas (3)

Cuando se agregó por primera vez el procesamiento de GPU, era muy poco confiable. A veces, era más lento que el renderizado por software, y había algunos tipos de GUI con los que simplemente no podía funcionar. Por esta razón, dependía del desarrollador de la aplicación probar su aplicación con procesamiento de GPU y establecer una opción en el manifiesto de la aplicación (el mismo lugar donde declara sus permisos) para habilitar el procesamiento de GPU para esa aplicación. La opción era principalmente para facilitar a los desarrolladores probar el efecto de la representación de GPU en su aplicación. Esto tiene sentido porque:

  1. la mayoría de los usuarios no saben ni se preocupan por lo que es el procesamiento de GPU, y no saben si debe estar activado o desactivado para una aplicación determinada; y
  2. la configuración realmente debe ser por aplicación, no en todo el dispositivo, porque algunas aplicaciones simplemente no funcionarían con la representación de GPU activada.

Después de un mayor desarrollo, cuando apareció 4.0, el procesamiento de GPU se volvió más confiable, por lo que se convirtió en el predeterminado para todas las aplicaciones: ahora depende del desarrollador deshabilitar explícitamente el procesamiento de GPU si causa un problema en su aplicación. (Eso es muy raro ahora). La opción "Forzar procesamiento de GPU" es vestigial y rara vez la usan incluso los desarrolladores ahora, porque ya es la predeterminada.

¿Sabes cómo modificar el renderizado Force GPU con build.prop?

Para citar de una publicación de XDA :

Habilitar esta preferencia en las opciones de desarrollador descarga la tarea de renderizar componentes de la ventana como botones, texto y cálculos de gráficos 2D complejos en la GPU. Esto a menudo da como resultado una representación de la interfaz de usuario mucho más rápida, incluidas las animaciones. Por un lado, definitivamente obtendrá una mejor velocidad de fotogramas (y, por lo tanto, una experiencia fluida) en todo el sistema, pero puede terminar usando más batería. En ciertos dispositivos, la GPU consume más energía que la CPU, por lo tanto, puede observar un 5-15% menos de duración de la batería con la opción habilitada.

Recomendaría tener esta opción habilitada en dispositivos con CPU más débiles, por ejemplo, rara vez debería necesitar habilitar esto en una CPU ARM de 1,4 ghz de doble núcleo.

La descarga de la renderización de la interfaz de usuario a la GPU tiene beneficios obvios para que la CPU pueda trabajar en otras tareas importantes, como la E/S de la base de datos, la manipulación de datos, los cálculos de diseño y la respuesta a otras entradas del usuario.

Dicho esto, debería depender del usuario decidir si quiere cambiar la duración de la batería por el rendimiento. Y creo que la mayoría de la gente querría que sus teléfonos duraran más y mantuvieran el rendimiento a un ritmo aceptable.

Está destinado a que los desarrolladores prueben sus aplicaciones, por eso no está habilitado de forma predeterminada.