Перечисление 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) в среду выполнения 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 |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по