Share via


Método IDirect3DDevice9Ex::CheckResourceResidency (d3d9.h)

Verifica uma matriz de recursos para determinar se é provável que eles causem uma grande paralisação no tempo de desenho porque o sistema deve tornar os recursos acessíveis à GPU.

Sintaxe

HRESULT CheckResourceResidency(
  [in] IDirect3DResource9 **pResourceArray,
  [in] UINT32             NumResources
);

Parâmetros

[in] pResourceArray

Tipo: IDirect3DResource9**

Uma matriz de ponteiros IDirect3DResource9 que indicam os recursos a serem marcar.

[in] NumResources

Tipo: UINT32

Um valor que indica o número de recursos passados para o parâmetro pResourceArray até um máximo de 65535.

Valor retornado

Tipo: HRESULT

Se todos os recursos estiverem na memória acessível por GPU, o método retornará S_OK. O sistema pode precisar executar uma operação de remapeamento para promover os recursos, mas não precisará copiar dados.

Se nenhuma alocação que inclua os recursos estiver no disco, mas pelo menos uma alocação não estiver na memória acessível por GPU, o método retornará S_RESIDENT_IN_SHARED_MEMORY. O sistema pode precisar executar uma cópia para promover o recurso.

Se pelo menos uma alocação que compreende os recursos estiver no disco, esse método retornará S_NOT_RESIDENT. O sistema pode precisar executar uma cópia para promover o recurso.

Comentários

Essa API não é mais do que uma estimativa razoável na residência, pois os recursos podem ter sido rebaixados no momento em que o aplicativo os usa.

O padrão de uso esperado é o seguinte. Se o aplicativo determinar que um conjunto de recursos não é residente, o aplicativo substituirá uma versão de LOD inferior do recurso e continuará com a renderização. A API do gerenciador de memória de vídeo oferece um recurso para permitir que o aplicativo expresse que gostaria que esses recursos de LOD inferior se tornassem mais propensos a permanecer residentes na memória acessível por GPU. É responsabilidade do aplicativo criar, preencher e destruir essas versões de LOD inferior, se assim desejar.

O aplicativo também precisa iniciar a promoção das versões de LOD superior quando a residência marcar indica que o recurso não está residente na memória acessível por GPU. Como existe um bloqueio por processo no modo kernel, uma implementação de desempenho gerará um processo separado cujo único trabalho é promover recursos. O aplicativo comunica a identidade do recurso entre os dois processos por meio da API de superfícies compartilhadas de Recursos de Compartilhamento e os promove por meio do SetPriority.

Requisitos

   
Plataforma de Destino Windows
Cabeçalho d3d9.h
Biblioteca D3D9.lib

Confira também

Idirect3ddevice9ex