Место жительства водителя в WDDM 2.0
В этом разделе содержатся сведения об изменениях места расположения драйверов для модели драйвера windows (WDDM) 2.0. Описанные функции доступны начиная с Windows 10.
В этом разделе
Раздел | Описание |
---|---|
С появлением новой модели расположения место расположения перемещается в явный список на устройстве, а не в список буфера для каждой команды. Диспетчер видеопамяти гарантирует, что все выделения в определенном списке требований к месту расположения устройств будут находиться в постоянном режиме, прежде чем будут запланированы какие-либо контексты, принадлежащие этому устройству. |
|
После того как список выделения удаляется, диспетчер видеопамяти больше не будет видеть выделения, на которые ссылается определенный буфер команд. В результате диспетчер видеопамяти больше не может отслеживать использование выделения и обрабатывать связанную синхронизацию. Теперь эта ответственность будет нести драйвер пользовательского режима. В частности, драйвер пользовательского режима должен будет обрабатывать синхронизацию в отношении прямого доступа ЦП к выделению ресурсов, а также переименования. |
|
Для WDDM версии 2 требования, предъявляемые к предложению и освобождению , смягчаются. Драйверы пользовательского режима больше не требуются для использования предложения и освобождения от внутренних выделений. Неактивные или приостановленные приложения избавятся от внутренних ресурсов драйвера с помощью API trim, который был представлен в Microsoft DirectX 11.1. |
|
Доступ графического процессора (GPU) к выделениям, которые не являются резидентными, является незаконным и приведет к удалению устройства для приложения, которое вызвало ошибку. Существует две модели обработки такого недопустимого доступа в зависимости от того, поддерживает ли подсистема сбоя виртуальную адресацию GPU:
|
|
В WDDM версии 2 процессам будут назначаться бюджеты на объем памяти, который они могут хранить. Этот бюджет может меняться со временем, но обычно применяется только при нехватке памяти в системе. До Microsoft Direct3D 12 бюджет обрабатывается драйвером пользовательского режима в виде уведомлений об обрезке и ошибок MakeResident с STATUS_NO_MEMORY. Уведомление TrimToBudget , вытеснение и неудачные вызовы MakeResident возвращают последний бюджет в виде целочисленного значения NumBytesToTrim , указывающего, сколько необходимо обрезать, чтобы вписаться в новый бюджет. |