Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’état de l’appareil est regroupé en objets d’état qui réduisent considérablement le coût des modifications d’état. Il existe plusieurs objets d’état, et chacun d’eux est conçu pour initialiser un ensemble d’état pour une phase de pipeline particulière. Les objets d’état varient selon la version de Direct3D.
État de disposition d’entrée
Ce groupe d’états détermine comment l’étape d’assembleur d’entrée (IA) lit les données des mémoires tampons d’entrée et les assemble pour une utilisation par le nuanceur de vertex. Cela inclut l’état, tel que le nombre d’éléments dans la mémoire tampon d’entrée et la signature des données d’entrée. L’étape Assembleur d’entrée (IA) diffuse des primitives de mémoire dans le pipeline.
État du rastériseur
Ce groupe d’état initialise l’étape Rasterizer (RS). Cet objet inclut un état tel que les modes de remplissage ou de coupure, l’activation d’un rectangle de ciseaux pour la capture et la définition de paramètres à plusieurs échantillonnages. Cette étape rastérise les primitives en pixels, effectuant des opérations telles que la capture et le mappage des primitives à la fenêtre d’affichage.
État du gabarit de profondeur
Ce groupe d’état initialise la partie profondeur-gabarit de l’étape Fusion de sortie (OM). Plus précisément, cet objet initialise les tests de profondeur et de gabarit.
État blend
Ce groupe d’état initialise la partie de fusion de la phase de fusion de sortie (OM).
État de l’échantillonneur
Ce groupe d’états initialise un objet sampler. Un objet sampler est utilisé par les étapes du nuanceur pour filtrer les textures en mémoire.
Dans Direct3D, l’objet sampler n’est pas lié à une texture spécifique, il décrit simplement comment effectuer un filtrage en fonction de n’importe quelle ressource jointe.
Considérations relatives aux performances
La conception de l’API pour utiliser des objets d’état crée plusieurs avantages en matière de performances. Il s’agit notamment de valider l’état au moment de la création de l’objet, d’activer la mise en cache des objets d’état dans le matériel et de réduire considérablement la quantité d’état passée pendant un appel d’API de paramètre d’état (en passant un handle à l’objet d’état au lieu de l’état).
Pour obtenir ces améliorations des performances, vous devez créer vos objets d’état au démarrage de votre application, bien avant votre boucle de rendu. Les objets d’état sont immuables, c’est-à-dire une fois qu’ils sont créés, vous ne pouvez pas les modifier. Au lieu de cela, vous devez les détruire et les recréer.
Vous pouvez créer plusieurs objets sampler avec différentes combinaisons d’état sampler. La modification de l’état de l’échantillonneur est ensuite effectuée en appelant l’API « Set » appropriée qui transmet un handle à l’objet (par opposition à l’état de l’échantillonneur). Cela réduit considérablement la surcharge pendant chaque trame de rendu pour changer d’état, car le nombre d’appels et la quantité de données sont considérablement réduites.
Vous pouvez également choisir d’utiliser le système d’effet qui gérera automatiquement la création et la destruction efficaces des objets d’état pour votre application.
Rubriques connexes