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
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:
- ID3D11DeviceContext::Draw
- ID3D11DeviceContext::DrawIndexed
- ID3D11DeviceContext::DrawInstanced
- ID3D11DeviceContext::DrawIndexedInstanced
- ID3D11DeviceContext::DrawAuto
- ID3D11DeviceContext::ClearRenderTargetView
- ID3D11DeviceContext::ClearDepthStencilView
- ID3D11DeviceContext::CopySubresourceRegion
- ID3D11DeviceContext::CopyResource
- ID3D11DeviceContext::UpdateSubresource
- ID3D11DeviceContext::GenerateMips
- ID3D11DeviceContext::ResolveSubresource
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:
- Se um aplicativo chamar ID3D11DeviceContext1::D iscardView, o runtime preencherá o recurso com uma cor aleatória.
- Se um aplicativo chamar IDXGISwapChain1::P resent1 com parâmetros parciais de apresentação, o runtime ignorará as informações parciais da apresentação.
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 |