D3D11_CREATE_DEVICE_FLAG-Enumeration (d3d11.h)

Beschreibt Parameter, die zum Erstellen eines Geräts verwendet werden.

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

Konstanten

 
D3D11_CREATE_DEVICE_SINGLETHREADED
Wert: 0x1
Verwenden Sie dieses Flag, wenn Ihre Anwendung nur Methoden von Direct3D 11-Schnittstellen aus einem einzelnen Thread aufruft. Standardmäßig ist das ID3D11Device-Objektthreadsicher.
Mit diesem Flag können Sie die Leistung steigern. Wenn Sie jedoch dieses Flag verwenden und Ihre Anwendung Methoden von Direct3D 11-Schnittstellen aus mehreren Threads aufruft, kann es zu nicht definiertem Verhalten kommen.
D3D11_CREATE_DEVICE_DEBUG
Wert: 0x2
Erstellt ein Gerät, das die Debugebene unterstützt.

Um dieses Flag verwenden zu können, muss D3D11*SDKLayers.dll installiert sein. Andernfalls schlägt die Geräteerstellung fehl. Um D3D11_1SDKLayers.dll zu erhalten, installieren Sie das SDK für Windows 8.
D3D11_CREATE_DEVICE_SWITCH_TO_REF
Wert: 0x4
Hinweis Dieses Flag wird in Direct3D 11 nicht unterstützt.

 
D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS
Wert: 0x8
Verhindert, dass mehrere Threads erstellt werden. Wenn dieses Flag mit einem Windows Advanced Rasterization Platform (WARP) -Gerät verwendet wird, werden keine zusätzlichen Threads von WARP erstellt.
und die gesamte Rasterung erfolgt im aufrufenden Thread. Dieses Flag wird für die allgemeine Verwendung nicht empfohlen. Siehe Bemerkungen.
D3D11_CREATE_DEVICE_BGRA_SUPPORT
Wert: 0x20
Erstellt ein Gerät, das BGRA-Formate (DXGI_FORMAT_B8G8R8A8_UNORM und DXGI_FORMAT_B8G8R8A8_UNORM_SRGB) unterstützt. Alle Hardware mit 10Level9 und höher mit WDDM 1.1+ Treibern unterstützen BGRA-Formate.

Hinweis Erforderlich für Direct2D-Interoperabilität mit Direct3D-Ressourcen.

 
D3D11_CREATE_DEVICE_DEBUGGABLE
Wert: 0x40
Bewirkt, dass das Gerät und der Treiber Informationen speichern, die Sie für das Shaderdebuggen verwenden können. Die genauen Auswirkungen dieses Flags variieren von Treiber zu Treiber.

Um dieses Flag verwenden zu können, müssen Sie D3D11_1SDKLayers.dll installiert haben. Andernfalls schlägt die Geräteerstellung fehl. Das erstellte Gerät unterstützt die Debugebene. Um D3D11_1SDKLayers.dll zu erhalten, installieren Sie das SDK für Windows 8.

Wenn Sie dieses Flag verwenden und der aktuelle Treiber kein Shaderdebuggen unterstützt, schlägt die Geräteerstellung fehl. Shaderdebuggen erfordert einen Treiber, der in WDDM für Windows 8 (WDDM 1.2) implementiert ist.

Direct3D 11: Dieser Wert wird erst in Direct3D 11.1 unterstützt.
D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY
Wert: 0x80
Bewirkt, dass die Direct3D-Runtime Registrierungseinstellungen ignoriert, die die Debugebene aktivieren. Sie können die Debugebene mithilfe der DirectX-Systemsteuerung aktivieren, die als Teil des DirectX SDK enthalten war. Die letzte Version des DirectX SDK wurde im Juni 2010 ausgeliefert. Sie können es aus dem Microsoft Download Center herunterladen. Sie können dieses Flag in Ihrer App festlegen, in der Regel nur in Releasebuilds, um zu verhindern, dass Endbenutzer die DirectX-Systemsteuerung verwenden, um zu überwachen, wie die App Direct3D verwendet.

Hinweis Sie können dieses Flag auch in Ihrer App festlegen, um zu verhindern, dass Direct3D-Debugtools, z. B. Visual Studio Ultimate 2012, Ihre App einbinden.

 

Windows 8.1: Dieses Flag verhindert nicht, dass Visual Studio 2013 und höher auf Windows 8.1 und höher ausgeführt wird. Verwenden Sie stattdessen ID3D11DeviceContext2::IsAnnotationEnabled. Dieses Flag verhindert weiterhin, dass Visual Studio 2013 und später, die auf Windows 8 und früher ausgeführt werden, Ihre App einbinden.

