Partager via


énumération D3D11_RESOURCE_MISC_FLAG (d3d11.h)

Identifie les options pour les ressources.

Syntax

typedef enum D3D11_RESOURCE_MISC_FLAG {
  D3D11_RESOURCE_MISC_GENERATE_MIPS = 0x1L,
  D3D11_RESOURCE_MISC_SHARED = 0x2L,
  D3D11_RESOURCE_MISC_TEXTURECUBE = 0x4L,
  D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS = 0x10L,
  D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS = 0x20L,
  D3D11_RESOURCE_MISC_BUFFER_STRUCTURED = 0x40L,
  D3D11_RESOURCE_MISC_RESOURCE_CLAMP = 0x80L,
  D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX = 0x100L,
  D3D11_RESOURCE_MISC_GDI_COMPATIBLE = 0x200L,
  D3D11_RESOURCE_MISC_SHARED_NTHANDLE = 0x800L,
  D3D11_RESOURCE_MISC_RESTRICTED_CONTENT = 0x1000L,
  D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE = 0x2000L,
  D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER = 0x4000L,
  D3D11_RESOURCE_MISC_GUARDED = 0x8000L,
  D3D11_RESOURCE_MISC_TILE_POOL = 0x20000L,
  D3D11_RESOURCE_MISC_TILED = 0x40000L,
  D3D11_RESOURCE_MISC_HW_PROTECTED = 0x80000L,
  D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE,
  D3D11_RESOURCE_MISC_SHARED_EXCLUSIVE_WRITER,
  D3D11_RESOURCE_MISC_NO_SHADER_ACCESS
} ;

Constantes

 
D3D11_RESOURCE_MISC_GENERATE_MIPS
Valeur : 0x1L
Active la génération de cartes MIP à l’aide d’ID3D11DeviceContext ::GenerateMips sur une ressource de texture. La ressource doit être créée avec les indicateurs de liaison qui spécifient que la ressource est une cible de rendu et une ressource de nuanceur.
D3D11_RESOURCE_MISC_SHARED
Valeur : 0x2L
Active le partage de données de ressources entre deux appareils Direct3D ou plus. Les seules ressources qui peuvent être partagées sont les textures 2D non-mipmapped.


D3D11_RESOURCE_MISC_SHARED et D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX s’excluent mutuellement.


Les appareils WARP et REF ne prennent pas en charge les ressources partagées.
Si vous essayez de créer une ressource avec cet indicateur sur un appareil WARP ou REF , la méthode create retourne un code d’erreur E_OUTOFMEMORY .


Note À compter de Windows 8, les appareils WARP prennent entièrement en charge les ressources partagées.

 

Note À partir de Windows 8, nous vous recommandons d’activer le partage de données de ressources entre deux appareils Direct3D ou plus à l’aide d’une combinaison des indicateurs D3D11_RESOURCE_MISC_SHARED_NTHANDLE et D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX à la place.

 
D3D11_RESOURCE_MISC_TEXTURECUBE
Valeur : 0x4L
Définit une ressource comme une texture de cube créée à partir d’une Texture2DArray qui contient 6 textures.
D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS
Valeur : 0x10L
Active l’instanciation du contenu généré par GPU.
D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS
Valeur : 0x20L
Active une ressource en tant que mémoire tampon d’adresse d’octets.
D3D11_RESOURCE_MISC_BUFFER_STRUCTURED
Valeur : 0x40L
Active une ressource en tant que mémoire tampon structurée.
D3D11_RESOURCE_MISC_RESOURCE_CLAMP
Valeur : 0x80L
Active une ressource avec le serrage de carte MIP pour une utilisation avec ID3D11DeviceContext ::SetResourceMinLOD.
D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX
Valeur : 0x100L
Permet la synchronisation de la ressource à l’aide de IDXGIKeyedMutex ::AcquireSync et
IDXGIKeyedMutex ::ReleaseSync Api.
Les API de création de ressources Direct3D 11 suivantes, qui prennent D3D11_RESOURCE_MISC_FLAG paramètres, ont été étendues pour prendre en charge le nouvel indicateur.


Si vous appelez l’une de ces méthodes avec l’indicateur D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX défini, l’interface retournée prend en charge l’interface IDXGIKeyedMutex . Vous pouvez récupérer un pointeur vers l’interface IDXGIKeyedMutex à partir de la ressource à l’aide de IUnknown ::QueryInterface. L’interface IDXGIKeyedMutex implémente les API IDXGIKeyedMutex ::AcquireSync et IDXGIKeyedMutex ::ReleaseSync pour synchroniser l’accès à la surface. L’appareil qui crée la surface, et tout autre appareil qui ouvre la surface à l’aide d’OpenSharedResource, doit appeler IDXGIKeyedMutex ::AcquireSync avant d’émettre des commandes de rendu sur la surface. Lorsque ces appareils ont terminé le rendu, ils doivent appeler IDXGIKeyedMutex ::ReleaseSync.


