Partager via


IDXGIDevice3::Trim, méthode (dxgi1_3.h)

Réduit la mémoire graphique allouée par l’appareil IDXGIDevice3 DXGI pour le compte de l’application.

Pour les applications qui effectuent un rendu avec DirectX, les pilotes graphiques allouent régulièrement des mémoires tampons internes afin d’accélérer les demandes de rendu suivantes. Ces allocations de mémoire sont comptabilisées par rapport à l’utilisation de la mémoire de l’application pour plm et, en général, entraînent une augmentation de l’utilisation de la mémoire par l’ensemble du système.

À compter de Windows 8.1, les applications qui s’affichent avec Direct2D et/ou Direct3D (y compris CoreWindow et l’interopérabilité XAML) doivent appeler Trim en réponse au rappel de suspension PLM. Le runtime Direct3D et le pilote graphique ignorent les mémoires tampons internes allouées à l’application, ce qui réduit son empreinte mémoire.

L’appel de cette méthode ne modifie pas l’état de rendu du périphérique graphique et n’a aucun effet sur les opérations de rendu. Il y a un bref problème de performances lorsque les mémoires tampons internes sont réaffectées lors des premières opérations de rendu après l’appel de trim . Par conséquent, les applications ne doivent appeler Trim qu’en cas d’inactivité pendant une période de temps (en réponse à la suspension PLM, par exemple).

Les applications doivent s’assurer qu’elles appellent Trim comme l’une des dernières opérations D3D effectuées avant d’être inactives. Direct3D reporte normalement la destruction des objets D3D. Toutefois, l’appel de Trim force Direct3D à détruire les objets immédiatement. Pour cette raison, il n’est pas garanti que la publication de la référence finale sur les objets Direct3D après l’appel de Trim entraîne la destruction de l’objet et la libération de la mémoire avant la suspension de l’application.

Comme pour ID3D11DeviceContext::Flush, les applications doivent appeler ID3D11DeviceContext::ClearState avant d’appeler Trim. ClearState efface les liaisons de pipeline Direct3D, garantissant que Direct3D ne contient aucune référence aux objets Direct3D que vous essayez de libérer.

Il est également prudent de publier des références sur les intergiciels avant d’appeler Trim, car ce middleware peut également avoir besoin de publier des références à des objets Direct3D.

Syntaxe

void Trim();

Valeur de retour

None

Spécifications

   
Client minimal pris en charge Windows 8.1 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2012 R2 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête dxgi1_3.h
Bibliothèque Dxgi.lib

Voir aussi

IDXGIDevice3