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 |