Couches logicielles
Le runtime Direct3D 11 est construit avec des couches, en commençant par les fonctionnalités de base au cœur et en créant des fonctionnalités facultatives et d’assistance aux développeurs dans les couches externes. Cette section décrit les fonctionnalités de chaque couche.
En règle générale, les couches ajoutent des fonctionnalités, mais ne modifient pas le comportement existant. Par exemple, les fonctions principales auront les mêmes valeurs de retour indépendamment de la couche de débogage instanciée, bien qu’une sortie de débogage supplémentaire puisse être fournie si la couche de débogage est instanciée.
Pour créer des couches lors de la création d’un appareil, appelez D3D11CreateDevice ou D3D11CreateDeviceAndSwapChain et fournissez une ou plusieurs valeurs D3D11_CREATE_DEVICE_FLAG .
Direct3D 11 fournit les couches d’exécution suivantes :
Couche principale
La couche principale existe par défaut ; fournir un mappage très fin entre l’API et le pilote de périphérique, ce qui réduit la surcharge pour les appels à haute fréquence. Étant donné que la couche principale est essentielle pour les performances, elle effectue uniquement une validation critique. Les couches restantes sont facultatives.
Couche de débogage
La couche de débogage fournit une validation supplémentaire étendue des paramètres et de la cohérence (par exemple, la validation de la liaison de nuanceur et de la liaison de ressources, la validation de la cohérence des paramètres et la création de descriptions d’erreurs).
Pour créer un appareil qui prend en charge la couche de débogage, vous devez installer le Kit de développement logiciel (SDK) DirectX (pour obtenir D3D11SDKLayers.dll), puis spécifier l’indicateur D3D11_CREATE_DEVICE_DEBUG lors de l’appel de la fonction D3D11CreateDevice ou de la fonction D3D11CreateDeviceAndSwapChain . Si vous exécutez votre application avec la couche de débogage activée, l’application sera sensiblement plus lente. Toutefois, pour vous assurer que votre application est propre d’erreurs et d’avertissements avant de l’expédier, utilisez la couche de débogage. Pour plus d’informations, consultez Utilisation de la couche de débogage pour déboguer des applications.
Notes
Pour Windows 7 avec mise à jour de plateforme pour Windows 7 (KB2670838) ou Windows 8.x, pour créer un appareil qui prend en charge la couche de débogage, installez le Kit de développement logiciel (SDK) Windows pour Windows 8.x afin d’obtenir D3D11_1SDKLayers.dll.
Notes
Pour Windows 10, pour créer un appareil qui prend en charge la couche de débogage, activez la fonctionnalité facultative « Outils graphiques ». Accédez au panneau Paramètres, sous Système, Fonctionnalités des applications & , Gérer les fonctionnalités facultatives, Ajouter une fonctionnalité, puis recherchez « Outils graphiques ».
Notes
Pour plus d’informations sur le débogage d’applications DirectX à distance, consultez Débogage d’applications DirectX à distance.
Vous pouvez également activer/désactiver l’indicateur de débogage à l’aide du Panneau de configuration DirectX inclus dans le kit de développement logiciel (SDK) DirectX.
Lorsque la couche de débogage répertorie les fuites de mémoire, elle génère une liste de pointeurs d’interface objet avec leurs noms conviviaux. Le nom convivial par défaut est «< sans nom> ». Vous pouvez définir le nom convivial à l’aide de la méthode ID3D11DeviceChild::SetPrivateData et du GUID WKPDID_D3DDebugObjectName qui se trouve dans D3Dcommon.h. Par exemple, pour nommer pTexture avec un nom SDKLayer de mytexture.jpg, utilisez le code suivant :
const char c_szName[] = "mytexture.jpg";
pTexture->SetPrivateData( WKPDID_D3DDebugObjectName, sizeof( c_szName ) - 1, c_szName );
En règle générale, vous devez compiler ces appels à partir de votre version de production.
Rubriques connexes