Share via


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