D3D11_RESOURCE_MISC_SHARED et D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX s’excluent mutuellement.


Les appareils WARP et REF ne prennent pas en charge les ressources partagées.
Si vous essayez de créer une ressource avec cet indicateur sur un appareil WARP ou REF , la méthode create retourne un code d’erreur E_OUTOFMEMORY .


Note À compter de Windows 8, les appareils WARP prennent entièrement en charge les ressources partagées.

 
D3D11_RESOURCE_MISC_GDI_COMPATIBLE
Valeur : 0x200L
Active une ressource compatible avec GDI. Vous devez définir l’indicateur D3D11_RESOURCE_MISC_GDI_COMPATIBLE sur les surfaces que vous utilisez avec GDI. La définition de l’indicateur D3D11_RESOURCE_MISC_GDI_COMPATIBLE permet le rendu GDI sur la surface via IDXGISurface1 ::GetDC.


Tenez compte des conseils de programmation suivants pour utiliser D3D11_RESOURCE_MISC_GDI_COMPATIBLE lorsque vous créez une texture ou utilisez cette texture dans une chaîne d’échange :


  • D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX et D3D11_RESOURCE_MISC_GDI_COMPATIBLE s’excluent mutuellement. Par conséquent, ne les utilisez pas ensemble.

  • D3D11_RESOURCE_MISC_RESOURCE_CLAMP et D3D11_RESOURCE_MISC_GDI_COMPATIBLE s’excluent mutuellement. Par conséquent, ne les utilisez pas ensemble.

  • Vous devez lier la texture en tant que cible de rendu pour l’étape sortie-fusion. Par exemple, définissez l’indicateur D3D11_BIND_RENDER_TARGET dans le membre BindFlags de la structure D3D11_TEXTURE2D_DESC .

  • Vous devez définir le nombre maximal de niveaux de mappage MIP sur 1. Par exemple, définissez le membre MipLevels de la structure D3D11_TEXTURE2D_DESC sur 1.

  • Vous devez spécifier que la texture nécessite un accès en lecture et en écriture par le GPU. Par exemple, définissez le membre Usage de la structure D3D11_TEXTURE2D_DESC sur D3D11_USAGE_DEFAULT.


  • Vous devez définir le format de texture sur l’un des types suivants.


    • DXGI_FORMAT_B8G8R8A8_UNORM

    • DXGI_FORMAT_B8G8R8A8_TYPELESS

    • DXGI_FORMAT_B8G8R8A8_UNORM_SRGB

    Par exemple, définissez le membre Format de la structure D3D11_TEXTURE2D_DESC sur l’un de ces types.

  • Vous ne pouvez pas utiliser D3D11_RESOURCE_MISC_GDI_COMPATIBLE avec multi-échantillonnage. Par conséquent, définissez le membre Count de la structure DXGI_SAMPLE_DESC sur 1. Ensuite, définissez le membre SampleDesc de la structure D3D11_TEXTURE2D_DESC sur cette structure DXGI_SAMPLE_DESC .

D3D11_RESOURCE_MISC_SHARED_NTHANDLE
Valeur : 0x800L
Définissez cet indicateur pour activer l’utilisation des valeurs NT HANDLE lorsque vous créez une ressource partagée. En activant cet indicateur, vous dépréciez l’utilisation de valeurs HANDLE existantes.

La valeur spécifie un nouveau type de ressource partagée qui indique au runtime d’utiliser des valeurs NT HANDLE pour la ressource partagée. Le runtime doit ensuite confirmer que la ressource partagée fonctionne sur tout le matériel au niveau de la fonctionnalité spécifiée.


Sans ce jeu d’indicateurs, le runtime ne valide pas strictement les paramètres de ressources partagées (c’est-à-dire les formats, les indicateurs, l’utilisation, etc.). Lorsque le runtime ne valide pas les paramètres de ressources partagées, le comportement d’une grande partie de l’API Direct3D peut ne pas être défini et peut varier d’un pilote à l’autre.

Direct3D 11 et versions antérieures : Cette valeur n’est pas prise en charge tant que Direct3D 11.1.
D3D11_RESOURCE_MISC_RESTRICTED_CONTENT
Valeur : 0x1000L
Définissez cet indicateur pour indiquer que la ressource peut contenir du contenu protégé ; par conséquent, le système d’exploitation doit utiliser la ressource uniquement lorsque le pilote et le matériel prennent en charge la protection du contenu. Si le pilote et le matériel ne prennent pas en charge la protection du contenu et que vous essayez de créer une ressource avec cet indicateur, la création de la ressource échoue.

