D3D11_RESOURCE_MISC_FLAG-Enumeration (d3d11.h)

Identifiziert Optionen für Ressourcen.

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
} ;

Konstanten

 
D3D11_RESOURCE_MISC_GENERATE_MIPS
Wert: 0x1L
Aktiviert die MIP-Kartengenerierung mithilfe von ID3D11DeviceContext::GenerateMips für eine Texturressource. Die Ressource muss mit den Bindungsflags erstellt werden, die angeben, dass es sich bei der Ressource um ein Renderziel und eine Shaderressource handelt.
D3D11_RESOURCE_MISC_SHARED
Wert: 0x2L
Ermöglicht die gemeinsame Nutzung von Ressourcendaten zwischen zwei oder mehr Direct3D-Geräten. Die einzigen Ressourcen, die freigegeben werden können, sind 2D-Texturen ohne Mipmappen.


D3D11_RESOURCE_MISC_SHARED und D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX schließen sich gegenseitig aus.


WARP - und REF-Geräte unterstützen keine freigegebenen Ressourcen.
Wenn Sie versuchen, eine Ressource mit diesem Flag auf einem WARP- oder REF-Gerät zu erstellen, gibt die create-Methode einen E_OUTOFMEMORY Fehlercode zurück.


Hinweis Ab Windows 8 unterstützen WARP-Geräte vollständig freigegebene Ressourcen.

 

Hinweis Ab Windows 8 wird empfohlen, die Gemeinsame Nutzung von Ressourcendaten zwischen zwei oder mehr Direct3D-Geräten zu aktivieren, indem Sie stattdessen eine Kombination aus den flags D3D11_RESOURCE_MISC_SHARED_NTHANDLE und D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX verwenden.

 
D3D11_RESOURCE_MISC_TEXTURECUBE
Wert: 0x4L
Legt eine Ressource als Cubetextur fest, die aus einem Texture2DArray erstellt wird, das 6 Texturen enthält.
D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS
Wert: 0x10L
Ermöglicht die Instancing von GPU-generierten Inhalten.
D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS
Wert: 0x20L
Aktiviert eine Ressource als Byteadresspuffer.
D3D11_RESOURCE_MISC_BUFFER_STRUCTURED
Wert: 0x40L
Aktiviert eine Ressource als strukturierten Puffer.
D3D11_RESOURCE_MISC_RESOURCE_CLAMP
Wert: 0x80L
Aktiviert eine Ressource mit MIP-Kartenklammerung für die Verwendung mit ID3D11DeviceContext::SetResourceMinLOD.
D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX
Wert: 0x100L
Ermöglicht die Synchronisierung der Ressource mithilfe von IDXGIKeyedMutex::AcquireSync und
IDXGIKeyedMutex::ReleaseSync Apis.
Die folgenden Direct3D 11-Ressourcenerstellungs-APIs, die D3D11_RESOURCE_MISC_FLAG Parameter benötigen, wurden erweitert, um das neue Flag zu unterstützen.


Wenn Sie eine dieser Methoden mit dem D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX-Flags aufrufen, unterstützt die zurückgegebene Schnittstelle die IDXGIKeyedMutex-Schnittstelle . Sie können einen Zeiger auf die IDXGIKeyedMutex-Schnittstelle aus der Ressource abrufen, indem Sie IUnknown::QueryInterface verwenden. Die IDXGIKeyedMutex-Schnittstelle implementiert die IDXGIKeyedMutex::AcquireSync- und IDXGIKeyedMutex::ReleaseSync-APIs, um den Zugriff auf die Oberfläche zu synchronisieren. Das Gerät, das die Oberfläche erstellt, und jedes andere Gerät, das die Oberfläche mithilfe von OpenSharedResource öffnet, müssen IDXGIKeyedMutex::AcquireSync aufrufen, bevor sie Renderingbefehle für das Surface ausgeben. Wenn diese Geräte das Rendering abgeschlossen haben, müssen sie IDXGIKeyedMutex::ReleaseSync aufrufen.


D3D11_RESOURCE_MISC_SHARED und D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX schließen sich gegenseitig aus.


WARP - und REF-Geräte unterstützen keine freigegebenen Ressourcen.
Wenn Sie versuchen, eine Ressource mit diesem Flag auf einem WARP- oder REF-Gerät zu erstellen, gibt die create-Methode einen E_OUTOFMEMORY Fehlercode zurück.


