Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В модели драйвера отображения Windows (WDDM) версии 2 процессам будут установлены лимиты на объем памяти, которая может оставаться в постоянном использовании. Этот бюджет может измениться с течением времени, но обычно будет применяться только в том случае, если система находится под давлением памяти. До Microsoft Direct3D 12 бюджет обрабатывается драйвером пользовательского режима в виде уведомлений Trim и сбоев MakeResident с STATUS_NO_MEMORY. Уведомление TrimToBudget, Evict и неудачные вызовы MakeResident все возвращают последний бюджет в виде целого числа NumBytesToTrim, указывающего, сколько необходимо сократить, чтобы соответствовать новому бюджету.
Для приложений Direct3D 12 бюджет полностью обрабатывается приложением. Размер бюджета используется как подсказка, чтобы сообщить приложению, до какого размера нужно себя настроить. Используя размер бюджета в качестве указания, приложение может решить, сколько ресурсов для поддержания резидентов, какие разрешения и качество ресурсов следует сохранить.
Чтобы правильно управлять этими бюджетами, ядро должно знать, какая память должна участвовать в бюджете. Существует новый бит ApplicationTarget в DXGK_SEGMENTFLAGS2 структуре, которая должна быть задана на сегментах, которые драйвер режима ядра хочет включить в логику бюджетирования. Например, на дискретном графическом процессоре (GPU) с одним сегментом VRAM, подходящим для использования приложениями, и одним сегментом VRAM, используемым для ресурсов специального назначения, драйвер, вероятно, пометит только основной сегмент VRAM как ApplicationTarget. Для интегрированных GPU основной сегмент диафрагмы обычно будет отмечен. Нет ограничения на количество сегментов, которые можно пометить как ApplicationTarget. Ядро объединяет их и предоставляет приложению унифицированный размер.