Método IDirect3DDevice9Ex::CheckResourceResidency (d3d9.h)
Comprueba una matriz de recursos para determinar si es probable que provoquen una gran detención en el tiempo de dibujo, ya que el sistema debe hacer que los recursos sean accesibles para GPU.
Sintaxis
HRESULT CheckResourceResidency(
[in] IDirect3DResource9 **pResourceArray,
[in] UINT32 NumResources
);
Parámetros
[in] pResourceArray
Tipo: IDirect3DResource9**
Matriz de punteros IDirect3DResource9 que indican los recursos que se van a comprobar.
[in] NumResources
Tipo: UINT32
Valor que indica el número de recursos pasados al parámetro pResourceArray hasta un máximo de 65535.
Valor devuelto
Tipo: HRESULT
Si todos los recursos están en memoria accesible para GPU, el método devolverá S_OK. Es posible que el sistema tenga que realizar una operación de reasignación para promover los recursos, pero no tendrá que copiar datos.
Si no hay ninguna asignación que incluya los recursos en el disco, pero al menos una asignación no está en memoria accesible para GPU, el método devolverá S_RESIDENT_IN_SHARED_MEMORY. Es posible que el sistema tenga que realizar una copia para promover el recurso.
Si al menos una asignación que comprende los recursos está en el disco, este método devolverá S_NOT_RESIDENT. Es posible que el sistema tenga que realizar una copia para promover el recurso.
Comentarios
Esta API no es más que una estimación razonable en la residencia, ya que los recursos pueden haberse degradado en el momento en que la aplicación los usa.
El patrón de uso esperado es el siguiente. Si la aplicación determina que un conjunto de recursos no son residentes, la aplicación reemplazará una versión de loD inferior del recurso y continuará con la representación. La API del administrador de memoria de vídeo, ofrece una característica para permitir que la aplicación exprese que desea que estos recursos de loD inferiores sean más probables para permanecer residentes en la memoria accesible para GPU. Es responsabilidad de la aplicación crear, rellenar y destruir estas versiones de LOD inferiores, si así lo elige.
La aplicación también debe comenzar la promoción de las versiones de LOD superiores cuando la comprobación de residencia indica que el recurso no reside en la memoria accesible para GPU. Dado que existe un bloqueo por proceso en modo kernel, una implementación eficaz generará un proceso independiente cuyo único trabajo es promover recursos. La aplicación comunica la identidad de recursos entre los dos procesos mediante la API de superficies compartidas de recursos compartidos y las promueve mediante SetPriority.
Requisitos
Plataforma de destino | Windows |
Encabezado | d3d9.h |
Library | D3D9.lib |