Método ID3D12Device6::SetBackgroundProcessingMode (d3d12.h)
Define o modo para otimizações de processamento em segundo plano do driver.
Sintaxe
HRESULT SetBackgroundProcessingMode(
[in] D3D12_BACKGROUND_PROCESSING_MODE Mode,
[in] D3D12_MEASUREMENTS_ACTION MeasurementsAction,
[in] HANDLE hEventToSignalUponCompletion,
[out] BOOL *pbFurtherMeasurementsDesired
);
Parâmetros
[in] Mode
Tipo: D3D12_BACKGROUND_PROCESSING_MODE
O nível de otimização dinâmica a ser aplicado ao trabalho de GPU enviado posteriormente.
[in] MeasurementsAction
Tipo: D3D12_MEASUREMENTS_ACTION
A ação a ser tomada com os resultados da instrumentação de carga de trabalho anterior.
[in] hEventToSignalUponCompletion
Tipo: HANDLE
Um identificador opcional para sinalizar quando a função for concluída. Por exemplo, se MeasurementsAction for definido como D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS, hEventToSignalUponCompletion será sinalizado quando todas as compilações resultantes forem concluídas.
[out] pbFurtherMeasurementsDesired
Tipo: BOOL*
Um ponteiro opcional para um valor booliano. A função define o valor como true
para indicar que você deve continuar a criação de perfil, caso contrário, false
.
Comentários
Um driver gráfico pode usar threads de CPU em segundo plano de prioridade ociosa para recompilar dinamicamente programas de sombreador. Isso pode melhorar o desempenho da GPU, especializando o código do sombreador para corresponder melhor aos detalhes do hardware em que ele está sendo executado e/ou ao contexto no qual ele está sendo usado.
Como desenvolvedor, você não precisa fazer nada para se beneficiar desse recurso (ao longo do tempo, à medida que os drivers adotam otimizações de processamento em segundo plano, os sombreadores existentes serão ajustados automaticamente com mais eficiência). Mas, ao criar o perfil do código, você provavelmente desejará chamar SetBackgroundProcessingMode para garantir que todas as otimizações de processamento em segundo plano do driver tenham ocorrido antes de fazer medições de tempo. Veja um exemplo.
SetBackgroundProcessingMode(
D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS,
D3D_MEASUREMENTS_ACTION_KEEP_ALL,
nullptr, nullptr);
// Here, prime the system by rendering some typical content.
// For example, a level flythrough.
SetBackgroundProcessingMode(
D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED,
D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS,
nullptr, nullptr);
// Here, continue rendering. This time with dynamic optimizations applied.
// And then take your measurements.
O PIX usa automaticamente SetBackgroundProcessingMode — primeiro para preparar o sistema e, em seguida, para evitar que outras alterações ocorram no meio de sua análise. O PIX aguarda um evento (para garantir que todos os recompilações do sombreador de plano de fundo tenham sido concluídos) antes de começar a fazer medidas.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 10 Build 20348 |
Servidor mínimo com suporte | Windows 10 Build 20348 |
Plataforma de Destino | Windows |
Cabeçalho | d3d12.h |
Biblioteca | d3d12.lib |
DLL | d3d12.dll |