Поделиться через


Метод IDXGIDevice3::Trim (dxgi1_3.h)

Обрезает графическую память, выделенную устройством IDXGIDevice3 DXGI от имени приложения.

Для приложений, которые отрисовывается с помощью DirectX, графические драйверы периодически выделяют внутренние буферы памяти, чтобы ускорить последующие запросы на отрисовку. Эти выделения памяти учитываются в использовании памяти приложением для PLM и в целом приводят к увеличению использования памяти всей системой.

Начиная с Windows 8.1, приложения, которые отрисовываются с помощью Direct2D и (или) Direct3D (включая взаимодействие CoreWindow и XAML), должны вызывать Trim в ответ на обратный вызов приостановки PLM. Среда выполнения Direct3D и графический драйвер отменяют внутренние буферы памяти, выделенные для приложения, сокращая объем памяти.

Вызов этого метода не изменяет состояние отрисовки графического устройства и не влияет на операции отрисовки. При перераспределении внутренних буферов во время первых операций отрисовки после вызова Trim наблюдается кратковременное снижение производительности, поэтому приложения должны вызывать Trim только при бездействии в течение определенного периода времени (например, в ответ на приостановку PLM).

Приложения должны убедиться, что они вызывают Trim в качестве одной из последних операций D3D, выполненных, прежде чем переходить в режим простоя. Direct3D обычно откладывает уничтожение объектов D3D. Вызов Trim, однако, заставляет Direct3D немедленно уничтожить объекты. По этой причине не гарантируется, что освобождение окончательной ссылки на объекты Direct3D после вызова Trim приведет к уничтожению объекта и освобождению памяти до приостановки приложения.

Как и ID3D11DeviceContext::Flush, приложения должны вызывать ID3D11DeviceContext::ClearState перед вызовомTrim. ClearState очищает привязки конвейера Direct3D, гарантируя, что Direct3D не содержит ссылок на объекты Direct3D, которые вы пытаетесь освободить.

Также рекомендуется освободить ссылки на ПО промежуточного слоя перед вызовом Trim, так как это ПО промежуточного слоя также может потребовать освобождения ссылок на объекты Direct3D.

Синтаксис

void Trim();

Возвращаемое значение

None

Требования

   
Минимальная версия клиента Windows 8.1 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2012 R2 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header dxgi1_3.h
Библиотека Dxgi.lib

См. также раздел

IDXGIDevice3