Direct3D 11 : Cette valeur n’est pas prise en charge tant que Direct3D 11.1.
D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE
Valeur : 0x2000L
Définissez cet indicateur pour indiquer que le système d’exploitation restreint l’accès à la surface partagée. Vous pouvez utiliser cet indicateur avec l’indicateur D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER et uniquement lorsque vous créez une surface partagée. Le processus qui crée la ressource partagée peut toujours ouvrir la ressource partagée.

Direct3D 11 : Cette valeur n’est pas prise en charge tant que Direct3D 11.1.
D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER
Valeur : 0x4000L
Définissez cet indicateur pour indiquer que le pilote restreint l’accès à la surface partagée. Vous pouvez utiliser cet indicateur conjointement avec l’indicateur D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE et uniquement lorsque vous créez une surface partagée. Le processus qui crée la ressource partagée peut toujours ouvrir la ressource partagée.

Direct3D 11 : Cette valeur n’est pas prise en charge tant que Direct3D 11.1.
D3D11_RESOURCE_MISC_GUARDED
Valeur : 0x8000L
Définissez cet indicateur pour indiquer que la ressource est protégée. Cette ressource est retournée par les API IDCompositionSurface ::BeginDraw (DirectComposition) et ISurfaceImageSourceNative ::BeginDraw (Windows Runtime). Pour ces API, vous fournissez une région d’intérêt (ROI) sur une surface à mettre à jour. Cette surface n’est pas compatible avec plusieurs cibles de rendu (MRT).

Une ressource protégée limite automatiquement toutes les écritures dans la région liée à l’une des API précédentes. En outre, la ressource applique l’accès au retour sur investissement avec les restrictions suivantes :


Direct3D 11 : Cette valeur n’est pas prise en charge tant que Direct3D 11.1.
D3D11_RESOURCE_MISC_TILE_POOL
Valeur : 0x20000L
Définissez cet indicateur pour indiquer que la ressource est un pool de vignettes.

Direct3D 11 : Cette valeur n’est pas prise en charge tant que Direct3D 11.2.
D3D11_RESOURCE_MISC_TILED
Valeur : 0x40000L
Définissez cet indicateur pour indiquer que la ressource est une ressource en mosaïque.

Direct3D 11 : Cette valeur n’est pas prise en charge tant que Direct3D 11.2.
D3D11_RESOURCE_MISC_HW_PROTECTED
Valeur : 0x80000L
Définissez cet indicateur pour indiquer que la ressource doit être créée de telle sorte qu’elle soit protégée par le matériel. La création de ressources échoue si la protection du contenu matériel n’est pas prise en charge.

Cet indicateur présente les restrictions suivantes :


  • Cet indicateur ne peut pas être utilisé avec les valeurs D3D11_USAGE suivantes :

    • D3D11_USAGE_DYNAMIC

    • D3D11_USAGE_STAGING



  • Cet indicateur ne peut pas être utilisé avec les valeurs D3D11_BIND_FLAG suivantes.

    • D3D11_BIND_VERTEX_BUFFER

    • D3D11_BIND_INDEX_BUFFER



  • Aucun indicateur d’accès au processeur ne peut être spécifié.


Remarque  

La création d’une texture à l’aide de cet indicateur ne garantit pas automatiquement que la protection matérielle sera activée pour l’allocation sous-jacente. Certaines implémentations nécessitent que les composants DRM soient initialisés avant toute garantie de protection.


 

Note Cette valeur d’énumération est prise en charge à partir de Windows 10.
D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE
Permet à la ressource d’utiliser la fonctionnalité surfaces affichables . Vous devez utiliser D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE en combinaison avec D3D11_RESOURCE_MISC_SHARED et D3D11_RESOURCE_MISC_SHARED_NTHANDLE.
D3D11_RESOURCE_MISC_SHARED_EXCLUSIVE_WRITER
TBD

Remarques

Cette énumération est utilisée dans D3D11_BUFFER_DESC, D3D11_TEXTURE1D_DESC, D3D11_TEXTURE2D_DESCD3D11_TEXTURE3D_DESC.

Ces indicateurs peuvent être combinés par OR au niveau du bit.

Le D3D11_RESOURCE_MISC_FLAG ne peut pas être utilisé lors de la création de ressources avec des indicateurs D3D11_CPU_ACCESS .

Configuration requise

Condition requise Valeur
En-tête d3d11.h

Voir aussi

Énumérations de ressources