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, что рабочая нагрузка изменилась значительно, поэтому любые результаты предыдущих измерений больше не имеют смысла.