Soumission de travail dans Direct3D 12
Pour améliorer l’efficacité du processeur des applications Direct3D, à compter de la version 12, Direct3D ne prend plus en charge un contexte immédiat associé à un appareil. Au lieu de cela, votre application enregistre, puis envoie des listes de commandes, qui contiennent des appels de dessin et de gestion des ressources. Vous pouvez envoyer ces listes de commandes de plusieurs threads à une ou plusieurs files d’attente de commandes, qui gèrent l’exécution des commandes. Cette modification fondamentale augmente l’efficacité d’un thread unique en permettant à votre application de précalcaliser le travail de rendu pour une réutilisation ultérieure, et tire parti des systèmes multicœurs en répartissant le travail de rendu sur plusieurs threads.
Contenu de cette section
Rubrique | Description |
---|---|
Philosophie de conception des files d’attente de commandes et des listes de commandes | Les objectifs de la réutilisation du travail de rendu et de la mise à l’échelle multithread ont nécessité des changements fondamentaux dans la façon dont les applications Direct3D envoient le travail de rendu au GPU. |
Création et enregistrement de listes de commandes et de bundles | Cette rubrique décrit l’enregistrement des listes de commandes et des bundles dans les applications Direct3D 12. Les listes et les bundles de commandes permettent aux applications d’enregistrer des appels de dessin ou de changement d’état pour une exécution ultérieure sur l’unité de traitement graphique (GPU). |
Exécution et synchronisation des listes de commandes | Dans Microsoft Direct3D 12, le mode immédiat des versions précédentes n’est plus présent. Au lieu de cela, les applications créent des listes de commandes et des bundles, puis enregistrent des jeux de commandes GPU. Les files d’attente de commandes sont utilisées pour envoyer des listes de commandes à exécuter. Ce modèle permet aux développeurs d’avoir plus de contrôle sur l’utilisation efficace du GPU et du processeur. |
Gestion de l’état du pipeline graphique dans Direct3D 12 | Cette rubrique décrit comment l’état du pipeline graphique est défini dans Direct3D 12. |
Utilisation de barrières de ressources pour synchroniser les états des ressources dans Direct3D 12 | Pour réduire l’utilisation globale du processeur et activer le multithread et le prétraitement du pilote, Direct3D 12 déplace la responsabilité de la gestion de l’état par ressource du pilote graphique vers l’application. |
Pipelines et nuanceurs avec Direct3D 12 | Le pipeline programmable Direct3D 12 augmente considérablement les performances de rendu par rapport aux interfaces de programmation graphique de la génération précédente. |
Ombrage à taux variable (VRS) | L’ombrage à débit variable( ou trame de fond de pixel grossière) est un mécanisme qui vous permet d’allouer des performances de rendu/puissance à des taux qui varient d’une image rendue à l’autre. |
Passes de rendu | La fonctionnalité de passes de rendu permet à votre convertisseur d’améliorer l’efficacité du GPU en réduisant le trafic mémoire vers/depuis la mémoire hors puce ; Pour ce faire, il permet à votre application de mieux identifier les exigences de classement des ressources et les dépendances de données. |