enumeración D3D11_CREATE_DEVICE_FLAG (d3d11.h)

Describe los parámetros que se usan para crear un dispositivo.

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
Valor: 0x1
Use esta marca si la aplicación solo llamará a métodos de interfaces de Direct3D 11 desde un único subproceso. De forma predeterminada, el objeto ID3D11Device es seguro para subprocesos.
Con esta marca, puede aumentar el rendimiento. Sin embargo, si usa esta marca y la aplicación llama a métodos de interfaces de Direct3D 11 desde varios subprocesos, podría producirse un comportamiento indefinido.
D3D11_CREATE_DEVICE_DEBUG
Valor: 0x2
Crea un dispositivo que admite la capa de depuración.

Para usar esta marca, debe tener instalado D3D11*SDKLayers.dll; de lo contrario, se produce un error en la creación del dispositivo. Para obtener D3D11_1SDKLayers.dll, instale el SDK para Windows 8.
D3D11_CREATE_DEVICE_SWITCH_TO_REF
Valor: 0x4
Nota Esta marca no se admite en Direct3D 11.

 
D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS
Valor: 0x8
Impide que se creen varios subprocesos. Cuando se usa esta marca con un dispositivo windows Advanced Rasterization Platform (WARP), WARP no creará ningún subproceso adicional.
y toda la rasterización se producirá en el subproceso que llama. Esta marca no se recomienda para uso general. Vea Notas.
D3D11_CREATE_DEVICE_BGRA_SUPPORT
Valor: 0x20
Crea un dispositivo que admite formatos BGRA (DXGI_FORMAT_B8G8R8A8_UNORM y DXGI_FORMAT_B8G8R8A8_UNORM_SRGB). Todos los controladores de 10level9 y versiones posteriores con controladores WDDM 1.1+ admiten formatos BGRA.

Nota Se requiere para la interoperabilidad de Direct2D con recursos de Direct3D.

 
D3D11_CREATE_DEVICE_DEBUGGABLE
Valor: 0x40
Hace que el dispositivo y el controlador conserven la información que puede usar para la depuración del sombreador. El impacto exacto de esta marca variará de controlador a controlador.

Para usar esta marca, debe tener D3D11_1SDKLayers.dll instalado; de lo contrario, se produce un error en la creación del dispositivo. El dispositivo creado admite la capa de depuración. Para obtener D3D11_1SDKLayers.dll, instale el SDK para Windows 8.

Si usa esta marca y el controlador actual no admite la depuración del sombreador, se produce un error en la creación de dispositivos. La depuración del sombreador requiere un controlador que se implementa en WDDM para Windows 8 (WDDM 1.2).

Direct3D 11: Este valor no se admite hasta Direct3D 11.1.
D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY
Valor: 0x80
Hace que el entorno de ejecución de Direct3D omita la configuración del Registro que activa la capa de depuración. Puede activar la capa de depuración mediante el Panel de control directX que se incluyó como parte del SDK de DirectX. Hemos enviado la última versión del SDK de DirectX en junio de 2010; Puede descargarlo desde el Centro de descarga de Microsoft. Puedes establecer esta marca en la aplicación, normalmente solo en compilaciones de versión, para evitar que los usuarios finales usen el Panel de control directX para supervisar cómo usa Direct3D la aplicación.

Nota También puedes establecer esta marca en la aplicación para evitar que las herramientas de depuración de Direct3D, como Visual Studio Ultimate 2012, enlacen la aplicación.

 

Windows 8.1: esta marca no impide que Visual Studio 2013 y versiones posteriores se ejecuten en Windows 8.1 y versiones posteriores para enlazar la aplicación; en su lugar, use ID3D11DeviceContext2::IsAnnotationEnabled. Esta marca sigue evitando que Visual Studio 2013 y versiones posteriores se ejecuten en Windows 8 y versiones anteriores al enlazar la aplicación.