Hinweis Ab Windows 8 unterstützen WARP-Geräte vollständig freigegebene Ressourcen.

 
D3D11_RESOURCE_MISC_GDI_COMPATIBLE
Wert: 0x200L
Aktiviert eine Ressource, die mit GDI kompatibel ist. Sie müssen das D3D11_RESOURCE_MISC_GDI_COMPATIBLE-Flag auf Oberflächen festlegen, die Sie mit GDI verwenden. Das Festlegen des D3D11_RESOURCE_MISC_GDI_COMPATIBLE-Flags ermöglicht das GDI-Rendering auf der Oberfläche über IDXGISurface1::GetDC.


Beachten Sie die folgenden Programmiertipps für die Verwendung D3D11_RESOURCE_MISC_GDI_COMPATIBLE, wenn Sie eine Textur erstellen oder diese Textur in einer Swapchain verwenden:


  • D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX und D3D11_RESOURCE_MISC_GDI_COMPATIBLE schließen sich gegenseitig aus. Verwenden Sie sie daher nicht zusammen.

  • D3D11_RESOURCE_MISC_RESOURCE_CLAMP und D3D11_RESOURCE_MISC_GDI_COMPATIBLE schließen sich gegenseitig aus. Verwenden Sie sie daher nicht zusammen.

  • Sie müssen die Textur als Renderziel für die Ausgabezusammenführungsstufe binden. Legen Sie beispielsweise das D3D11_BIND_RENDER_TARGET-Flag im BindFlags-Element der D3D11_TEXTURE2D_DESC-Struktur fest.

  • Sie müssen die maximale Anzahl von MIP-Kartenebenen auf 1 festlegen. Legen Sie beispielsweise das MipLevels-Element der D3D11_TEXTURE2D_DESC-Struktur auf 1 fest.

  • Sie müssen angeben, dass die Textur Lese- und Schreibzugriff durch die GPU erfordert. Legen Sie beispielsweise den Member Usage der D3D11_TEXTURE2D_DESC-Struktur auf D3D11_USAGE_DEFAULT fest.


  • Sie müssen das Texturformat auf einen der folgenden Typen festlegen.


    • DXGI_FORMAT_B8G8R8A8_UNORM

    • DXGI_FORMAT_B8G8R8A8_TYPELESS

    • DXGI_FORMAT_B8G8R8A8_UNORM_SRGB

    Legen Sie beispielsweise den Member Format der D3D11_TEXTURE2D_DESC-Struktur auf einen dieser Typen fest.

  • Sie können D3D11_RESOURCE_MISC_GDI_COMPATIBLE nicht mit Multisampling verwenden. Legen Sie daher das Count-Element der DXGI_SAMPLE_DESC-Struktur auf 1 fest. Legen Sie dann das SampleDesc-Element der D3D11_TEXTURE2D_DESC-Struktur auf diese DXGI_SAMPLE_DESC-Struktur fest.

D3D11_RESOURCE_MISC_SHARED_NTHANDLE
Wert: 0x800L
Legen Sie dieses Flag fest, um die Verwendung von NT HANDLE-Werten beim Erstellen einer freigegebenen Ressource zu aktivieren. Wenn Sie dieses Flag aktivieren, können Sie vorhandene HANDLE-Werte nicht mehr verwenden.

Der Wert gibt einen neuen freigegebenen Ressourcentyp an, der die Runtime angibt, NT HANDLE-Werte für die freigegebene Ressource zu verwenden. Die Runtime muss dann bestätigen, dass die freigegebene Ressource auf der gesamten Hardware auf der angegebenen Featureebene funktioniert.


Ohne diesen Flagsatz überprüft die Runtime freigegebene Ressourcenparameter (also Formate, Flags, Verwendung usw.) nicht streng. Wenn die Runtime freigegebene Ressourcenparameter nicht überprüft, ist das Verhalten eines Großteils der Direct3D-API möglicherweise nicht definiert und kann von Treiber zu Treiber variieren.

Direct3D 11 und früher: Dieser Wert wird erst in Direct3D 11.1 unterstützt.
D3D11_RESOURCE_MISC_RESTRICTED_CONTENT
Wert: 0x1000L
Legen Sie dieses Flag fest, um anzugeben, dass die Ressource geschützte Inhalte enthalten kann. Daher sollte das Betriebssystem die Ressource nur verwenden, wenn der Treiber und die Hardware den Schutz von Inhalten unterstützen. Wenn der Treiber und die Hardware den Inhaltsschutz nicht unterstützen und Sie versuchen, eine Ressource mit diesem Flag zu erstellen, schlägt die Ressourcenerstellung fehl.

Direct3D 11: Dieser Wert wird erst in Direct3D 11.1 unterstützt.
D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE
Wert: 0x2000L
Legen Sie dieses Flag fest, um anzugeben, dass das Betriebssystem den Zugriff auf die freigegebene Oberfläche einschränkt. Sie können dieses Flag zusammen mit dem D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER-Flag und nur verwenden, wenn Sie eine freigegebene Oberfläche erstellen. Der Prozess, der die freigegebene Ressource erstellt, kann die freigegebene Ressource immer öffnen.

