¿Alguien puede explicar todas estas opciones de desarrollador?

15

¿Alguien puede explicar estas opciones de desarrollador?

  • Fuerza de procesamiento de GPU
  • Deshabilitar operaciones de clip no rectangulares
  • Force 4X MSAA
  • Deshabilitar superposiciones de HW

¿Cuáles son los posibles efectos que se pueden ver en mi dispositivo al deshabilitarlos / habilitarlos? [ Nota: He encontrado otras opciones en Google pero no estas. ]

¿La configuración del desarrollador afecta la vida útil de la batería al usar velocidades de animación más bajas (todas a 2x con precisión) o velocidades de animación más altas (0.5x con precisión) a expensas de la experiencia del usuario?

MANI
fuente

Respuestas:

18

Tenga en cuenta que estas son opciones de desarrollador y que pueden no ser útiles o tener un impacto negativo en el rendimiento de su dispositivo.

Fuerza de procesamiento de GPU

La GPU es la unidad de procesamiento de gráficos. Es muy parecido a la CPU, pero en lugar de calcular números y ocuparse de tareas para el sistema operativo y el hardware, la GPU presenta información gráfica y la pone en la pantalla por usted.

La CPU puede procesar instrucciones gráficas muy bien, pero hacerlo le quita tiempo a otros cálculos y puede provocar un retraso mientras se procesan las instrucciones gráficas.

En Ice Cream Sandwich en adelante, los desarrolladores (o usuarios avanzados) tienen la opción de obligar a las aplicaciones a usar el procesamiento de GPU, ya sea que ese bit esté activado o desactivado en el manifiesto de la aplicación. Esto no necesariamente hace que la aplicación sea más rápida y puede causar problemas.


Deshabilitar operaciones de clip no rectangulares

Esto es demasiado técnico para que lo explique con gran detalle. Básicamente se usa un "lienzo" para dibujar. El código fuente para Android contiene esto:

/**
     * Turn on to **debug non-rectangular clip operations**.
     *
     * Possible values:
     * "hide", to disable this debug mode
     * "highlight", highlight drawing commands tested against a non-rectangular clip
     * "stencil", renders the clip region on screen when set
     *
     * @hide
     */
    public static final String DEBUG_SHOW_NON_RECTANGULAR_CLIP_PROPERTY =
            "debug.hwui.show_non_rect_clip";

Puede desactivarlo para crear áreas de lienzo inusuales (no rectangulares). Vea aquí para más detalles sobre esto

Según @ IanNi-Lewis señala en su comentario:

Probablemente valga la pena señalar que las "regiones de recorte no rectangulares" son un poco engañosas. Debería ser "regiones de recorte que no son rectángulos alineados con la pantalla". Si tiene una región de clip rectangular que gira un no múltiplo de 90 grados, entonces baja por el mismo camino lento que una región de clip con forma de rosquilla o lo que sea. (La "ruta lenta" utiliza el búfer de plantilla, y probablemente no necesita ser tan lenta como es; es un buen área para la optimización futura).


Force 4X MSAA

Force 4x MSAA no requiere un dispositivo rooteado. Esta opción hace lo mismo que cualquier filtro Anti Aliasing en juegos de PC: suaviza toda la pixelización y proporciona una mejor representación, lo que significa gráficos más atractivos. Los usuarios deben saber que esta función solo se recomienda para dispositivos que tienen GPU con soporte nativo de MSAA.

De Wikipedia :

En el procesamiento de señales y disciplinas relacionadas, el alias es un efecto que hace que las diferentes señales se vuelvan indistinguibles (o alias unas de otras) cuando se muestrean. También se refiere a la distorsión o artefacto que resulta cuando la señal reconstruida a partir de muestras es diferente de la señal continua original.


Deshabilitar superposiciones de HW

Sin una superposición de hardware, cada aplicación que muestre elementos en la pantalla compartirá memoria de video y tendrá que verificar constantemente la colisión y el recorte para generar una imagen adecuada, esto puede costar mucha potencia de procesamiento. Con una superposición de hardware, cada aplicación obtiene su propia porción de memoria de video, eliminando la necesidad de verificar la colisión y el recorte.

Como dijo @DanHulme: Windows en Android siempre está compuesto en lugar de procesarse en la memoria de video compartida. Normalmente, SurfaceFlingerusa la GPU para la composición, pero usará una superposición de hardware cuando sea posible, que es más rápido y usa menos batería. Deshabilitar las superposiciones significa que siempre usará el procesamiento de GPU. Solo es útil para depurar la integración del sistema o la decodificación de video HW: incluso los desarrolladores de aplicaciones no necesitan activar esta opción

RossC
fuente
2
4xMSAA podría no ser realmente más lento. En ciertas GPU como Mali-400, la diferencia de velocidad entre 4xMSAA y sin suavizado es insignificante debido a cómo se ejecutan los sombreadores de fragmentos. También vale la pena mencionar que esto solo afecta a las aplicaciones GLES, y no hará que el texto y los íconos en las aplicaciones normales sean más nítidos.
Dan Hulme
3
No creo que su descripción de las superposiciones de HW sea correcta. Windows en Android siempre está compuesto en lugar de procesarse en la memoria de video compartida. Normalmente, SurfaceFlingerusa la GPU para la composición, pero usará una superposición de hardware cuando sea posible, que es más rápido y usa menos batería. Deshabilitar las superposiciones significa que siempre usará el procesamiento de GPU. Solo es útil para depurar la integración del sistema o la decodificación de video HW: incluso los desarrolladores de aplicaciones no necesitan activar esta opción.
Dan Hulme
Estoy lejos de mi PC, editaré tan pronto como pueda, me confundí un poco. O siéntase libre de editar
RossC
La actualización correcta para usar el procesamiento de GPU hizo que la aplicación SE no se bloqueara en esta pregunta :-)
Canadian Luke
1
@Ross No creo que tenga un gran efecto en la batería, solo un poco de ahorro de batería como en Windows en el que deshabilitamos los gráficos transparentes (se sugiere deshabilitar el tema Ie Aero para mejorar el tiempo de la batería)
user285oo6