IDXGIDevice3::Trim 方法 (dxgi1_3.h)
代表應用程式修剪 IDXGIDevice3 DXGI 裝置所配置的圖形記憶體。
對於使用 DirectX 轉譯的應用程式,圖形驅動程式會定期配置內部記憶體緩衝區,以加速後續的轉譯要求。 這些記憶體配置會針對應用程式的 PLM 記憶體使用量進行計數,一般會導致整體系統的記憶體使用量增加。
從 Windows 8.1 開始,使用 Direct2D 和/或 Direct3D 轉譯的應用程式 (包括CoreWindow和 XAML Interop) 必須呼叫Trim以回應 PLM 暫停回呼。 Direct3D 執行時間和圖形驅動程式會捨棄為應用程式佈建的內部記憶體緩衝區,以減少其記憶體使用量。
呼叫這個方法並不會變更圖形裝置的轉譯狀態,而且不會影響轉譯作業。 在 Trim呼叫之後的第一個轉譯作業期間重新配置內部緩衝區時,會有短暫的效能點擊,因此應用程式應該只在閒置一段時間後呼叫Trim, (回應 PLM 暫停,例如) 。
應用程式應該確保他們呼叫 Trim 作為最後一個 D3D 作業的其中一個完成,然後再閒置。 Direct3D 通常會延遲 D3D 物件的解構。 不過,呼叫 Trim會強制 Direct3D 立即終結物件。 基於這個理由,不保證在呼叫 Trim 之後釋放 Direct3D 物件的最終參考會導致物件終結,並在應用程式暫停之前解除配置記憶體。
類似于ID3D11DeviceCoNtext::Flush,應用程式應該在呼叫Trim之前呼叫ID3D11DeviceCoNtext::ClearState。 ClearState 會清除 Direct3D 管線系結,確保 Direct3D 不會保存您嘗試釋放之 Direct3D 物件的任何參考。
在呼叫 Trim之前,也會謹慎地在中介軟體上釋放參考,因為該中介軟體可能也需要釋放 Direct3D 物件的參考。
Syntax
void Trim();
傳回值
無
需求
最低支援的用戶端 | Windows 8.1 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2012 R2 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | dxgi1_3.h |
程式庫 | Dxgi.lib |