Quelqu'un peut-il expliquer toutes ces options pour les développeurs?

15

Quelqu'un peut-il expliquer ces options de développement?

  • Forcer le rendu GPU
  • Désactiver les opérations de clips non rectangulaires
  • Force 4X MSAA
  • Désactiver les superpositions matérielles

Quels sont les effets possibles qui peuvent être vus sur mon appareil en les désactivant / les activant? [ Remarque: j'ai trouvé d'autres options sur Google, mais pas celles-ci. ]

Les paramètres du développeur affectent-ils la durée de vie de la batterie en utilisant des vitesses d'animation plus faibles (toutes à 2x précisément) ou des vitesses d'animation plus élevées (0,5x précisément) au détriment de l'expérience utilisateur?

MANI
la source

Réponses:

18

Veuillez garder à l'esprit que ce sont des options pour les développeurs et peuvent ne pas être utiles ou avoir un impact négatif sur les performances de votre appareil.

Forcer le rendu GPU

Le GPU est l'unité de traitement graphique. Cela ressemble beaucoup au processeur, mais au lieu de calculer les chiffres et de prendre en charge les tâches du système d'exploitation et du matériel, le GPU affiche des informations graphiques et les affiche à l'écran pour vous.

Le CPU peut très bien traiter les instructions graphiques, mais cela prend du temps de faire d'autres calculs et peut entraîner un décalage pendant le traitement des instructions graphiques.

Dans Ice Cream Sandwich, les développeurs (ou utilisateurs avancés) ont la possibilité de forcer les applications à utiliser le rendu GPU, que ce bit soit activé ou désactivé dans le manifeste de l'application. Cela ne rend pas nécessairement l'application plus rapide et peut entraîner des problèmes.


Désactiver les opérations de clips non rectangulaires

C'est trop technique pour que j'explique en détail. Fondamentalement, une «toile» est utilisée pour le dessin. Le code source pour Android contient ceci:

/**
     * 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";

Vous pouvez le désactiver pour créer des zones de toile inhabituelles (non rectangulaires). Voir ici pour plus de détails à ce sujet

Comme le souligne @ IanNi-Lewis dans son commentaire:

Il vaut probablement la peine de souligner que les "régions de découpage non rectangulaires" sont un peu trompeuses. Il doit s'agir de "régions de découpage qui ne sont pas des rectangles alignés sur l'écran". Si vous avez une zone de clip rectangulaire qui est tournée de quelques non-multiples de 90 degrés, elle suit le même chemin lent qu'une zone de clip en forme de beignet ou autre. (Le "chemin lent" utilise le tampon de gabarit et n'a probablement pas besoin d'être aussi lent qu'il l'est; c'est un bon domaine pour une optimisation future.)


Force 4X MSAA

Force 4x MSAA ne nécessite pas de périphérique enraciné. Cette option fait la même chose que tout filtre anti-crénelage dans les jeux PC - lisse toute la pixellisation et offre un meilleur rendu, ce qui signifie des graphismes plus beaux. Les utilisateurs doivent savoir que cette fonction n'est recommandée que pour les appareils dotés d'un processeur graphique prenant en charge MSAA natif.

De Wikipédia :

Dans le traitement du signal et les disciplines connexes, l' aliasing est un effet qui fait que différents signaux deviennent indiscernables (ou alias les uns des autres) lorsqu'ils sont échantillonnés. Il fait également référence à la distorsion ou à l'artefact qui se produit lorsque le signal reconstruit à partir d'échantillons est différent du signal continu d'origine.


Désactiver les superpositions matérielles

Sans superposition matérielle, chaque application qui affiche des éléments à l'écran partagera la mémoire vidéo et devra constamment vérifier la collision et l'écrêtage pour rendre une image correcte, ce qui peut coûter beaucoup de puissance de traitement. Avec une superposition matérielle, chaque application obtient sa propre portion de mémoire vidéo, éliminant ainsi la nécessité de vérifier les collisions et les écrêtages.

Comme l'a dit @DanHulme: Windows dans Android est toujours composé plutôt que rendu dans la mémoire vidéo partagée. Normalement, SurfaceFlingerutilise le GPU pour la composition, mais il utilisera une superposition matérielle lorsque cela est possible, ce qui est plus rapide et utilise moins de batterie. La désactivation des superpositions signifie qu'il utilisera toujours le rendu GPU. Il n'est utile que pour le débogage de l'intégration du système ou du décodage vidéo HW: même les développeurs d'applications n'ont pas besoin d'activer cette option

RossC
la source
2
4xMSAA pourrait ne pas être plus lent. Sur certains GPU tels que Mali-400, la différence de vitesse entre 4xMSAA et aucun anti-aliasing est négligeable en raison de l'exécution des shaders de fragments. Il convient également de mentionner que cela n'affecte que les applications GLES et ne rendra pas le texte et les icônes dans les applications normales plus nets.
Dan Hulme
3
Je ne pense pas que votre description des superpositions matérielles soit correcte. Windows dans Android est toujours composé plutôt que rendu dans la mémoire vidéo partagée. Normalement, SurfaceFlingerutilise le GPU pour la composition, mais il utilisera une superposition matérielle lorsque cela est possible, ce qui est plus rapide et utilise moins de batterie. La désactivation des superpositions signifie qu'il utilisera toujours le rendu GPU. Il n'est utile que pour déboguer l'intégration du système ou le décodage vidéo HW: même les développeurs d'applications n'ont pas besoin d'activer cette option.
Dan Hulme
Je suis loin de mon PC, je vais éditer dès que je peux, un peu confus. Ou n'hésitez pas à modifier
RossC
Une bonne mise à jour pour utiliser le traitement gpu a fait que l'application se ne plantait pas sur cette question :-)
Canadian Luke
1
@ Ross Je ne pense pas que cela ait un effet énorme sur la batterie, juste une économie de batterie comme dans Windows où nous désactivons les graphiques transparents (le thème Ie Aero est suggéré de désactiver pour améliorer l'autonomie de la batterie)
user285oo6