enumerazione D3D11_CREATE_DEVICE_FLAG (d3d11.h)

Descrive i parametri usati per creare un dispositivo.

Sintassi

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

Costanti

 
D3D11_CREATE_DEVICE_SINGLETHREADED
Valore: 0x1
Usare questo flag se l'applicazione chiamerà solo i metodi delle interfacce Direct3D 11 da un singolo thread. Per impostazione predefinita, l'oggetto ID3D11Device è thread-safe.
Usando questo flag, è possibile aumentare le prestazioni. Tuttavia, se si usa questo flag e l'applicazione chiama metodi di interfacce Direct3D 11 da più thread, il comportamento non definito potrebbe risultare.
D3D11_CREATE_DEVICE_DEBUG
Valore: 0x2
Crea un dispositivo che supporta il livello di debug.

Per usare questo flag, è necessario che D3D11*SDKLayers.dll installato; in caso contrario, la creazione del dispositivo non riesce. Per ottenere D3D11_1SDKLayers.dll, installare l'SDK per Windows 8.
D3D11_CREATE_DEVICE_SWITCH_TO_REF
Valore: 0x4
Nota Questo flag non è supportato in Direct3D 11.

 
D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS
Valore: 0x8
Impedisce la creazione di più thread. Quando questo flag viene usato con un dispositivo WINDOWS Advanced Rasterization Platform (WARP), nessun thread aggiuntivo verrà creato da WARP
e tutte le rasterizzazioni si verificheranno nel thread chiamante. Questo flag non è consigliato per l'uso generale. Vedere la sezione Osservazioni.
D3D11_CREATE_DEVICE_BGRA_SUPPORT
Valore: 0x20
Crea un dispositivo che supporta i formati BGRA (DXGI_FORMAT_B8G8R8A8_UNORM e DXGI_FORMAT_B8G8R8A8_UNORM_SRGB). Tutti i componenti hardware 10level9 e versioni successive con i driver WDDM 1.1+ supportano i formati BGRA.

Nota Obbligatorio per l'interoperabilità Direct2D con le risorse Direct3D.

 
D3D11_CREATE_DEVICE_DEBUGGABLE
Valore: 0x40
Fa sì che il dispositivo e il driver mantengano le informazioni che è possibile usare per il debug dello shader. L'impatto esatto di questo flag varia da driver a driver.

Per usare questo flag, è necessario aver installato D3D11_1SDKLayers.dll; in caso contrario, la creazione del dispositivo non riesce. Il dispositivo creato supporta il livello di debug. Per ottenere D3D11_1SDKLayers.dll, installare l'SDK per Windows 8.

Se si usa questo flag e il driver corrente non supporta il debug dello shader, la creazione del dispositivo ha esito negativo. Il debug dello shader richiede un driver implementato in WDDM per Windows 8 (WDDM 1.2).

Direct3D 11: Questo valore non è supportato fino a Direct3D 11.1.
D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY
Valore: 0x80
Fa sì che il runtime Direct3D ignori le impostazioni del Registro di sistema che attivano il livello di debug. È possibile attivare il livello di debug usando il Pannello di controllo DirectX incluso come parte di DirectX SDK. Abbiamo fornito l'ultima versione di DirectX SDK nel giugno 2010; è possibile scaricarlo dall'Area download Microsoft. Puoi impostare questo flag nella tua app, in genere solo nelle build di versione, per impedire agli utenti finali di usare il Pannello di controllo DirectX per monitorare il modo in cui l'app usa Direct3D.

Nota Puoi anche impostare questo flag nella tua app per impedire agli strumenti di debug Direct3D, ad esempio Visual Studio Ultimate 2012, di associare l'app.

 

Windows 8.1: questo flag non impedisce Visual Studio 2013 e versioni successive in esecuzione su Windows 8.1 e versioni successive di associare l'app; usare invece ID3D11DeviceContext2::IsAnnotationEnabled. Questo flag impedisce ancora Visual Studio 2013 e versioni successive in esecuzione su Windows 8 e versioni precedenti di associare l'app.

