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 |