Couches de rendu graphiques

Un niveau de rendu définit un niveau de capacité matérielle graphique et de performances pour un appareil qui exécute une application WPF.

Matériel graphique

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.

Définitions des couches de rendu

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. Toutes les fonctionnalités graphiques utilisent l’accélération logicielle. Le niveau de version DirectX est inférieur à la version 9.0.

  • Couche de rendu 1 Certaines 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.

  • 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.

La RenderCapability.Tier propriété vous permet de récupérer la couche de rendu au moment de l’exécution de l’application. La couche de rendu permet de déterminer si l’appareil prend en charge certaines fonctionnalités graphiques à accélération matérielle. Votre application peut alors prendre des chemins de code différents au moment de l’exécution selon la couche de rendu prise en charge par l’appareil.

Couche de rendu 0

La valeur de couche de rendu 0 signifie qu’aucune accélération matérielle graphique n’est disponible pour l’application sur l’appareil. À ce niveau de la couche, vous devez supposer que tous les graphiques seront restitués par le logiciel sans accélération matérielle. La fonctionnalité de ce niveau correspond à une version DirectX inférieure à 9.0.

Couche de rendu 1 et couche de rendu 2

Remarque

À compter du .NET Framework 4, le niveau de rendu 1 a été redéfini pour inclure uniquement du matériel graphique prenant en charge DirectX 9.0 ou version ultérieure. Le matériel graphique qui prend en charge DirectX 7 ou 8 est désormais défini comme niveau de rendu 0.

Une valeur de niveau de rendu de 1 ou 2 signifie que la plupart des fonctionnalités graphiques de WPF utilisent l’accélération matérielle si les ressources système nécessaires sont disponibles et n’ont pas été épuisées. Cela correspond à une version DirectX supérieure ou égale à 9.0.

Le tableau suivant indique les différences entre la couche de rendu 1 et la couche de rendu 2 au niveau des spécifications de matériel graphique :

Fonction Niveau 1 Niveau 2
Version de DirectX Doit être supérieure ou égale à 9.0. Doit être supérieure ou égale à 9.0.
RAM vidéo Doit être supérieur ou égal à 60 Mo. Doit être supérieur ou égal à 120 Mo.
Nuanceur de pixels Le niveau de version doit être supérieur ou égal à 2.0. Le niveau de version doit être supérieur ou égal à 2.0.
Nuanceur de sommets Aucune spécification. Le niveau de version doit être supérieur ou égal à 2.0.
Unités de multitexture Aucune spécification. Le nombre d’unités doit être supérieur ou égal à 4.

Les fonctionnalités et fonctions suivantes sont à accélération matérielle pour les couches de rendu 1 et 2 :

Fonction Notes
Rendu 2D La plupart des types de rendu 2D sont pris en charge.
Rastérisation 3D La plupart des types de rastérisation 3D sont pris en charge.
Filtrage anisotropique 3D WPF tente d’utiliser le filtrage anisotropique lors du rendu du contenu 3D. Le filtrage anisotropique correspond à l’amélioration de la qualité d’image des textures des surfaces éloignées et en biais par rapport à l’appareil photo.
Mappage MIP 3D WPF tente d’utiliser le mappage MIP lors du rendu du contenu 3D. Le mappage MIP améliore la qualité du rendu de texture lorsqu’une texture occupe un champ de vue plus petit dans un Viewport3D.
Dégradés radiaux Bien que pris en charge, évitez l’utilisation d’objets RadialGradientBrush volumineux.
Calculs d’éclairage 3D WPF effectue un éclairage par vertex, ce qui signifie qu’une intensité de lumière doit être calculée à chaque sommet pour chaque matériau appliqué à un maillage.
Rendu du texte Le rendu de police de sous-pixel utilise des nuanceurs de pixels disponibles sur le matériel graphique.

Les fonctionnalités et fonctions suivantes sont à accélération matérielle uniquement pour la couche de rendu 2 :

Fonction Notes
Anticrénelage 3D L’anticrénelage 3D est pris en charge uniquement sur les systèmes d’exploitation qui prennent en charge le modèle de pilote d’affichage Windows (WDDM), comme Windows Vista et Windows 7.

