PFND3DDDI_QUERYRESOURCERESIDENCY fonction de rappel (d3dumddi.h)
La fonction QueryResourceResidency détermine la résidence de la liste de ressources donnée.
Syntaxe
PFND3DDDI_QUERYRESOURCERESIDENCY Pfnd3dddiQueryresourceresidency;
HRESULT Pfnd3dddiQueryresourceresidency(
HANDLE hDevice,
const D3DDDIARG_QUERYRESOURCERESIDENCY *unnamedParam2
)
{...}
Paramètres
hDevice
Handle de l’appareil d’affichage (contexte graphique).
unnamedParam2
pData [in]
Pointeur vers une structure de D3DDDIARG_QUERYRESOURCERESIDENCY qui décrit une liste de ressources sur lesquelles la résidence est vérifiée.
Valeur retournée
QueryResourceResidency retourne l’une des valeurs suivantes :
Code de retour | Description |
---|---|
S_OK | Toutes les ressources sont en mémoire accessible par GPU. |
S_RESIDENT_IN_SHARED_MEMORY | Aucune allocation qui comprend les ressources ne se trouve sur le disque. Toutefois, au moins une allocation ne se trouve pas dans la mémoire accessible par GPU. |
S_NOT_RESIDENT | Au moins une allocation qui comprend les ressources se trouve sur le disque. |
E_INVALIDARG | Les paramètres ont été validés et déterminés comme incorrects. |
E_OUTOFMEMORY | QueryResourceResidency n’a pas pu allouer la mémoire nécessaire à son exécution. |
Remarques
Le runtime Microsoft Direct3D appelle la fonction QueryResourceResidency du pilote d’affichage en mode utilisateur pour les applications afin de déterminer si le système d’exploitation entraîne un blocage important au moment du tirage si le système doit rendre les ressources accessibles par GPU. Les informations retournées par QueryResourceResidency sont une approximation de la résidence des ressources, car les ressources peuvent être rétrogradées avant que les applications n’utilisent les ressources.
La fonction QueryResourceResidency du pilote d’affichage en mode utilisateur doit effectuer des appels à la fonction pfnQueryResidencyCb . La fonction pfnQueryResidencyCb retourne la status de résidence d’une ressource dans les éléments du tableau spécifiés par le membre pResidencyStatus de la structure D3DDDICB_QUERYRESIDENCY. Si pfnQueryResidencyCb retourne D3DDDI_RESIDENCYSTATUS_NOTRESIDENT pour une requête, QueryResourceResidency doit retourner S_NOT_RESIDENT. Si pfnQueryResidencyCb retourne D3DDDI_RESIDENCYSTATUS_RESIDENTINSHAREDMEMORY pour une requête et ne retourne pas de D3DDDI_RESIDENCYSTATUS_NOTRESIDENT pour une requête, QueryResourceResidency doit retourner S_RESIDENT_IN_SHARED_MEMORY. QueryResourceResidency doit retourner S_OK uniquement si tous les appels à pfnQueryResidencyCb pour toutes les requêtes retournent D3DDDI_RESIDENCYSTATUS_RESIDENTINGPUMEMORY.
Pour chaque ressource que le runtime interroge via un appel à QueryResourceResidency, le pilote d’affichage en mode utilisateur doit déterminer les allocations qui appartiennent à la ressource à interroger via un appel à pfnQueryResidencyCb. Pour une ressource qui possède une allocation unique, la détermination est simple : le pilote interroge cette allocation. Toutefois, si une ressource possède plusieurs allocations, la détermination est plus difficile. Le pilote doit déterminer les allocations qu’une application utilisera probablement pour le rendu, et le pilote doit interroger uniquement ces allocations. Par exemple, si une ressource possède une allocation utilisée pour le rendu et une allocation de scratch qui gère une opération de verrouillage, le pilote doit interroger uniquement la résidence de la première allocation, car une application n’utilisera probablement pas la deuxième allocation pour le rendu.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible dans Windows Vista et les versions ultérieures des systèmes d’exploitation Windows. |
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | d3dumddi.h (inclure D3dumddi.h) |