Direct3D 11: Questo valore non è supportato fino a Direct3D 11.1.
D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT
Valore: 0x100
Usare questo flag se il dispositivo produrrà carichi di lavoro GPU che richiedono più di due secondi per il completamento e si vuole che il sistema operativo consenta il completamento corretto. Se questo flag non è impostato, il sistema operativo esegue il rilevamento e il ripristino del timeout quando rileva un pacchetto GPU che ha richiesto più di due secondi per l'esecuzione. Se questo flag è impostato, il sistema operativo consente l'esecuzione di un pacchetto a esecuzione prolungata senza reimpostare la GPU. È consigliabile non impostare questo flag se il dispositivo deve essere altamente reattivo in modo che il sistema operativo possa rilevare e recuperare da timeout GPU. È consigliabile impostare questo flag se il dispositivo deve eseguire attività in background dispendiose in termini di tempo, ad esempio calcolo, riconoscimento delle immagini e codifica video per consentire il corretto completamento di tali attività.

Direct3D 11: Questo valore non è supportato fino a Direct3D 11.1.
D3D11_CREATE_DEVICE_VIDEO_SUPPORT
Valore: 0x800
Forza l'esito negativo della creazione del dispositivo Direct3D se il driver di visualizzazione non è implementato in WDDM per Windows 8 (WDDM 1.2). Quando il driver di visualizzazione non viene implementato in WDDM 1.2, solo un dispositivo Direct3D creato con il livello di funzionalità 9.1, 9.2 o 9.3 supporta video; pertanto, se questo flag è impostato, il runtime crea il dispositivo Direct3D solo per il livello di funzionalità 9.1, 9.2 o 9.3. È consigliabile non specificare questo flag per le applicazioni che vogliono favorire la funzionalità Direct3D su video. Se è disponibile il livello di funzionalità 10 e superiore, il runtime userà tale livello di funzionalità indipendentemente dal supporto video.

Se questo flag è impostato, la creazione del dispositivo nel dispositivo di rendering di base (BRD) avrà esito positivo indipendentemente dal supporto mancante del BRD per la decodifica video. Ciò è dovuto al fatto che lo stack video di Media Foundation opera in modalità software su BRD. In questo caso, se si forza lo stack di video a creare il dispositivo Direct3D due volte (creare il dispositivo una volta con questo flag, individuare BRD, quindi creare di nuovo il dispositivo senza il flag), si riducono effettivamente le prestazioni.

Se si tenta di creare un dispositivo Direct3D con tipo di driver D3D_DRIVER_TYPE_NULL, D3D_DRIVER_TYPE_REFERENCE o D3D_DRIVER_TYPE_SOFTWARE, la creazione del dispositivo ha esito negativo a qualsiasi livello di funzionalità perché nessuno dei driver associati fornisce funzionalità video. Se si tenta di creare un dispositivo Direct3D con tipo di driver D3D_DRIVER_TYPE_WARP, la creazione del dispositivo riesce a consentire il fallback software per il video.

Direct3D 11: Questo valore non è supportato fino a Direct3D 11.1.

Commenti

I flag di creazione del dispositivo vengono usati da D3D11CreateDevice e D3D11CreateDeviceAndSwapChain.

Un'applicazione potrebbe creare (ed eliminare) dinamicamente thread per migliorare le prestazioni soprattutto in un computer con più core CPU. Possono tuttavia verificarsi casi in cui un'applicazione deve impedire la creazione di thread aggiuntivi. Ciò può verificarsi quando si vuole semplificare il debug, il codice del profilo o sviluppare uno strumento, ad esempio. Per questi casi, usare D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS per richiedere che il runtime e il driver video non creino thread aggiuntivi che potrebbero interferire con l'applicazione.

Requisiti

Requisito Valore
Intestazione d3d11.h

Vedi anche

Enumerazioni principali