Méthode IDirect3DDevice9Ex::CheckResourceResidency (d3d9.h)
Vérifie un tableau de ressources pour déterminer s’il est probable qu’elles provoquent un blocage important au moment du dessin, car le système doit rendre les ressources accessibles par GPU.
Syntaxe
HRESULT CheckResourceResidency(
[in] IDirect3DResource9 **pResourceArray,
[in] UINT32 NumResources
);
Paramètres
[in] pResourceArray
Type : IDirect3DResource9**
Tableau de pointeurs IDirect3DResource9 qui indiquent les ressources à case activée.
[in] NumResources
Type : UINT32
Valeur indiquant le nombre de ressources passées dans le paramètre pResourceArray jusqu’à un maximum de 65535.
Valeur retournée
Type : HRESULT
Si toutes les ressources se trouvent dans la mémoire accessible par GPU, la méthode retourne S_OK. Le système peut avoir besoin d’effectuer une opération de remappage pour promouvoir les ressources, mais il n’aura pas besoin de copier des données.
Si aucune allocation qui comprend les ressources ne se trouve sur le disque, mais qu’au moins une allocation ne se trouve pas dans la mémoire accessible par GPU, la méthode retourne S_RESIDENT_IN_SHARED_MEMORY. Le système peut avoir besoin d’effectuer une copie pour promouvoir la ressource.
Si au moins une allocation comprenant les ressources se trouve sur le disque, cette méthode retourne S_NOT_RESIDENT. Le système peut avoir besoin d’effectuer une copie pour promouvoir la ressource.
Notes
Cette API n’est qu’une estimation raisonnable de la résidence, car les ressources peuvent avoir été rétrogradées au moment où l’application les utilise.
Le modèle d’utilisation attendu est le suivant. Si l’application détermine qu’un ensemble de ressources n’est pas résident, l’application remplace une version LOD inférieure de la ressource et poursuit le rendu. L’API gestionnaire de mémoire vidéo offre une fonctionnalité permettant à l’application d’exprimer qu’elle souhaite que ces ressources LOD inférieures soient rendues plus susceptibles de rester résidentes dans la mémoire accessible par GPU. Il incombe à l’application de créer, de remplir et de détruire ces versions LOD inférieures, si elle le souhaite.
L’application doit également commencer la promotion des versions LOD supérieures lorsque le case activée de résidence indique que la ressource n’est pas résidente dans la mémoire accessible par GPU. Étant donné qu’un verrou par processus existe en mode noyau, une implémentation performante génère un processus distinct dont le seul travail consiste à promouvoir les ressources. L’application communique l’identité des ressources entre les deux processus au moyen de l’API Sharing Resources shared surfaces et les promeut à l’aide de SetPriority.
Spécifications
Plateforme cible | Windows |
En-tête | d3d9.h |
Bibliothèque | D3D9.lib |