Optimisation des performances : tirer parti du matériel

L’architecture interne de WPF a deux pipelines de rendu, matériel et logiciel. Cette rubrique fournit des informations sur ces pipelines de rendu pour vous aider à prendre des décisions sur les optimisations des performances de vos applications.

Pipeline de rendu matériel

L’un des facteurs les plus importants pour déterminer les performances WPF est qu’il s’agit d’une liaison de rendu , plus vous devez afficher les pixels, plus le coût des performances est élevé. Toutefois, plus le rendu peut être déchargé sur l’unité de traitement graphique (GPU), plus vous pouvez gagner en performances. Le pipeline de rendu matériel de l’application WPF tire pleinement parti des fonctionnalités De Microsoft DirectX sur le matériel prenant en charge un minimum de Microsoft DirectX version 7.0. D’autres optimisations peuvent être acquises par le matériel qui prend en charge les fonctionnalités Microsoft DirectX version 7.0 et PixelShader 2.0+.

Pipeline de rendu logiciel

Le pipeline de rendu logiciel WPF est entièrement lié au processeur. WPF tire parti des jeux d’instructions SSE et SSE2 dans le processeur pour implémenter un rastériseur logiciel optimisé et entièrement proposé. La secours vers le logiciel est transparente chaque fois que les fonctionnalités d’application ne peuvent pas être rendues à l’aide du pipeline de rendu matériel.

Le plus grand problème de performances que vous rencontrerez lors du rendu en mode logiciel est lié au taux de remplissage, qui est défini comme le nombre de pixels que vous effectuez. Si vous êtes préoccupé par les performances en mode de rendu logiciel, essayez de réduire le nombre de fois qu’un pixel est redessiné. Par exemple, si vous avez une application avec un arrière-plan bleu, qui affiche ensuite une image légèrement transparente sur celle-ci, vous affichez tous les pixels de l’application deux fois. Par conséquent, il faudra deux fois plus de temps pour afficher l’application avec l’image que si vous aviez uniquement l’arrière-plan bleu.

Couches de rendu graphiques

Il peut être très difficile de prédire la configuration matérielle sur laquelle votre application s’exécutera. Toutefois, vous pouvez envisager une conception qui permet à votre application de basculer en toute transparence des fonctionnalités lors de l’exécution sur un autre matériel, afin qu’elle puisse tirer pleinement parti de chaque configuration matérielle différente.

Pour ce faire, WPF fournit des fonctionnalités permettant de déterminer la fonctionnalité graphique d’un système au moment de l’exécution. La fonctionnalité graphique est déterminée par la catégorisation de la vidéo carte comme l’un des trois niveaux de capacité de rendu. WPF expose une API qui permet à une application d’interroger le niveau de capacité de rendu. Votre application peut ensuite prendre différents chemins de code au moment de l’exécution en fonction du niveau de rendu pris en charge par le matériel.

Les fonctionnalités du matériel graphique qui ont le plus d’impact sur les niveaux de la couche de rendu sont les suivantes :

  • RAM vidéo La quantité de mémoire vidéo sur le matériel graphique détermine la taille et le nombre de mémoires tampon qui peuvent être utilisées pour la composition de graphiques.

  • Nuanceur de pixels Un nuanceur de pixels est une fonction de traitement des graphiques qui calcule les effets pixel par pixel. En fonction de la résolution des graphiques affichés, il peut y avoir plusieurs millions de pixels à traiter pour chaque image de l’affichage.

  • Nuanceur de sommets Un nuanceur de sommets est une fonction de traitement des graphiques qui effectue des opérations mathématiques sur les données de sommet de l’objet.

  • Prise en charge de la multitexture La prise en charge de la multitexture fait référence à la possibilité d’appliquer au moins deux textures distinctes pendant une opération de mélange sur un objet graphique 3D. Le degré de prise en charge de la multitexture est déterminé par le nombre d’unités de multitexture sur le matériel graphique.

Les fonctionnalités de nuanceur de pixels, de nuanceur de vertex et de multitexture sont utilisées pour définir des niveaux de version DirectX spécifiques, qui, à leur tour, sont utilisés pour définir les différents niveaux de rendu dans WPF.

Les fonctionnalités du matériel graphique déterminent la fonctionnalité de rendu d’une application WPF. Le système WPF définit trois niveaux de rendu :

  • Couche de rendu 0 Aucune accélération matérielle graphique. Le niveau de version DirectX est inférieur à la version 7.0.

  • Accélération matérielle partielle du niveau 1 graphique. Le niveau de version DirectX est supérieur ou égal à la version 7.0 et inférieur à la version 9.0.

  • Couche de rendu 2 La plupart des fonctionnalités graphiques utilisent l’accélération matérielle graphique. Le niveau de version DirectX est supérieur ou égal à la version 9.0.

Pour plus d’informations sur les niveaux de rendu WPF, consultez Les niveaux de rendu Graphics.

Voir aussi