ID3D11DeviceContext2 ::ResizeTilePool, méthode (d3d11_2.h)
Redimensionne un pool de vignettes.
Syntaxe
HRESULT ResizeTilePool(
[in] ID3D11Buffer *pTilePool,
[in] UINT64 NewSizeInBytes
);
Paramètres
[in] pTilePool
Type : ID3D11Buffer*
Pointeur vers un ID3D11Buffer pour le pool de vignettes à redimensionner.
[in] NewSizeInBytes
Type : UINT64
Nouvelle taille en octets du pool de vignettes. La taille doit être un multiple de 64 Ko ou 0.
Valeur retournée
Type : HRESULT
Retourne S_OK en cas de réussite ; dans le cas contraire, retourne l’un des éléments suivants :
- Retourne E_INVALIDARG si la nouvelle taille du pool de vignettes n’est pas un multiple de 64 Ko ou 0.
- Retourne E_OUTOFMEMORY si l’appel entraîne le fait que le pilote doit allouer de l’espace pour les nouveaux mappages de tables de pages, mais manque de mémoire.
- Retourne DXGI_ERROR_DEVICE_REMOVED si le carte vidéo a été physiquement supprimé du système ou si une mise à niveau du pilote pour la carte vidéo s’est produite.
Remarques
ResizeTilePool augmente ou diminue la taille du pool de vignettes selon que l’application a besoin de plus ou moins d’un ensemble de travail pour les ressources en mosaïques qui y sont mappées. Une application peut allouer des pools de vignettes supplémentaires pour les nouvelles ressources en mosaïques, mais si une seule ressource en mosaïque a besoin de plus d’espace qu’initialement disponible dans son pool de vignettes, l’application peut augmenter la taille du pool de vignettes de la ressource. Une ressource en mosaïque ne peut pas avoir de mappages dans plusieurs pools de vignettes simultanément.
Lorsque vous augmentez la taille d’un pool de vignettes, des vignettes supplémentaires sont ajoutées à la fin du pool de vignettes via une ou plusieurs nouvelles allocations par le pilote ; votre application ne peut pas détecter la répartition dans les nouvelles allocations. La mémoire existante dans le pool de vignettes n’est pas affectée, et les mappages de ressources en mosaïques existants dans cette mémoire restent intacts.
Lorsque vous réduisez la taille d’un pool de vignettes, les vignettes sont supprimées de la fin (cela est autorisé même en dessous de la taille d’allocation initiale, jusqu’à 0). Cela signifie que les nouveaux mappages ne peuvent pas être effectués au-delà de la nouvelle taille. Toutefois, les mappages existants au-delà de la fin de la nouvelle taille restent intacts et utilisables. La mémoire reste active tant que les mappages à n’importe quelle partie des allocations utilisées pour la mémoire du pool de mosaïques restent. Si, après avoir diminué, une partie de la mémoire a été maintenue active parce que les mappages de vignettes pointent vers elle et que le pool de vignettes est à nouveau augmenté (de n’importe quelle quantité), la mémoire existante est réutilisée d’abord avant que des allocations supplémentaires ne se produisent pour traiter la taille de l’augmentation.
Pour pouvoir économiser de la mémoire, une application doit non seulement diminuer un pool de vignettes, mais également supprimer et remapper les mappages existants au-delà de la fin du nouveau pool de vignettes plus petit.
Le fait de diminuer (et de supprimer les mappages) ne produit pas nécessairement des économies de mémoire immédiates. La libération de la mémoire dépend de la précision des allocations sous-jacentes du pilote pour le pool de vignettes. Lorsqu’une diminution de la taille d’un pool de vignettes est suffisante pour rendre une allocation de pilotes inutilisée, le pilote peut libérer l’allocation. Si un pool de vignettes a été augmenté et que vous réduisez ensuite les tailles précédentes (et supprimez et remappagez les mappages de vignettes en conséquence), vous obtiendrez probablement des économies de mémoire. Toutefois, ce scénario n’est pas garanti dans le cas où les tailles ne s’alignent pas exactement sur les tailles d’allocation sous-jacentes choisies par le pilote.
Pour plus d’informations sur les ressources en mosaïque, consultez Ressources en mosaïque.
Configuration requise
Condition requise | Valeur |
---|---|
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 | d3d11_2.h |
Bibliothèque | D3D11.lib |