Direct3D 11: Dieser Wert wird erst in Direct3D 11.1 unterstützt.
D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT
Wert: 0x100
Verwenden Sie dieses Flag, wenn das Gerät GPU-Workloads erzeugt, die mehr als zwei Sekunden in Anspruch nehmen und sie vom Betriebssystem erfolgreich abgeschlossen werden können. Wenn dieses Flag nicht festgelegt ist, führt das Betriebssystem timeouterkennung und -wiederherstellung durch, wenn es ein GPU-Paket erkennt, dessen Ausführung mehr als zwei Sekunden dauerte. Wenn dieses Flag festgelegt ist, lässt das Betriebssystem die Ausführung eines solchen Pakets mit langer Ausführung zu, ohne dass die GPU zurückgesetzt wird. Es wird empfohlen, dieses Flag nicht festzulegen, wenn Ihr Gerät sehr reaktionsfähig sein muss, damit das Betriebssystem GPU-Timeouts erkennen und wiederherstellen kann. Es wird empfohlen, dieses Flag festzulegen, wenn Ihr Gerät zeitaufwändige Hintergrundaufgaben wie Compute, Bilderkennung und Videocodierung ausführen muss, damit diese Aufgaben erfolgreich abgeschlossen werden können.

Direct3D 11: Dieser Wert wird erst in Direct3D 11.1 unterstützt.
D3D11_CREATE_DEVICE_VIDEO_SUPPORT
Wert: 0x800
Erzwingt, dass die Erstellung des Direct3D-Geräts fehlschlägt, wenn der Anzeigetreiber nicht in wddM for Windows 8 (WDDM 1.2) implementiert ist. Wenn der Anzeigetreiber nicht in WDDM 1.2 implementiert ist, unterstützt nur ein Direct3D-Gerät, das mit der Featureebene 9.1, 9.2 oder 9.3 erstellt wird, Video. Wenn dieses Flag festgelegt ist, erstellt die Runtime das Direct3D-Gerät daher nur für die Featureebene 9.1, 9.2 oder 9.3. Es wird empfohlen, dieses Flag nicht für Anwendungen anzugeben, die direct3D-Funktionen gegenüber Video bevorzugen möchten. Wenn Featureebene 10 und höher verfügbar ist, verwendet die Runtime diese Featureebene unabhängig von der Videounterstützung.

Wenn dieses Flag festgelegt ist, ist die Geräteerstellung auf dem Basic Render Device (BRD) unabhängig von der fehlenden Unterstützung der BRD für die Videocodierung erfolgreich. Dies liegt daran, dass der Media Foundation-Videostapel im Softwaremodus auf BRD ausgeführt wird. Wenn Sie in dieser Situation erzwingen, dass der Videostapel das Direct3D-Gerät zweimal erstellt (erstellen Sie das Gerät einmal mit diesem Flag, entdecken Sie als nächstes BRD und dann erneut das Gerät ohne das Flag), beeinträchtigen Sie tatsächlich die Leistung.

Wenn Sie versuchen, ein Direct3D-Gerät mit dem Treibertyp D3D_DRIVER_TYPE_NULL, D3D_DRIVER_TYPE_REFERENCE oder D3D_DRIVER_TYPE_SOFTWARE zu erstellen, schlägt die Geräteerstellung auf beliebiger Featureebene fehl, da keiner der zugeordneten Treiber Videofunktionen bereitstellt. Wenn Sie versuchen, ein Direct3D-Gerät mit dem Treibertyp D3D_DRIVER_TYPE_WARP zu erstellen, ist die Geräteerstellung erfolgreich, um ein Softwarefallback für Video zuzulassen.

Direct3D 11: Dieser Wert wird erst in Direct3D 11.1 unterstützt.

Hinweise

Geräteerstellungsflags werden von D3D11CreateDevice und D3D11CreateDeviceAndSwapChain verwendet.

Eine Anwendung kann dynamisch Threads erstellen (und zerstören), um die Leistung zu verbessern, insbesondere auf einem Computer mit mehreren CPU-Kernen. Es kann jedoch vorkommen, dass eine Anwendung verhindern muss, dass zusätzliche Threads erstellt werden. Dies kann passieren, wenn Sie das Debuggen vereinfachen, Code profilieren oder ein Tool für instance entwickeln möchten. Verwenden Sie in diesen Fällen D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS , um anzufordern, dass die Laufzeit und der Videotreiber keine zusätzlichen Threads erstellen, die die Anwendung beeinträchtigen könnten.

Anforderungen

Anforderung Wert
Header d3d11.h

Weitere Informationen

Kernaufzählungen