Conseils pour l’optimisation des performances du rendu sur GPU

Bien que le rendu sur GPU améliore nettement les performances du contenu SWF, la conception du contenu joue une rôle primordial. N’oubliez pas que les paramètres ayant prouvé leur efficacité dans le rendu logiciel ne sont parfois pas adaptés au rendu sur GPU. Les conseils suivants peuvent vous aider à optimiser les performances du rendu sur GPU sans entraver celles du rendu logiciel.

Remarque : Les périphériques mobiles qui prennent en charge le rendu matériel accèdent souvent au contenu SWF via Internet. Il est donc fortement recommandé de tenir compte des conseils suivants lors de la création de contenu SWF afin d’obtenir les meilleurs résultats possibles sur tous les écrans.
  • Evitez d’utiliser les modes wmode=transparent ou wmode=opaque dans les paramètres embed HTML, car ils peuvent réduire les performances. Ils peuvent également avoir une incidence négative sur la synchronisation audio/vidéo lors du rendu logiciel et matériel. Par ailleurs, de nombreuses plates-formes ne prennent pas en charge le rendu sur GPU lorsque ces modes sont activés, ce qui réduit les performances de façon significative.

  • Utilisez uniquement le mode normal et le mode de fusion alpha. Evitez d’utiliser d’autres modes de fusion, notamment le mode de fusion des calques. Il est impossible de reproduire fidèlement tous les modes de fusion lors du rendu sur GPU.

  • Lorsqu’un GPU effectue le rendu d’images vectorielles, il rompt ces dernières en maillages composés de petits triangles avant de les dessiner. Ce processus est appelé « réduction en mosaïque ». La réduction en mosaïque implique un faible coût de performances, qui s’accroît au fur et à mesure qu’augmente la complexité de la forme. Pour minimiser l’impact sur les performances, évitez les formes morphes, que le rendu sur GPU réduit en mosaïque sur chaque image.

  • Evitez les courbes qui se croisent, les régions fines courbées (comme une fine lune croissante), ainsi que les détails compliqués le long des bords d’une forme. Ces formes sont trop complexes pour que le GPU les réduise en maillages triangulaires. Pour comprendre pourquoi, prenons deux vecteurs : un carré de 500 × 500 et une lune croissante de 100 × 10. Un GPU peut facilement effectuer le rendu du carré, car il est composé uniquement de deux triangles. En revanche, de nombreux triangles sont nécessaires pour décrire la courbe de la lune croissante. Le rendu de la forme est donc plus compliqué même s’il implique moins de pixels.

  • Evitez les changements d’échelle trop importants, car ils peuvent également obliger le GPU à réduire une nouvelle fois les images en mosaïque.

  • Dans la mesure du possible, évitez de dessiner à l’excès, c’est-à-dire de créer des couches de plusieurs éléments graphiques de façon à les masquer les uns des autres. Grâce au rendu logiciel, chaque pixel est dessiné une seule fois. Ainsi, pour le rendu logiciel, l’application n’affecte pas les performances, quel que soit le nombre d’éléments graphiques qui se chevauchent à un emplacement de pixel. A l’inverse, le rendu logiciel dessine chaque pixel pour chaque élément, que d’autres éléments masquent ou pas cette région. Si deux rectangles se chevauchent, le rendu matériel dessine la région chevauchée deux fois alors que le rendu logiciel ne la dessine qu’une seule fois.

    Ainsi, l’excès de dessin sur le bureau (qui utilise le rendu logiciel) n’a normalement aucun impact sur les performances. De nombreuses formes se chevauchant peuvent néanmoins avoir une incidence négative sur les périphériques qui utilisent le rendu sur GPU. Il est donc conseillé de supprimer les objets de la liste d’affichage au lieu de les masquer.

  • Evitez d’utiliser un grand rectangle rempli comme arrière-plan. Définissez plutôt la couleur d’arrière-plan de la scène.

  • Dans la mesure du possible, évitez d’utiliser le mode de remplissage bitmap par défaut de la répétition de bitmaps. Utilisez plutôt le mode de verrouillage de bitmaps pour obtenir de meilleures performances.