Direct3D 11: Este valor no se admite hasta Direct3D 11.1.
D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT
Valor: 0x100
Use esta marca si el dispositivo generará cargas de trabajo de GPU que tardan más de dos segundos en completarse y desea que el sistema operativo pueda finalizar correctamente. Si no se establece esta marca, el sistema operativo realiza la detección y recuperación del tiempo de espera cuando detecta un paquete de GPU que tardó más de dos segundos en ejecutarse. Si se establece esta marca, el sistema operativo permite que un paquete de larga duración se ejecute sin restablecer la GPU. Se recomienda no establecer esta marca si el dispositivo debe tener una gran capacidad de respuesta para que el sistema operativo pueda detectar y recuperarse de tiempos de espera de GPU. Se recomienda establecer esta marca si el dispositivo necesita realizar tareas en segundo plano que requieren mucho tiempo, como proceso, reconocimiento de imágenes y codificación de vídeo para permitir que estas tareas finalicen correctamente.

Direct3D 11: Este valor no se admite hasta Direct3D 11.1.
D3D11_CREATE_DEVICE_VIDEO_SUPPORT
Valor: 0x800
Obliga a que se produzca un error en la creación del dispositivo Direct3D si el controlador de pantalla no se implementa en el WDDM para Windows 8 (WDDM 1.2). Cuando el controlador de pantalla no se implementa en WDDM 1.2, solo un dispositivo Direct3D que se crea con el nivel de característica 9.1, 9.2 o 9.3 admite vídeo; por lo tanto, si se establece esta marca, el entorno de ejecución crea el dispositivo Direct3D solo para el nivel de característica 9.1, 9.2 o 9.3. Se recomienda no especificar esta marca para las aplicaciones que quieran favorecer la funcionalidad de Direct3D a través del vídeo. Si el nivel de característica 10 y superior está disponible, el tiempo de ejecución usará ese nivel de característica independientemente de la compatibilidad con vídeo.

Si se establece esta marca, la creación de dispositivos en el dispositivo de representación básico (BRD) se realizará correctamente independientemente de la compatibilidad que falta en BRD para la descodificación de vídeo. Esto se debe a que la pila de vídeo de Media Foundation funciona en modo de software en BRD. En esta situación, si obligas a la pila de vídeos a crear el dispositivo Direct3D dos veces (crea el dispositivo una vez con esta marca, descubre BRD y, a continuación, vuelve a crear el dispositivo sin la marca), realmente degradas el rendimiento.

Si intenta crear un dispositivo Direct3D con el tipo de controlador D3D_DRIVER_TYPE_NULL, D3D_DRIVER_TYPE_REFERENCE o D3D_DRIVER_TYPE_SOFTWARE, se produce un error en la creación de dispositivos en cualquier nivel de característica porque ninguno de los controladores asociados proporciona funcionalidad de vídeo. Si intenta crear un dispositivo Direct3D con el tipo de controlador D3D_DRIVER_TYPE_WARP, la creación de dispositivos se realiza correctamente para permitir la reserva de software para el vídeo.

Direct3D 11: Este valor no se admite hasta Direct3D 11.1.

Comentarios

D3D11CreateDevice y D3D11CreateDevice y D3D11CreateDeviceAndSwapChain.

Una aplicación podría crear (y destruir) subprocesos dinámicamente para mejorar el rendimiento especialmente en una máquina con varios núcleos de CPU. Sin embargo, puede haber casos en los que una aplicación necesite evitar que se creen subprocesos adicionales. Esto puede ocurrir cuando desea simplificar la depuración, el código de perfil o desarrollar una herramienta por ejemplo. En estos casos, use D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS para solicitar que el controlador de tiempo de ejecución y vídeo no cree ningún subproceso adicional que pueda interferir con la aplicación.

Requisitos

Requisito Valor
Header d3d11.h

Consulte también

Enumeraciones principales