Metodo IDXGIDevice3::Trim (dxgi1_3.h)
Taglia la memoria grafica allocata dal dispositivo IDXGIDevice3 DXGI per conto dell'app.
Per le app di cui viene eseguito il rendering con DirectX, i driver grafici allocano periodicamente buffer di memoria interni per velocizzare le richieste di rendering successive. Queste allocazioni di memoria vengono conteggiati rispetto all'utilizzo della memoria dell'app per PLM e, in generale, portano a un aumento dell'utilizzo della memoria da parte del sistema complessivo.
A partire da Windows 8.1, le app di cui viene eseguito il rendering con Direct2D e/o Direct3D (incluso CoreWindow e l'interoperabilità XAML) devono chiamare Trim in risposta al callback di sospensione DEL PLM. Il runtime Direct3D e il driver di grafica elimineranno i buffer di memoria interni allocati per l'app, riducendone il footprint di memoria.
La chiamata a questo metodo non modifica lo stato di rendering del dispositivo grafico e non ha alcun effetto sulle operazioni di rendering. Si verifica un breve riscontro delle prestazioni quando i buffer interni vengono riallocati durante le prime operazioni di rendering dopo la chiamata Trim , pertanto le app devono chiamare Trim solo quando si passa inattivo per un periodo di tempo (in risposta alla sospensione del PLM, ad esempio).
Le app devono assicurarsi che chiami Trim come una delle ultime operazioni D3D eseguite prima di andare inattive. Direct3D in genere rinvierà la distruzione di oggetti D3D. La chiamata a Trim, tuttavia, forza Direct3D a distruggere immediatamente gli oggetti. Per questo motivo, non è garantito che il rilascio del riferimento finale sugli oggetti Direct3D dopo la chiamata a Trim provocherà l'eliminazione dell'oggetto e la deallocazione della memoria prima della sospensione dell'app.
Analogamente a ID3D11DeviceContext::Flush, le app devono chiamare ID3D11DeviceContext::ClearState prima di chiamare Trim. ClearState cancella le associazioni di pipeline Direct3D, assicurandosi che Direct3D non contenga riferimenti agli oggetti Direct3D che si sta tentando di rilasciare.
È anche consigliabile rilasciare riferimenti al middleware prima di chiamare Trim, perché potrebbe anche essere necessario rilasciare riferimenti a oggetti Direct3D.
Sintassi
void Trim();
Valore restituito
nessuno
Requisiti
Client minimo supportato | Windows 8.1 [app desktop | App UWP] |
Server minimo supportato | Windows Server 2012 R2 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | dxgi1_3.h |
Libreria | Dxgi.lib |