IDXGIDevice3::Trim-Methode (dxgi1_3.h)
Schneidet den Grafikspeicher ab, der vom IDXGIDevice3 DXGI-Gerät im Auftrag der App zugewiesen wird.
Für Apps, die mit DirectX gerendert werden, weisen Grafiktreiber in regelmäßigen Abständen interne Speicherpuffer zu, um nachfolgende Renderinganforderungen zu beschleunigen. Diese Speicherbelegungen werden auf die Speicherauslastung der App für PLM angerechnet und führen im Allgemeinen zu einer erhöhten Speicherauslastung durch das Gesamtsystem.
Ab Windows 8.1 müssen Apps, die mit Direct2D und/oder Direct3D gerendert werden (einschließlich CoreWindow und XAML-Interop), Trim als Reaktion auf den PLM-Rückruf zum Anhalten aufrufen. Die Direct3D-Runtime und der Grafiktreiber verwerfen interne Speicherpuffer, die der App zugeordnet sind, und verringern so den Speicherbedarf.
Der Aufruf dieser Methode ändert den Renderingzustand des Grafikgeräts nicht und hat keine Auswirkungen auf Renderingvorgänge. Es gibt einen kurzen Leistungseinschlag, wenn interne Puffer während der ersten Renderingvorgänge nach dem Trim-Aufruf neu zugeordnet werden. Daher sollten Apps Trim nur aufrufen, wenn sie für einen bestimmten Zeitraum in den Leerlauf gehen (z. B. als Reaktion auf die PLM-Aussetzung).
Apps sollten sicherstellen, dass sie Trim als einen der letzten D3D-Vorgänge aufrufen, die ausgeführt wurden, bevor sie in den Leerlauf wechseln. Direct3D verschiebt normalerweise die Zerstörung von D3D-Objekten. Der Aufruf von Trim erzwingt jedoch, dass Direct3D Objekte sofort zerstört. Aus diesem Grund ist nicht garantiert, dass die Freigabe des endgültigen Verweises auf Direct3D-Objekte nach dem Aufruf von Trim dazu führt, dass das Objekt zerstört und der Speicher aufgehoben wird, bevor die App angehalten wird.
Ähnlich wie ID3D11DeviceContext::Flush sollten Apps ID3D11DeviceContext::ClearState aufrufen, bevor Trim aufgerufen wird. ClearState löscht die Direct3D-Pipelinebindungen und stellt sicher, dass Direct3D keine Verweise auf die Direct3D-Objekte enthält, die Sie freigeben möchten.
Es ist auch ratsam, Verweise auf Middleware vor dem Aufruf von Trim freizugeben, da diese Middleware möglicherweise auch Verweise auf Direct3D-Objekte freigeben muss.
Syntax
void Trim();
Rückgabewert
Keine
Anforderungen
Unterstützte Mindestversion (Client) | Windows 8.1 [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2012 R2 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | dxgi1_3.h |
Bibliothek | Dxgi.lib |