Condividi tramite


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

Vedi anche

IDirect3DDevice9Ex