Поделиться через


Перечисление D3D12DDI_MEASUREMENTS_ACTION_0062 (d3d12umddi.h)

Указывает, что делать с результатом предыдущих измерений PGO (оптимизация с использованием профиля).

Синтаксис

typedef enum D3D12DDI_MEASUREMENTS_ACTION_0062 {
  D3D12DDI_MEASUREMENTS_ACTION_0062_KEEP_ALL,
  D3D12DDI_MEASUREMENTS_ACTION_0062_COMMIT_RESULTS,
  D3D12DDI_MEASUREMENTS_ACTION_0062_COMMIT_RESULTS_HIGH_PRIORITY,
  D3D12DDI_MEASUREMENTS_ACTION_0062_DISCARD_PREVIOUS
} ;

Константы

 
D3D12DDI_MEASUREMENTS_ACTION_0062_KEEP_ALL
D3D12DDI_MEASUREMENTS_ACTION_0062_KEEP_ALL не запрашивает каких-либо конкретных изменений в поведении. Предыдущие результаты по-прежнему действительны, и драйвер может продолжать отслеживать любую статистику в середине измерения.
D3D12DDI_MEASUREMENTS_ACTION_0062_COMMIT_RESULTS
D3D12DDI_MEASUREMENTS_ACTION_0062_COMMIT_RESULTS намеки на то, что рабочая нагрузка, наблюдаемая до сих пор, представляет полный набор того, что стоит оптимизировать на основе, например, того, что пролет сцены завершен в средстве тестирования производительности или воспроизведение одного анализируемого кадра завершено в PIX. UMD должна запустить любую желаемую фоновую обработку на основе того, что она видела до сих пор, так как в ближайшем будущем не будет никакой другой работы. После возврата UMD из вызова SetBackgroundProcessingMode, указывающего D3D12DDI_MEASUREMENTS_ACTION_0062_COMMIT_RESULTS, все фоновые задачи, находящиеся в очереди, будут считаться частью фиксации. После завершения выполнения этого набора задач будет показано предоставленное hEventToSignalOnCompletion .

Если UMD собирает статистику, например. Часто используемые постоянные значения и ожидает определенного порогового объема данных, прежде чем действовать с этой информацией, флаг фиксации должен масштабироваться независимо от частоты записи гистограмм, чтобы получить тот же результат, что и при достижении нормального порогового значения текущего времени после более длительного периода сбора данных. Это важно, чтобы PIX воспроизводил только один кадр, но затем запрашивать окончательный набор оптимизированных шейдеров, соответствующих этой работе, не тратя время на повторение одного кадра много сотен раз.

Если режимы D3D12DDI_MEASUREMENTS_ACTION_0062_COMMIT_RESULTS или D3D12DDI_MEASUREMENTS_ACTION_0062_COMMIT_RESULTS_HIGH_PRIORITY не используются, hEventToSignalOnCompletion должен иметь значение NULL.
D3D12DDI_MEASUREMENTS_ACTION_0062_COMMIT_RESULTS_HIGH_PRIORITY
D3D12DDI_MEASUREMENTS_ACTION_0062_COMMIT_RESULTS_HIGH_PRIORITY является надмножеством режима D3D12DDI_MEASUREMENTS_ACTION_0062_COMMIT_RESULTS, который изменяет поведение планирования потоков. Этот режим указывает, что быстрое выполнение фоновой компиляции важнее, чем предотвращение сбоев, поэтому среда выполнения D3D будет планировать несколько задач одновременно с использованием нескольких потоков и выполнять их с более высоким приоритетом, чем простой. Это повышение продолжается до тех пор, пока не будут выполнены все задачи, созданные фиксацией.

Режим с высоким приоритетом действителен, только если включен режим разработчика.
D3D12DDI_MEASUREMENTS_ACTION_0062_DISCARD_PREVIOUS
D3D12DDI_MEASUREMENTS_ACTION_0062_DISCARD_PREVIOUS указывает UMD, что рабочая нагрузка значительно изменилась, поэтому любые результаты предыдущих измерений больше не имеют смысла.

Требования

Требование Значение
Минимальная версия клиента Windows 10 версии 1903
Верхняя часть d3d12umddi.h