D3D11_CREATE_DEVICE_FLAG enumeração (d3d11.h)

Descreve os parâmetros usados para criar um 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 esse sinalizador se o aplicativo chamar apenas métodos de interfaces Direct3D 11 de um único thread. Por padrão, o objeto ID3D11Device é thread-safe.
Usando esse sinalizador, você pode aumentar o desempenho. No entanto, se você usar esse sinalizador e seu aplicativo chamar métodos de interfaces Direct3D 11 de vários threads, um comportamento indefinido poderá resultar.
D3D11_CREATE_DEVICE_DEBUG
Valor: 0x2
Cria um dispositivo que dá suporte à camada de depuração.

Para usar esse sinalizador, você deve ter o D3D11*SDKLayers.dll instalado; caso contrário, a criação do dispositivo falhará. Para obter D3D11_1SDKLayers.dll, instale o SDK para Windows 8.
D3D11_CREATE_DEVICE_SWITCH_TO_REF
Valor: 0x4
Nota Não há suporte para esse sinalizador no Direct3D 11.

 
D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS
Valor: 0x8
Impede que vários threads sejam criados. Quando esse sinalizador for usado com um dispositivo WARP (Plataforma de Rasterização Avançada do Windows), nenhum thread adicional será criado pelo WARP
e toda a rasterização ocorrerá no thread de chamada. Esse sinalizador não é recomendado para uso geral. Consulte Observações.
D3D11_CREATE_DEVICE_BGRA_SUPPORT
Valor: 0x20
Cria um dispositivo que dá suporte a formatos BGRA (DXGI_FORMAT_B8G8R8A8_UNORM e DXGI_FORMAT_B8G8R8A8_UNORM_SRGB). Todos os hardwares 10level9 e superior com drivers WDDM 1.1+ dão suporte a formatos BGRA.

Nota Necessário para Direct2D interoperabilidade com recursos direct3D.

 
D3D11_CREATE_DEVICE_DEBUGGABLE
Valor: 0x40
Faz com que o dispositivo e o driver mantenham informações que você pode usar para depuração do sombreador. O impacto exato desse sinalizador variará de driver para driver.

Para usar esse sinalizador, você deve ter D3D11_1SDKLayers.dll instalado; caso contrário, a criação do dispositivo falhará. O dispositivo criado dá suporte à camada de depuração. Para obter D3D11_1SDKLayers.dll, instale o SDK para Windows 8.

Se você usar esse sinalizador e o driver atual não oferecer suporte à depuração do sombreador, a criação do dispositivo falhará. A depuração do sombreador requer um driver implementado no WDDM para Windows 8 (WDDM 1.2).

Direct3D 11: Esse valor não tem suporte até Direct3D 11.1.
D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY
Valor: 0x80
Faz com que o runtime do Direct3D ignore as configurações do Registro que ativam a camada de depuração. Você pode ativar a camada de depuração usando o Painel de Controle DirectX que foi incluído como parte do SDK do DirectX. Enviamos a última versão do SDK do DirectX em junho de 2010; você pode baixá-lo no Centro de Download da Microsoft. Você pode definir esse sinalizador em seu aplicativo, normalmente somente em builds de versão, para impedir que os usuários finais usem o Painel de Controle DirectX para monitorar como o aplicativo usa o Direct3D.

Nota Você também pode definir esse sinalizador em seu aplicativo para impedir que ferramentas de depuração do Direct3D, como Visual Studio Ultimate 2012, conectem seu aplicativo.

 

Windows 8.1: esse sinalizador não impede que Visual Studio 2013 e posterior em execução em Windows 8.1 e posteriores conectem seu aplicativo; em vez disso, use ID3D11DeviceContext2::IsAnnotationEnabled. Esse sinalizador ainda impede que Visual Studio 2013 e posteriores em execução em Windows 8 e anteriores conectem seu aplicativo.

Direct3D 11: Esse valor não tem suporte até Direct3D 11.1.
D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT
Valor: 0x100
Use esse sinalizador se o dispositivo produzir cargas de trabalho de GPU que levam mais de dois segundos para ser concluída e você quiser que o sistema operacional permita que eles sejam concluídos com êxito. Se esse sinalizador não estiver definido, o sistema operacional executará a detecção e a recuperação de tempo limite ao detectar um pacote de GPU que levou mais de dois segundos para ser executado. Se esse sinalizador estiver definido, o sistema operacional permitirá que um pacote de execução tão longa seja executado sem redefinir a GPU. Recomendamos não definir esse sinalizador se o dispositivo precisar ser altamente responsivo para que o sistema operacional possa detectar e se recuperar de tempos limite de GPU. Recomendamos definir esse sinalizador se o dispositivo precisar executar tarefas em segundo plano demoradas, como computação, reconhecimento de imagem e codificação de vídeo, para permitir que essas tarefas sejam concluídas com êxito.

Direct3D 11: Esse valor não tem suporte até Direct3D 11.1.
D3D11_CREATE_DEVICE_VIDEO_SUPPORT
Valor: 0x800
Força a criação do dispositivo Direct3D a falhar se o driver de exibição não for implementado no WDDM para Windows 8 (WDDM 1.2). Quando o driver de exibição não é implementado no WDDM 1.2, somente um dispositivo Direct3D criado com o nível de recurso 9.1, 9.2 ou 9.3 dá suporte a vídeo; portanto, se esse sinalizador estiver definido, o runtime criará o dispositivo Direct3D somente para o nível de recurso 9.1, 9.2 ou 9.3. Recomendamos não especificar esse sinalizador para aplicativos que desejam favorecer a funcionalidade do Direct3D em vez de vídeo. Se o nível de recurso 10 e superior estiver disponível, o runtime usará esse nível de recurso independentemente do suporte a vídeo.

Se esse sinalizador estiver definido, a criação do dispositivo no BRD (Dispositivo de Renderização Básica) terá êxito independentemente do suporte ausente do BRD para decodificação de vídeo. Isso ocorre porque a pilha de vídeos do Media Foundation opera no modo de software no BRD. Nessa situação, se você forçar a pilha de vídeo a criar o dispositivo Direct3D duas vezes (crie o dispositivo uma vez com esse sinalizador, em seguida, descubra BRD e crie novamente o dispositivo sem o sinalizador), você realmente degrada o desempenho.

Se você tentar criar um dispositivo Direct3D com o tipo de driver D3D_DRIVER_TYPE_NULL, D3D_DRIVER_TYPE_REFERENCE ou D3D_DRIVER_TYPE_SOFTWARE, a criação do dispositivo falhará em qualquer nível de recurso porque nenhum dos drivers associados fornecerá funcionalidade de vídeo. Se você tentar criar um dispositivo Direct3D com o tipo de driver D3D_DRIVER_TYPE_WARP, a criação do dispositivo terá êxito para permitir o fallback de software para vídeo.

Direct3D 11: Esse valor não tem suporte até Direct3D 11.1.

Comentários

Os sinalizadores de criação do dispositivo são usados por D3D11CreateDevice e D3D11CreateDeviceAndSwapChain.

Um aplicativo pode criar (e destruir) threads dinamicamente para melhorar o desempenho especialmente em um computador com vários núcleos de CPU. No entanto, pode haver casos em que um aplicativo precisa impedir que threads extras sejam criados. Isso pode acontecer quando você deseja simplificar a depuração, o código do perfil ou desenvolver uma ferramenta, por exemplo. Para esses casos, use D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS para solicitar que o runtime e o driver de vídeo não criem threads adicionais que possam interferir no aplicativo.

Requisitos

Requisito Valor
Cabeçalho d3d11.h

Confira também

Enumerações principais