Share via


Método ID3D12Device6::SetBackgroundProcessingMode (d3d12.h)

Establece el modo para las optimizaciones de procesamiento en segundo plano del controlador.

Sintaxis

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

Nivel de optimización dinámica que se va a aplicar al trabajo de GPU que se envía posteriormente.

[in] MeasurementsAction

Tipo: D3D12_MEASUREMENTS_ACTION

Acción que se va a realizar con los resultados de la instrumentación de carga de trabajo anterior.

[in] hEventToSignalUponCompletion

Tipo: HANDLE

Identificador opcional para indicar cuándo se completa la función. Por ejemplo, si MeasurementsAction se establece en D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS, se señala hEventToSignalUponCompletion cuando todas las compilaciones resultantes han finalizado.

[out] pbFurtherMeasurementsDesired

Tipo: BOOL*

Puntero opcional a un valor booleano. La función establece el valor en true para indicar que debe seguir generando perfiles; de lo contrario, false.

Comentarios

Un controlador de gráficos puede usar subprocesos de CPU en segundo plano de prioridad inactiva para volver a compilar dinámicamente programas de sombreador. Esto puede mejorar el rendimiento de la GPU mediante la especialización del código de sombreador para que coincida mejor con los detalles del hardware en el que se ejecuta o el contexto en el que se usa.

Como desarrollador, no tiene que hacer nada para beneficiarse de esta característica (a lo largo del tiempo, a medida que los controladores adoptan optimizaciones de procesamiento en segundo plano, los sombreadores existentes se optimizarán automáticamente de forma más eficaz). Pero, al generar perfiles de código, probablemente querrá llamar a SetBackgroundProcessingMode para asegurarse de que se han realizado optimizaciones de procesamiento en segundo plano del controlador antes de tomar medidas de control. Este es un ejemplo.

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.

PIX usa automáticamente SetBackgroundProcessingMode, primero para primor el sistema y, a continuación, para evitar que se produzcan cambios adicionales en medio de su análisis. PIX espera en un evento (para asegurarse de que todas las compilaciones de sombreador de fondo han finalizado) antes de empezar a tomar medidas.

Requisitos

Requisito Value
Cliente mínimo compatible compilación 20348 de Windows 10
Servidor mínimo compatible compilación 20348 de Windows 10
Plataforma de destino Windows
Encabezado d3d12.h
Library d3d12.lib
Archivo DLL d3d12.dll