Metodo IDirect3DDevice9Ex::CheckResourceResidency (d3d9.h)
Controlla una matrice di risorse per determinare se è probabile che causeranno un blocco di grandi dimensioni in fase di disegno perché il sistema deve rendere le risorse accessibili dalla GPU.
Sintassi
HRESULT CheckResourceResidency(
[in] IDirect3DResource9 **pResourceArray,
[in] UINT32 NumResources
);
Parametri
[in] pResourceArray
Tipo: IDirect3DResource9**
Matrice di puntatori IDirect3DResource9 che indicano le risorse da controllare.
[in] NumResources
Tipo: UINT32
Valore che indica il numero di risorse passate nel parametro pResourceArray fino a un massimo di 65535.
Valore restituito
Tipo: HRESULT
Se tutte le risorse sono in memoria accessibile dalla GPU, il metodo restituirà S_OK. Il sistema potrebbe dover eseguire un'operazione di ripetizione del mapping per promuovere le risorse, ma non dovrà copiare i dati.
Se non è presente alcuna allocazione che comprende le risorse nel disco, ma almeno un'allocazione non è disponibile nella memoria accessibile dalla GPU, il metodo restituirà S_RESIDENT_IN_SHARED_MEMORY. Il sistema potrebbe dover eseguire una copia per promuovere la risorsa.
Se almeno un'allocazione che comprende le risorse è su disco, questo metodo restituirà S_NOT_RESIDENT. Il sistema potrebbe dover eseguire una copia per promuovere la risorsa.
Commenti
Questa API non è più di un'ipotesi ragionevole nella residenza, poiché le risorse potrebbero essere state demolite al momento in cui l'applicazione li usa.
Il modello di utilizzo previsto è il seguente. Se l'applicazione determina che un set di risorse non è residente, l'applicazione sostituirà una versione loD inferiore della risorsa e continuerà a eseguire il rendering. L'API gestione memoria video offre una funzionalità per consentire all'applicazione di esprimere che queste risorse loD inferiori devono essere rese più probabile che rimangano in memoria accessibile dalla GPU. È responsabilità dell'app creare, riempire e distruggere queste versioni con loD inferiore, se sceglie.
L'applicazione deve anche iniziare a promuovere le versioni con loD superiore quando il controllo di residenza indica che la risorsa non risiede nella memoria accessibile dalla GPU. Poiché esiste un blocco per processo in modalità kernel, un'implementazione efficiente genererà un processo separato il cui unico processo consiste nel promuovere le risorse. L'applicazione comunica l'identità delle risorse tra i due processi tramite l'API Condivisi risorse condivise e li promuove tramite SetPriority.
Requisiti
Piattaforma di destinazione | Windows |
Intestazione | d3d9.h |
Libreria | D3D9.lib |