функция обратного вызова PFND3DDDI_SETMARKER (d3dumddi.h)
Уведомляет драйвер отображения пользовательского режима о том, что он должен создать новую метку времени, если с момента последнего вызова pfnSetMarker была выполнена какая-либо работа с GPU. При необходимости реализована в драйверах Windows Display Driver Model (WDDM) 1.3 и более поздних версий, работающих на оборудовании Microsoft Direct3D уровня 9. (См. требования в разделе Улучшения производительности отрисовки Direct3D.) Для более сложного оборудования драйверы должны реализовать функцию SetMarker .
Синтаксис
PFND3DDDI_SETMARKER Pfnd3dddiSetmarker;
HRESULT Pfnd3dddiSetmarker(
HANDLE hDevice
)
{...}
Параметры
hDevice
Дескриптор устройства отображения (графический контекст).
Возвращаемое значение
Возвращает S_OK или соответствующий результат ошибки, если функция не завершается успешно.
Комментарии
Если тип события маркера из параметра Type функции pfnSetMarkerMode не D3DDDIMT_NONE, драйвер отображения пользовательского режима должен выполнять эту процедуру при каждом вызове pfnSetMarker:
- Увеличение значения элемента APISequenceNumber структуры D3DDDICB_LOGUMDMARKER .
- Определите, какие контексты, связанные с интерфейсом DDI отрисовки отправленных вызовов отрисовки, работают с последним вызовом pfnSetMarker. Для каждого такого контекста:
- Если буфер команд для контекста пуст, ничего не делать.
- В противном случае:
- Убедитесь, что в буфере журнала контекста доступно больше памяти. При необходимости очистите буфер.
- Добавьте еще одну запись в буфер последовательности API контекста, содержащий низкие 32 бита текущего значения APISequenceNumber .
- Выборка и запись меток времени, подходящих для текущего типа события маркера.
- Обновление данных отслеживания, которые будут использоваться при следующем вызове pfnSetMarker .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8.1,WDDM 1.3 и более поздних версий |
Минимальная версия сервера | Windows Server 2012 R2 |
Целевая платформа | Персональный компьютер |
Верхняя часть | d3dumddi.h (включая D3d10umddi.h) |