Partager via


Types d'appareils

Les types d’appareils Direct3D incluent les appareils de couche d’abstraction matérielle (hal) et le rastériseur de référence.

Appareil HAL

Le type d’appareil principal est l’appareil HAL, qui prend en charge la rastérisation accélérée matérielle et le traitement du vertex matériel et logiciel. Si l’ordinateur sur lequel votre application s’exécute est équipé d’une carte d’affichage prenant en charge Direct3D, votre application doit l’utiliser pour les opérations Direct3D. Les appareils HAL Direct3D implémentent tous ou chacun des modules de transformation, d’éclairage et de rastérisation dans le matériel.

Les applications n’accèdent pas directement aux adaptateurs graphiques. Ils appellent des fonctions et des méthodes Direct3D. Direct3D accède au matériel via le hal. Si l’ordinateur sur lequel votre application s’exécute prend en charge le HAL, elle obtiendra les meilleures performances à l’aide d’un appareil HAL.

Référence de l’appareil

Direct3D prend en charge un type d’appareil supplémentaire appelé appareil de référence ou module de rastérisation de référence. Contrairement à un appareil logiciel, le module de rastérisation de référence prend en charge chaque fonctionnalité Direct3D. Cet appareil est destiné à être utilisé à des fins de débogage et n’est donc disponible que sur les machines où le kit de développement logiciel (SDK) DirectX a été installé. Étant donné que ces fonctionnalités sont implémentées pour la précision plutôt que la vitesse et sont implémentées dans les logiciels, les résultats ne sont pas très rapides. Le module de rastérisation de référence utilise des instructions spéciales sur l’UC chaque fois qu’il peut, mais il n’est pas destiné aux applications de vente. Utilisez le module de rastérisation de référence uniquement à des fins de test ou de démonstration de fonctionnalités.

Appareils HAL et REF

Les appareils HAL (couche d’abstraction matérielle) et REF (module de rastérisation de référence) sont les deux principaux types d’appareils Direct3D ; le premier est basé sur la prise en charge matérielle, et est très rapide, mais peut ne pas tout prendre en charge ; alors que la seconde n’utilise aucune accélération matérielle, elle est donc très lente, mais elle est garantie de prendre en charge l’ensemble des fonctionnalités Direct3D, de la manière correcte. En général, vous n’aurez besoin que d’utiliser des appareils HAL, mais si vous utilisez une fonctionnalité avancée que vos graphiques carte ne prennent pas en charge, vous devrez peut-être revenir au REF.

L’autre fois que vous souhaiterez peut-être utiliser le REF, c’est-à-dire si l’appareil HAL produit des résultats étranges, c’est-à-dire que vous êtes sûr que votre code est correct, mais que le résultat n’est pas ce que vous attendez. Il est garanti que l’appareil REF se comporte correctement. Vous pouvez donc tester votre application sur l’appareil REF et voir si le comportement étrange persiste. Si ce n’est pas le cas, cela signifie que (a) votre application suppose que les cartes graphiques prennent en charge quelque chose qu’il n’a pas, ou (b) qu’il s’agit d’un bogue de pilote. S’il ne fonctionne toujours pas avec l’appareil REF, il s’agit d’un bogue d’application.

Traitement de Vertex Matériel et Logiciel

Le traitement du vertex matériel et logiciel s’applique uniquement aux appareils HAL. Lorsque vous poussez les vertex à travers le pipeline, ils doivent être transformés (par le monde, la vue et les matrices de projection à leur tour) et allumés (par les lumières intégrées de D3D) - cette phase de traitement est appelée T&L (pour transformation & Éclairage). Le traitement du vertex matériel signifie que cela est effectué dans le matériel, si le matériel le prend en charge ; le traitement des vertex logiciels est effectué dans les logiciels. La pratique générique consiste à essayer d’abord de créer un appareil T&L matériel et, si cela échoue, essayez Mixed, et si cela échoue, essayez Logiciel. (En cas d’échec du logiciel, abandonnez et quittez avec une erreur.)

Appareils