Direct3D 11: Dieser Wert wird erst in Direct3D 11.1 unterstützt.
D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER
Wert: 0x4000L
Legen Sie dieses Flag fest, um anzugeben, dass der Treiber den Zugriff auf die freigegebene Oberfläche einschränkt. Sie können dieses Flag in Verbindung mit dem flag D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE und nur verwenden, wenn Sie eine freigegebene Oberfläche erstellen. Der Prozess, der die freigegebene Ressource erstellt, kann die freigegebene Ressource immer öffnen.

Direct3D 11: Dieser Wert wird erst in Direct3D 11.1 unterstützt.
D3D11_RESOURCE_MISC_GUARDED
Wert: 0x8000L
Legen Sie dieses Flag fest, um anzugeben, dass die Ressource geschützt ist. Eine solche Ressource wird von den APIs IDCompositionSurface::BeginDraw (DirectComposition) und ISurfaceImageSourceNative::BeginDraw (Windows-Runtime) zurückgegeben. Für diese APIs stellen Sie eine region of interest (ROI) auf einer Zu aktualisierenden Oberfläche bereit. Diese Oberfläche ist nicht mit mehreren Renderzielen (MRT) kompatibel.

Eine bewachte Ressource schränkt automatisch alle Schreibvorgänge auf die Region ein, die sich auf eine der vorherigen APIs bezieht. Darüber hinaus erzwingt die Ressource den Zugriff auf den ROI mit den folgenden Einschränkungen:


Direct3D 11: Dieser Wert wird erst in Direct3D 11.1 unterstützt.
D3D11_RESOURCE_MISC_TILE_POOL
Wert: 0x20000L
Legen Sie dieses Flag fest, um anzugeben, dass die Ressource ein Kachelpool ist.

Direct3D 11: Dieser Wert wird erst in Direct3D 11.2 unterstützt.
D3D11_RESOURCE_MISC_TILED
Wert: 0x40000L
Legen Sie dieses Flag fest, um anzugeben, dass es sich bei der Ressource um eine gekachelte Ressource handelt.

Direct3D 11: Dieser Wert wird erst in Direct3D 11.2 unterstützt.
D3D11_RESOURCE_MISC_HW_PROTECTED
Wert: 0x80000L
Legen Sie dieses Flag fest, um anzugeben, dass die Ressource so erstellt werden soll, dass sie durch die Hardware geschützt wird. Die Ressourcenerstellung schlägt fehl, wenn der Schutz von Hardwareinhalten nicht unterstützt wird.

Für dieses Flag gelten die folgenden Einschränkungen:


  • Dieses Flag kann nicht mit den folgenden D3D11_USAGE Werten verwendet werden:

    • D3D11_USAGE_DYNAMIC

    • D3D11_USAGE_STAGING



  • Dieses Flag kann nicht mit den folgenden D3D11_BIND_FLAG-Werten verwendet werden.

    • D3D11_BIND_VERTEX_BUFFER

    • D3D11_BIND_INDEX_BUFFER



  • Es können keine CPU-Zugriffsflags angegeben werden.


Hinweis  

Das Erstellen einer Textur mit diesem Flag garantiert nicht automatisch, dass der Hardwareschutz für die zugrunde liegende Zuordnung aktiviert wird. Für einige Implementierungen ist es erforderlich, dass die DRM-Komponenten zuerst initialisiert werden, bevor eine Garantie für den Schutz besteht.


 

Hinweis Dieser Enumerationswert wird ab Windows 10 unterstützt.
D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE
Ermöglicht der Ressource das Arbeiten mit dem Feature für anzeigebare Oberflächen . Sie müssen D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE in Kombination mit D3D11_RESOURCE_MISC_SHARED und D3D11_RESOURCE_MISC_SHARED_NTHANDLE verwenden.
D3D11_RESOURCE_MISC_SHARED_EXCLUSIVE_WRITER
TBD

Hinweise

Diese Enumeration wird in D3D11_BUFFER_DESC, D3D11_TEXTURE1D_DESC, D3D11_TEXTURE2D_DESC, D3D11_TEXTURE3D_DESC verwendet.

Diese Flags können durch bitweises OR kombiniert werden.

Die D3D11_RESOURCE_MISC_FLAG kann nicht verwendet werden, wenn Ressourcen mit D3D11_CPU_ACCESS Flags erstellt werden.

Anforderungen

Anforderung Wert
Header d3d11.h

Weitere Informationen

Ressourcenaufzählungen