Les fonctionnalités et fonctions suivantes ne sont pas à accélération matérielle :

Fonction Notes
Contenu imprimé Tout le contenu imprimé est rendu à l’aide du pipeline logiciel WPF.
Contenu ratérisé qui utilise RenderTargetBitmap Tout contenu rendu à l’aide de la Render méthode .RenderTargetBitmap
Contenu en mosaïque qui utilise TileBrush Tout contenu en mosaïque dans lequel la TileMode propriété du fichier TileBrush est définie Tilesur .
Surfaces qui dépassent la taille de texture maximale du matériel graphique Pour la plupart des matériels graphiques, les grandes surfaces ont une taille de 2048 x 2048 ou 4096 x 4096 pixels.
Toute opération dont la spécification de RAM vidéo dépasse la mémoire du matériel graphique Vous pouvez surveiller l’utilisation de la RAM vidéo par l’application à l’aide de l’outil Perforator compris dans la suite WPF Performance Suite du SDK Windows.
Fenêtres superposées Les fenêtres superposées permettent aux applications WPF d’afficher du contenu à l’écran dans une fenêtre non rectangulaire. Sur les systèmes d’exploitation qui prennent en charge le modèle de pilote d’affichage Windows (WDDM), tels que Windows Vista et Windows 7, les fenêtres en couches sont accélérées. Sur d’autres systèmes, tels que Windows XP, les fenêtres superposées sont rendues par des logiciels sans accélération matérielle.

Vous pouvez activer des fenêtres en couches dans WPF en définissant les propriétés suivantes Window :

- WindowStyle = None
- AllowsTransparency = true
- Background = Transparent

Autres ressources

Les ressources suivantes peuvent vous aider à analyser les caractéristiques de performances de votre application WPF.

Paramètres du Registre pour le rendu des graphiques

WPF fournit quatre paramètres de Registre pour contrôler le rendu WPF :

Paramètre Description
Option Désactiver l’accélération matérielle Spécifie si l’accélération matérielle doit être activée.
Valeur d’échantillonnage multiple maximale Spécifie le degré d’échantillonnage multiple pour le contenu 3D anticrénelage.
Paramètre Date de pilote vidéo requise Spécifie si le système désactive l’accélération matérielle pour les pilotes commercialisés avant novembre 2004.
Option Utiliser le rastériseur de référence Spécifie si WPF doit utiliser le rastériseur de référence.

Ces paramètres sont accessibles par n’importe quel utilitaire de configuration externe qui sait comment référencer les paramètres de Registre WPF. Ces paramètres peuvent également être créés ou modifiés en accédant directement aux valeurs à l’aide de l’Éditeur du Registre Windows. Pour plus d’informations, consultez Paramètres du Registre pour le rendu des graphiques.

Outils de profilage des performances WPF

WPF fournit une suite d’outils de profilage des performances qui vous permettent d’analyser le comportement d’exécution de votre application et de déterminer les types d’optimisations des performances que vous pouvez appliquer. Le tableau suivant répertorie les outils de profilage des performances inclus dans l’outil sdk Windows, WPF Performance Suite :

Outil Description
Perforator À utiliser pour analyser le comportement de rendu.
Visual Profiler Permet de profiler l’utilisation des services WPF, tels que la disposition et la gestion des événements, par éléments de l’arborescence visuelle.

L’outil WPF Performance Suite fournit une vue graphique détaillée des données de performances. Pour plus d’informations sur les outils de performances WPF, consultez WPF Performance Suite.

Outil de diagnostic DirectX

L’outil de diagnostic DirectX, Dxdiag.exe, est conçu pour vous aider à résoudre les problèmes liés à DirectX. Le dossier d’installation par défaut de l’outil de diagnostic DirectX est le suivant :

~\Windows\System32

Lorsque vous exécutez l’outil de diagnostic DirectX, la fenêtre principale contient un ensemble d’onglets qui vous permettent d’afficher et de diagnostiquer les informations relatives à DirectX. Par exemple, l’onglet Système fournit des informations système sur votre ordinateur et spécifie la version de DirectX installée sur votre ordinateur.

Screenshot: DirectX Diagnostic Tool
Fenêtre principale de l’outil de diagnostic DirectX

Voir aussi