Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
D3DKMTUpdateGpuVirtualAddress — это специальная операция, используемая в контексте ресурсов плитки. Он позволяет драйверу указать ряд операций сопоставления, которые будут применяться к виртуальному адресу процесса в одном пакете обновлений таблицы страниц.
Синтаксис
NTSTATUS D3DKMTUpdateGpuVirtualAddress(
[in] const D3DKMT_UPDATEGPUVIRTUALADDRESS *unnamedParam1
);
Параметры
[in] unnamedParam1
Указатель на структуру D3DKMT_UPDATEGPUVIRTUALADDRESS, описывающую операцию.
Возвращаемое значение
| Возвращаемый код | Описание |
|---|---|
| STATUS_SUCCESS | Контекст устройства успешно создан. |
| STATUS_INVALID_PARAMETER | Параметры были проверены и определены как неверные. |
Эта функция также может возвращать другие значения NTSTATUS.
Замечания
Диапазон виртуальных адресов единиц обработки графики (GPU) во всех операциях (кроме источника операций копирования) должен принадлежать одному диапазону виртуальных адресов, который был получен путем вызова ReserveGpuVirtualAddressRange. Аналогичным образом диапазоны виртуальных адресов всех источников в операциях копирования должны принадлежать одному диапазону виртуальных адресов, который был получен путем вызова ReserveGpuVirtualAddressRange.
Обновления таблицы страниц выполняются в контексте разбиения страниц, выделенном для указанного контекста отрисовки, и выполняются на GPU только после того, как связанный контекст отрисовки сигнализирует FenceValue для указанного отслеживаемого объекта ограждения. После завершения обновлений таблицы страницы контекст разбиения сигнализирует отслеживаемой объекту забора FenceValue+1, что позволяет контексту отрисовки выполнять жесткую блокировку с обновлениями таблицы страницы.
Диапазоны виртуальных адресов в операциях обновления могут пересекаться. Операции будут применены в том порядке, в который они отправляются.
В одном вызове UpdateVirtualAddress:
- Все диапазоны виртуальных адресов в операциях сопоставления и диапазон назначения в операциях копирования должны принадлежать одному зарезервированному (нулевому) диапазону.
- Исходный диапазон виртуальных адресов в операциях копирования может находиться в другом зарезервированном (нулевом) диапазоне.
- Исходный диапазон виртуальных адресов во всех операциях копирования должен принадлежать одному зарезервированному (нулевому) диапазону.
Драйверы могут отправлять множество вызовов UpdateGpuVirtualAddress, которые будут помещены в очередь за ограждением отрисовки. Если число операций обновления в очереди превышает 128, вызывающий поток будет заблокирован до тех пор, пока предыдущие операции не будут обработаны диспетчером памяти видео.
Требования
| Требование | Ценность |
|---|---|
| минимальные поддерживаемые клиентские | Windows 10 |
| минимальный поддерживаемый сервер | Windows Server 2016 |
| целевая платформа | Всеобщий |
| заголовка | d3dkmthk.h (include D3dkmthk.h) |
| библиотеки | Gdi32.lib |
| DLL | Gdi32.dll |