Partager via


Configuration de l’environnement de programmation Direct3D 12

Décrit l’installation, les outils et les bibliothèques prises en charge qui constituent un environnement de développement Direct3D 12 productif.

Environnement de développement

Les en-têtes et bibliothèques Direct3D 12 font partie du Kit de développement logiciel (SDK) Windows 10. Il n’existe aucun téléchargement ou installation distinct requis pour utiliser Direct3D 12.

Une fois que vous avez installé le logiciel du Kit de développement logiciel (SDK) Windows 10 et Visual Studio, la configuration de votre environnement de programmation Direct3D 12 est terminée. Visual Studio 2019 est recommandé, car il inclut les outils de débogage graphique D3D12, mais les versions antérieures de Visual Studio fonctionnent pour le développement de programmes.

Pour utiliser l’API Direct3D 12, incluez D3d12.h et liez à D3d12.lib, ou interrogez les points d’entrée directement dans D3d12.dll.

Les en-têtes et bibliothèques suivants sont disponibles. L’emplacement des bibliothèques statiques dépend de la version (32 bits ou 64 bits) de Windows 10 exécutée sur votre ordinateur.

Nom du fichier d’en-tête ou de bibliothèque Description Emplacement d’installation
D3d12.h En-tête d’API Direct3D 12 %WindowsSdkDir\Include%WindowsSDKVersion%\\um
D3d12.lib Bibliothèque de stubs d’API Direct3D 12 statique %WindowsSdkDir\Lib%WindowsSDKVersion%\\um\arch
D3d12.dll Bibliothèque d’API Direct3D 12 dynamique %WINDIR%\System32
D3d12SDKLayers.h En-tête de débogage Direct3D 12 %WindowsSdkDir\Include%WindowsSDKVersion%\\um
D3d12SDKLayers.dll Bibliothèque de débogage Dynamique Direct3D 12 %WINDIR%\System32

Langues prises en charge

C++ est le seul langage pris en charge pour le développement Direct3D 12, C# et d’autres langages .NET ne sont pas pris en charge.

Structures d’assistance

Il existe un certain nombre de structures d’assistance qui, en particulier, facilitent l’initialisation d’un certain nombre de structures D3D12. Ces structures et certaines fonctions utilitaires se trouvent dans l’en-tête D3dx12.h. Cet en-tête est open source et peut être modifié par un développeur en fonction des besoins : téléchargez-le à partir de La bibliothèque d’assistance D3D12 et reportez-vous à Structures et fonctions d’assistance pour D3D12.

Bibliothèque de gestion de la mémoire

Une bibliothèque d’assistance de gestion de la mémoire est disponible pour le téléchargement que vous pouvez intégrer à votre application pour qu’elle corresponde davantage au comportement de gestion de la mémoire D3D11. En tant que bibliothèque de gestion de style D3D11, elle est la plus efficace avec les applications qui utilisent toujours une ressource validée stratégie d’allocation de style. En particulier, la bibliothèque doit être considérée comme une pierre pas à pas qui vous permettra de revenir à la gestion performante de la mémoire D3D11 dans des scénarios de mémoire limités en mémoire (par exemple, cartes mémoire basse, 4k, paramètres Ultra, etc.). Les API D3D12 permettent des techniques qui vous permettent d’obtenir une meilleure efficacité de la mémoire sur D3D11, bien que ces techniques puissent être difficiles et fastidieuses à implémenter.

Notez que cette bibliothèque est un travail en cours et peut changer au fil du temps. Utilisez les liens ci-dessous pour accéder à la bibliothèque et aux exemples.

Outils et bibliothèques pris en charge

Les bibliothèques suivantes peuvent toutes être utilisées avec Direct3D 12.

