функция обратного вызова PFND3DDDI_UPDATEGPUVIRTUALADDRESSCB (d3dumddi.h)
pfnUpdateGpuVirtualAddressCb — это специальная операция, используемая в контексте ресурсов плитки. Это позволяет драйверу пользовательского режима указать ряд операций сопоставления, которые будут применяться к виртуальному адресу процесса в одном пакете обновлений таблицы страницы.
Диапазон виртуальных адресов единиц обработки графики (GPU) во всех операциях (за исключением исходного адреса операций копирования) должен принадлежать одному диапазону виртуальных адресов, полученным путем вызова pfnReserveGpuVirtualAddressCb. Аналогичным образом диапазоны виртуальных адресов всех источников в операциях копирования должны принадлежать одному диапазону виртуальных адресов, который был получен путем вызова pfnReserveGpuVirtualAddressCb.
Обновления таблицы страниц выполняются в контексте разбиения страниц, выделенном для указанного контекста отрисовки, и выполняются на GPU только после того, как связанный контекст отрисовки сигнализирует FenceValue для указанного отслеживаемого объекта ограждения. После завершения обновлений таблицы страницы контекст разбиения сигнализирует отслеживаемой объекту забора FenceValue+1, что позволяет контексту отрисовки выполнять жесткую блокировку с обновлениями таблицы страницы.
Синтаксис
PFND3DDDI_UPDATEGPUVIRTUALADDRESSCB Pfnd3dddiUpdategpuvirtualaddresscb;
HRESULT Pfnd3dddiUpdategpuvirtualaddresscb(
HANDLE hDevice,
const D3DDDICB_UPDATEGPUVIRTUALADDRESS *unnamedParam2
)
{...}
Параметры
hDevice
Дескриптор устройства отображения.
unnamedParam2
pData [in]
Указатель на структуру D3DDDICB_UPDATEGPUVIRTUALADDRESS, описывающую операцию.
Возвращаемое значение
Если эта функция обратного вызова успешно выполнена, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT.
Замечания
Диапазоны виртуальных адресов в операциях обновления могут пересекаться. Операции будут применены в том порядке, в который они отправляются.
В одном вызове pfnUpdateVirtualAddressCb:
- Все диапазоны виртуальных адресов в операциях сопоставления и диапазон назначения в операциях копирования должны принадлежать одному зарезервированному (нулевому) диапазону.
- Исходный диапазон виртуальных адресов в операциях копирования может находиться в другом зарезервированном (нулевом) диапазоне.
- Исходный диапазон виртуальных адресов во всех операциях копирования должен принадлежать одному зарезервированному (нулевому) диапазону.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 10 |
минимальный поддерживаемый сервер | Windows Server 2016 |
целевая платформа | Настольный |
заголовка | d3dumddi.h (include D3dumddi.h) |