énumération D3D11_CREATE_DEVICE_FLAG (d3d11.h)
Décrit les paramètres utilisés pour créer un appareil.
Syntax
typedef enum D3D11_CREATE_DEVICE_FLAG {
D3D11_CREATE_DEVICE_SINGLETHREADED = 0x1,
D3D11_CREATE_DEVICE_DEBUG = 0x2,
D3D11_CREATE_DEVICE_SWITCH_TO_REF = 0x4,
D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8,
D3D11_CREATE_DEVICE_BGRA_SUPPORT = 0x20,
D3D11_CREATE_DEVICE_DEBUGGABLE = 0x40,
D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 0x80,
D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT = 0x100,
D3D11_CREATE_DEVICE_VIDEO_SUPPORT = 0x800
} ;
Constantes
D3D11_CREATE_DEVICE_SINGLETHREADED Valeur : 0x1 Utilisez cet indicateur si votre application appelle uniquement les méthodes des interfaces Direct3D 11 à partir d’un seul thread. Par défaut, l’objet ID3D11Device est thread-safe. En utilisant cet indicateur, vous pouvez augmenter les performances. Toutefois, si vous utilisez cet indicateur et que votre application appelle des méthodes d’interfaces Direct3D 11 à partir de plusieurs threads, un comportement non défini peut en résulter. |
D3D11_CREATE_DEVICE_DEBUG Valeur : 0x2 Crée un appareil qui prend en charge la couche de débogage. Pour utiliser cet indicateur, vous devez avoir installé D3D11*SDKLayers.dll ; sinon, la création de l’appareil échoue. Pour obtenir D3D11_1SDKLayers.dll, installez le Kit de développement logiciel (SDK) pour Windows 8. |
D3D11_CREATE_DEVICE_SWITCH_TO_REF Valeur : 0x4 Note Cet indicateur n’est pas pris en charge dans Direct3D 11. |
D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS Valeur : 0x8 Empêche la création de plusieurs threads. Lorsque cet indicateur est utilisé avec un appareil WARP (Advanced Rasterization Platform) Windows , aucun thread supplémentaire n’est créé par WARP et toute la rastérisation se produit sur le thread appelant. Cet indicateur n’est pas recommandé pour une utilisation générale. Consultez la section Remarques. |
D3D11_CREATE_DEVICE_BGRA_SUPPORT Valeur : 0x20 Crée un appareil qui prend en charge les formats BGRA (DXGI_FORMAT_B8G8R8A8_UNORM et DXGI_FORMAT_B8G8R8A8_UNORM_SRGB). Tous les matériels 10level9 et versions ultérieures avec les pilotes WDDM 1.1+ prennent en charge les formats BGRA. Note Obligatoire pour l’interopérabilité Direct2D avec les ressources Direct3D. |
D3D11_CREATE_DEVICE_DEBUGGABLE Valeur : 0x40 Permet au périphérique et au pilote de conserver les informations que vous pouvez utiliser pour le débogage du nuanceur. L’impact exact de cet indicateur varie d’un pilote à l’autre. Pour utiliser cet indicateur, vous devez avoir installé D3D11_1SDKLayers.dll ; sinon, la création de l’appareil échoue. L’appareil créé prend en charge la couche de débogage. Pour obtenir D3D11_1SDKLayers.dll, installez le Kit de développement logiciel (SDK) pour Windows 8. Si vous utilisez cet indicateur et que le pilote actuel ne prend pas en charge le débogage du nuanceur, la création de l’appareil échoue. Le débogage du nuanceur nécessite un pilote implémenté dans WDDM pour Windows 8 (WDDM 1.2). Direct3D 11 : Cette valeur n’est pas prise en charge tant que Direct3D 11.1. |
D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY Valeur : 0x80 Le runtime Direct3D ignore les paramètres du Registre qui activent la couche de débogage. Vous pouvez activer la couche de débogage à l’aide du Panneau de configuration DirectX inclus dans le kit de développement logiciel (SDK) DirectX. Nous avons livré la dernière version du Kit de développement logiciel (SDK) DirectX en juin 2010 ; vous pouvez le télécharger à partir du Centre de téléchargement Microsoft. Vous pouvez définir cet indicateur dans votre application, généralement dans les versions en version uniquement, pour empêcher les utilisateurs finaux d’utiliser le Panneau de configuration DirectX pour surveiller la façon dont l’application utilise Direct3D. Note Vous pouvez également définir cet indicateur dans votre application pour empêcher les outils de débogage Direct3D, tels que Visual Studio Ultimate 2012, de crocheter votre application. Windows 8.1 : cet indicateur n’empêche pas Visual Studio 2013 et les versions ultérieures en cours d’exécution sur Windows 8.1 et versions ultérieures de raccorder votre application ; utilisez plutôt ID3D11DeviceContext2 ::IsAnnotationEnabled. Cet indicateur empêche toujours Visual Studio 2013 et les versions ultérieures s’exécutant sur Windows 8 et les versions antérieures de crocheter votre application. Direct3D 11 : Cette valeur n’est pas prise en charge tant que Direct3D 11.1. |
D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT Valeur : 0x100 Utilisez cet indicateur si l’appareil produit des charges de travail GPU qui prennent plus de deux secondes et que vous souhaitez que le système d’exploitation les autorise à se terminer correctement. Si cet indicateur n’est pas défini, le système d’exploitation effectue la détection et la récupération du délai d’attente lorsqu’il détecte un paquet GPU dont l’exécution a pris plus de deux secondes. Si cet indicateur est défini, le système d’exploitation autorise l’exécution d’un paquet de longue durée sans réinitialiser le GPU. Nous vous recommandons de ne pas définir cet indicateur si votre appareil doit être très réactif afin que le système d’exploitation puisse détecter et récupérer les délais d’expiration du GPU. Nous vous recommandons de définir cet indicateur si votre appareil doit effectuer des tâches en arrière-plan fastidieuses telles que le calcul, la reconnaissance d’images et l’encodage vidéo pour permettre à ces tâches de se terminer correctement. Direct3D 11 : Cette valeur n’est pas prise en charge tant que Direct3D 11.1. |
D3D11_CREATE_DEVICE_VIDEO_SUPPORT Valeur : 0x800 Force la création du périphérique Direct3D à échouer si le pilote d’affichage n’est pas implémenté dans WDDM pour Windows 8 (WDDM 1.2). Lorsque le pilote d’affichage n’est pas implémenté dans WDDM 1.2, seul un appareil Direct3D créé avec le niveau de fonctionnalité 9.1, 9.2 ou 9.3 prend en charge la vidéo ; par conséquent, si cet indicateur est défini, le runtime crée l’appareil Direct3D uniquement pour les niveaux de fonctionnalité 9.1, 9.2 ou 9.3. Nous vous recommandons de ne pas spécifier cet indicateur pour les applications qui souhaitent privilégier la fonctionnalité Direct3D par rapport à la vidéo. Si le niveau de fonctionnalité 10 et supérieur est disponible, le runtime utilise ce niveau de fonctionnalité, quelle que soit la prise en charge vidéo. Si cet indicateur est défini, la création de l’appareil sur le périphérique de rendu de base (BRD) réussit, quelle que soit la prise en charge manquante du BRD pour le décodage vidéo. En effet, la pile vidéo Media Foundation fonctionne en mode logiciel sur BRD. Dans ce cas, si vous forcez la pile vidéo à créer l’appareil Direct3D deux fois (créez l’appareil une fois avec cet indicateur, ensuite découvrez BRD, puis créez à nouveau l’appareil sans l’indicateur), vous dégradez les performances. Si vous tentez de créer un appareil Direct3D avec un type de pilote D3D_DRIVER_TYPE_NULL, D3D_DRIVER_TYPE_REFERENCE ou D3D_DRIVER_TYPE_SOFTWARE, la création d’appareil échoue à n’importe quel niveau de fonctionnalité , car aucun des pilotes associés n’offre de fonctionnalité vidéo. Si vous tentez de créer un appareil Direct3D avec le type de pilote D3D_DRIVER_TYPE_WARP, la création d’appareil réussit à autoriser le secours logiciel pour la vidéo. Direct3D 11 : Cette valeur n’est pas prise en charge tant que Direct3D 11.1. |
Remarques
Les indicateurs de création d’appareil sont utilisés par D3D11CreateDevice et D3D11CreateDeviceAndSwapChain.
Une application peut créer dynamiquement (et détruire) des threads pour améliorer les performances, en particulier sur une machine avec plusieurs cœurs d’UC. Toutefois, il peut arriver qu’une application ait besoin d’empêcher la création de threads supplémentaires. Cela peut se produire lorsque vous souhaitez simplifier le débogage, profiler le code ou développer un outil pour instance. Dans ce cas, utilisez D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS pour demander que le runtime et le pilote vidéo ne créent pas de threads supplémentaires susceptibles d’interférer avec l’application.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | d3d11.h |