Bibliothèque But Documentation
Kit d’outils DirectX pour DirectX 12 Collection importante de classes d’assistance pour l’écriture de code Direct3D 12 C++ pour les applications de plateforme Windows universelle (UWP), les applications de bureau Win32 pour Windows 10 et les applications exclusives Xbox One. wiki DirectX12TK
directXTex Utilisez-le pour lire et écrire des fichiers DDS et effectuer diverses opérations de traitement de contenu de texture, notamment le redimensionnement, la conversion de format, la génération de mip-map, la compression de bloc pour les ressources de texture du runtime Direct3D et la conversion de hauteur en mappage normal. wiki DirectXTex
directXMesh Utilisez-le pour effectuer différentes opérations de traitement de contenu géométrique, notamment la génération de trames normales et tangentes, les calculs dedjacency triangle et l’optimisation du cache de vertex. wiki DirectXMesh
DirectXMath Un grand nombre de classes d’assistance et de méthodes pour prendre en charge des vecteurs, des scalaires, des matrices, des quaternions et de nombreuses autres opérations mathématiques. documentation DirectXMath sur MSDN
UVAtlas Utilisez cette option pour créer et empaquetager un atlas de texture isochart. wiki UVAtlas

 

Échantillons

Pour obtenir la liste des exemples D3D12 de travail et comment les localiser et les exécuter, reportez-vous à Exemples de travail.

Pour obtenir des procédures pas à pas sur l’ajout de code pour activer des fonctionnalités particulières, reportez-vous à procédure pas à pas de code D3D12.

Couche de débogage

La couche de débogage fournit un paramètre supplémentaire et une validation de cohérence étendues (telles que la validation de la liaison de nuanceur et de la liaison de ressources, la validation de la cohérence des paramètres et la description des erreurs de création de rapports).

Note

Pour Windows 10, pour créer un appareil prenant en charge la couche de débogage, activez la fonctionnalité facultative « Outils graphiques ». Sur Windows 10 22H2, accédez au panneau Paramètres, sous Système. Sur les versions antérieures de Windows 10, accédez au panneau Paramètres, sous Applications > Applications & fonctionnalités. Accédez à Fonctionnalités facultatives > Ajouter une fonctionnalité, puis recherchez « Outils graphiques ».

L’en-tête requis pour prendre en charge la couche de débogage, D3D12SDKLayers.h, est inclus par défaut à partir de d3d12.h.

Lorsque la couche de débogage répertorie les fuites de mémoire, elle génère une liste de pointeurs d’interface objet ainsi que leurs noms conviviaux. Le nom convivial par défaut est «<>non nommé ». Vous pouvez définir le nom convivial à l’aide de la méthode ID3D12Object ::SetName. En règle générale, vous devez compiler ces appels hors de votre version de production.

Nous vous recommandons d’utiliser la couche de débogage pour déboguer vos applications pour vous assurer qu’elles sont propres aux erreurs et aux avertissements. La couche de débogage vous aide à écrire du code Direct3D 12. En outre, votre productivité peut augmenter lorsque vous utilisez la couche de débogage, car vous pouvez immédiatement voir les causes des erreurs de rendu obscures ou même des écrans noirs à leur source. La couche de débogage fournit des avertissements pour de nombreux problèmes. Par exemple:

  • Vous avez oublié de définir une texture, mais lisez-la dans votre nuanceur de pixels.
  • Profondeur de sortie, mais sans limite d’état de gabarit de profondeur.
  • Échec de la création de texture avec INVALIDARG.

Définissez le compilateur D3DCOMPILE_DEBUG pour indiquer au compilateur HLSL d’inclure des informations de débogage dans l’objet blob du nuanceur.

#define D3DCOMPILE_DEBUG 1

Pour plus d’informations sur toutes les interfaces et méthodes de débogage, reportez-vous à la référence de couche de débogage.

Pour plus d’informations sur l’utilisation de la couche de débogage, reportez-vous à Understanding the D3D12 Debug Layer.

Vidéos éducatives

Il existe plusieurs vidéos associées à Direct3D 12 et Windows 10 dans didacticiels vidéo d’apprentissage avancé DirectX, y compris des vidéos sur les outils de débogage graphique et la création de rapports de bogues graphiques.

Comprendre direct3D 12