перечисление D3D12DDI_BACKGROUND_PROCESSING_MODE_0062 (d3d12umddi.h)
Указывает, какой уровень динамического профилирования и перекомпиляции шейдера включен для фоновой обработки.
По умолчанию среда выполнения запланирует по крайней мере одну фоновую задачу компиляции одновременно, выполняясь с приоритетом простоя, чтобы свести к минимуму риск этой работы, введя сбои в отрисовку переднего плана.
Разработчики и средства профилирования могут настроить это поведение с помощью сочетаний этих значений перечисления.
Синтаксис
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
} ;
Константы
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOWED D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOWED — это состояние по умолчанию, в котором драйверы могут инструментировать рабочие нагрузки любым способом их выбора и могут отправлять задачи ЦП (обычно pso recompiles) в среду выполнения D3D для выполнения с низким приоритетом. Цель этого режима — включить динамические оптимизации, но не влияя на производительность отрисовки переднего плана. |
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOW_INTRUSIVE_MEASUREMENTS D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOW_INTRUSIVE_MEASUREMENTS намекает, что драйвер должен определять приоритеты богатства и полноты инструментирования по сравнению с избеганием сбоей, так как отрисовка в настоящее время выполняется специально для учебных целей и не требуется выполняться с обычной гладкой производительностью. Этот вид профилирования с большим весом будет использоваться средствами анализа, такими как PIX. Он также может использоваться тестами для теплого состояния оптимизации, прежде чем принимать фактические показатели производительности, или напрямую в игры в соответствующее время (например, предварительно обучив драйвер путем отрисовки невидимого содержимого в меню). |
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_DISABLE_BACKGROUND_WORK D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_DISABLE_BACKGROUND_WORK предотвращает выполнение фоновых задач обработки. При первом включении этого флага все уже выполняемые задачи будут разрешены для выполнения до завершения. Задачи, отправленные UMD, но которые еще не запущены, будут отменены, а все вызовы к QueueProcessingWorkCB в то время как уже в этом состоянии приведет к немедленному вызову отмены. Конечно, UMD может полностью пропускать отправку задач в отключенном состоянии, но если она выполняет отправку, среда выполнения отменяет, а не просто сбой операции отправки, чтобы избежать необходимости UMD беспокоить синхронизацию между отправкой рабочих и режимом изменений. Если флаг отключения включен одновременно с указанием D3D12DDI_MEASUREMENTS_ACTION_0062_COMMIT_*, все новые задачи, создаваемые UMD в ответ на запрос фиксации, будут разрешены выполнять до того, как отключение вступает в силу. Флаг отключения действителен только в том случае, если включен режим разработчика. |
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_DISABLE_ALL_PROFILING Помимо приостановки динамической компиляции шейдера, это означает, что драйвер должен избегать внесения каких-либо изменений поведения, которые будут вызывать повышение производительности, например динамической настройки политик кэша или шаблонов диспетчеризации вычислений. Это предназначено для использования во время сеансов профилирования, где сравнение A/B должно предоставлять стабильные результаты времени. Этот флаг действителен только в том случае, если включен режим разработчика. |
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 10 версии 1903 |
заголовка | d3d12umddi.h |