Compartilhar via


D3D12DDI_BACKGROUND_PROCESSING_MODE_0062 enumeração (d3d12umddi.h)

Indica qual nível de criação de perfil dinâmica e recompilação de sombreador está habilitado para processamento em segundo plano.

Por padrão, o runtime agendará no máximo uma tarefa de compilação em segundo plano por vez, executando com prioridade ociosa para minimizar o risco desse trabalho, introduzindo falhas na renderização em primeiro plano.

Desenvolvedores e ferramentas de criação de perfil podem ajustar esse comportamento usando combinações desses valores de enumeração.

Syntax

typedef enum D3D12DDI_BACKGROUND_PROCESSING_MODE_0062 {
  D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOWED,
  D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOW_INTRUSIVE_MEASUREMENTS,
  D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_DISABLE_BACKGROUND_WORK,
  D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_DISABLE_ALL_PROFILING
} ;

Constantes

 
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOWED
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOWED é o estado padrão, no qual os drivers podem instrumentar cargas de trabalho de qualquer maneira de sua escolha e podem enviar tarefas de CPU (normalmente recompilações de PSO) para o runtime D3D para execução de baixa prioridade. O objetivo desse modo é habilitar otimizações dinâmicas, mas sem afetar o desempenho de renderização em primeiro plano.
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOW_INTRUSIVE_MEASUREMENTS
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOW_INTRUSIVE_MEASUREMENTS dicas de que o driver deve priorizar a riqueza e a integridade da instrumentação em vez de evitar falhas, pois a renderização que está ocorrendo no momento está sendo feita especificamente para fins de treinamento e não precisa ser executada com desempenho normal e suave.

Esse tipo de criação de perfil pesada será usado por ferramentas de análise, como o PIX. Ele também pode ser usado por parâmetros de comparação para aquecer o estado de otimização antes de fazer suas medidas reais de desempenho ou diretamente por jogos em momentos apropriados (por exemplo, pré-treinar o driver renderizando conteúdo invisível por trás de um menu).
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_DISABLE_BACKGROUND_WORK
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_DISABLE_BACKGROUND_WORK impede a execução de tarefas de processamento em segundo plano. Quando esse sinalizador for ativado pela primeira vez, todas as tarefas já em andamento poderão ser executadas até a conclusão. As tarefas que a UMD enviou, mas que ainda não iniciaram a execução, serão canceladas e todas as chamadas para QueueProcessingWorkCB enquanto já estiverem nesse estado resultarão na invocação imediata do retorno de chamada de cancelamento.

É claro que o UMD pode optar por ignorar totalmente o envio de tarefas enquanto estiver no estado desabilitado, mas se ele enviar o trabalho, o runtime será cancelado em vez de apenas falhar na operação de envio, a fim de evitar que o UMD tenha que se preocupar em sincronizar entre o envio de trabalho e as alterações de modo.

Se o sinalizador de desabilitar estiver ativado ao mesmo tempo que especificar D3D12DDI_MEASUREMENTS_ACTION_0062_COMMIT_*, todas as novas tarefas geradas pelo UMD em resposta à solicitação de confirmação poderão ser executadas antes que a desabilitação entre em vigor.

O sinalizador de desabilitação só é válido quando o modo de desenvolvedor está habilitado.
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_DISABLE_ALL_PROFILING
Além de suspender a recompilação do sombreador dinâmico, isso indica que o driver deve evitar fazer alterações comportamentais que perturbem o desempenho, como ajustar dinamicamente políticas de cache ou padrões de expedição de computação. Isso é para uso durante as sessões de criação de perfil, em que uma comparação A/B deve fornecer resultados de tempo estáveis.

Esse sinalizador só é válido quando o modo de desenvolvedor está habilitado.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10, versão 1903
Cabeçalho d3d12umddi.h