Compartilhar via


Método ID3D11Debug::SetFeatureMask (d3d11sdklayers.h)

Defina um campo de bits de sinalizadores que ativará e desativará os recursos de depuração.

Sintaxe

HRESULT SetFeatureMask(
  UINT Mask
);

Parâmetros

Mask

Tipo: UINT

Uma combinação de sinalizadores de máscara de recursos que são combinados usando uma operação OR bit a bit. Se um sinalizador estiver presente, esse recurso será definido como ativado, caso contrário, o recurso será definido como desativado. Para obter descrições dos sinalizadores de máscara de recursos, consulte Comentários.

Valor retornado

Tipo: HRESULT

Esse método retorna um dos códigos de retorno do Direct3D 11.

Comentários

Nota Se você chamar essa API em um processo de Sessão 0, ela retornará DXGI_ERROR_NOT_CURRENTLY_AVAILABLE.
 
Definir um dos sinalizadores de máscara de recurso a seguir fará com que um método de operação de renderização (listado abaixo) faça alguma tarefa extra quando chamado.
D3D11_DEBUG_FEATURE_FINISH_PER_RENDER_OP (0x2) O aplicativo aguardará a GPU concluir o processamento da operação de renderização antes de continuar.
D3D11_DEBUG_FEATURE_FLUSH_PER_RENDER_OP (0x1) O runtime também chamará ID3D11DeviceContext::Flush.
D3D11_DEBUG_FEATURE_PRESENT_PER_RENDER_OP (0x4) O runtime chamará IDXGISwapChain::P resent. A apresentação de buffers de renderização ocorrerá de acordo com as configurações estabelecidas por chamadas anteriores para ID3D11Debug::SetSwapChain e ID3D11Debug::SetPresentPerRenderOpDelay.
 

Esses sinalizadores de máscara de recursos se aplicam aos seguintes métodos de operação de renderização:

Ao definir um dos seguintes sinalizadores de máscara de recursos, você pode controlar o comportamento dos métodos IDXGIDevice2::OfferResources e IDXGIDevice2::ReclaimResources para ajudar no teste e na depuração.
Nota Esses sinalizadores têm suporte no runtime do Direct3D 11.1, que está disponível a partir do Windows 8.
 
D3D11_DEBUG_FEATURE_ALWAYS_DISCARD_OFFERED_RESOURCE (0x8) Quando você chama IDXGIDevice2::OfferResources para oferecer recursos enquanto esse sinalizador está habilitado, seu conteúdo sempre é descartado. Use esse sinalizador para testar caminhos de código que regeneram o conteúdo do recurso na recuperação. Não é possível usar esse sinalizador em combinação com D3D11_DEBUG_FEATURE_NEVER_DISCARD_OFFERED_RESOURCE.
D3D11_DEBUG_FEATURE_NEVER_DISCARD_OFFERED_RESOURCE (0x10) Quando você chama IDXGIDevice2::OfferResources para oferecer recursos enquanto esse sinalizador está habilitado, seu conteúdo nunca é descartado. Use esse sinalizador para testar caminhos de código que não precisam regenerar o conteúdo do recurso na recuperação. Não é possível usar esse sinalizador em combinação com D3D11_DEBUG_FEATURE_ALWAYS_DISCARD_OFFERED_RESOURCE.
 

O comportamento dos métodos IDXGIDevice2::OfferResources e IDXGIDevice2::ReclaimResources depende da pressão de memória em todo o sistema. Portanto, o cenário em que o conteúdo é perdido e deve ser regenerado é incomum para a maioria dos aplicativos. As novas opções anteriores na camada de depuração do Direct3D permitem simular esse cenário de forma consistente e testar caminhos de código.

O sinalizador a seguir é compatível com o runtime do Direct3D 11.1.

D3D11_DEBUG_FEATURE_AVOID_BEHAVIOR_CHANGING_DEBUG_AIDS (0x40) Desabilita o comportamento de depuração padrão a seguir.
 

Quando a camada de depuração está habilitada, ela executa determinadas ações para revelar problemas do aplicativo. Ao definir o sinalizador D3D11_DEBUG_FEATURE_AVOID_BEHAVIOR_CHANGING_DEBUG_AIDS máscara de recursos, você pode habilitar a camada de depuração sem obter o seguinte comportamento de depuração padrão:

O sinalizador a seguir é compatível com o runtime do Direct3D 11.2.
D3D11_DEBUG_FEATURE_DISABLE_TILED_RESOURCE_MAPPING_TRACKING_AND_VALIDATION (0x80) Desabilita o comportamento de depuração padrão a seguir.
 

Por padrão (ou seja, sem D3D11_DEBUG_FEATURE_DISABLE_TILED_RESOURCE_MAPPING_TRACKING_AND_VALIDATION definido), a camada de depuração valida o uso adequado de todos os mapeamentos de bloco para recursos em bloco para recursos associados para cada operação executada no contexto do dispositivo (por exemplo, desenhar, copiar e assim por diante). Dependendo do tamanho dos recursos em bloco usados (se houver), essa validação pode ser intensiva e lenta do processador. Os aplicativos podem querer ser executados inicialmente com a validação de mapeamento de bloco de recursos em bloco; em seguida, quando determinam que o padrão de chamada é seguro, eles podem desabilitar a validação definindo D3D11_DEBUG_FEATURE_DISABLE_TILED_RESOURCE_MAPPING_TRACKING_AND_VALIDATION.

Se D3D11_DEBUG_FEATURE_DISABLE_TILED_RESOURCE_MAPPING_TRACKING_AND_VALIDATION for definido quando um recurso em bloco for criado, a camada de depuração nunca executará o acompanhamento do mapeamento de bloco para esse recurso durante todo o tempo de vida. Como alternativa, se D3D11_DEBUG_FEATURE_DISABLE_TILED_RESOURCE_MAPPING_TRACKING_AND_VALIDATION estiver definida para qualquer chamada de método de contexto de dispositivo (como chamadas de desenho ou cópia) envolvendo recursos em bloco, a camada de depuração ignorará toda a validação de mapeamento de bloco para a chamada.

Requisitos

   
Plataforma de Destino Windows
Cabeçalho d3d11sdklayers.h
Biblioteca D3D11.lib

Confira também

ID3D11Debug Interface