PFND3DDDI_QUERYRESOURCERESIDENCY função de retorno de chamada (d3dumddi.h)
A função QueryResourceResidency determina a residência da lista de recursos fornecida.
Sintaxe
PFND3DDDI_QUERYRESOURCERESIDENCY Pfnd3dddiQueryresourceresidency;
HRESULT Pfnd3dddiQueryresourceresidency(
HANDLE hDevice,
const D3DDDIARG_QUERYRESOURCERESIDENCY *unnamedParam2
)
{...}
Parâmetros
hDevice
Um identificador para o dispositivo de exibição (contexto gráfico).
unnamedParam2
pData [in]
Um ponteiro para uma estrutura de D3DDDIARG_QUERYRESOURCERESIDENCY que descreve uma lista de recursos em que a residência é verificada.
Retornar valor
QueryResourceResidency retorna um dos seguintes valores:
Código de retorno | Descrição |
---|---|
S_OK | Todos os recursos estão na memória acessível por GPU. |
S_RESIDENT_IN_SHARED_MEMORY | Nenhuma alocação que inclua os recursos está no disco. No entanto, pelo menos uma alocação não está na memória acessível por GPU. |
S_NOT_RESIDENT | Pelo menos uma alocação que compreende os recursos está no disco. |
E_INVALIDARG | Os parâmetros foram validados e determinados como incorretos. |
E_OUTOFMEMORY | QueryResourceResidency não pôde alocar memória necessária para que ela seja concluída. |
Comentários
O runtime do Microsoft Direct3D chama a função QueryResourceResidency do driver de exibição no modo de usuário para que os aplicativos determinem se o sistema operacional incorrerá em uma parada significativa no momento do desenho se o sistema precisar tornar os recursos acessíveis à GPU. As informações retornadas de QueryResourceResidency são uma aproximação da residência de recursos porque os recursos podem ser rebaixados antes que os aplicativos usem os recursos.
A função QueryResourceResidency do driver de exibição no modo de usuário deve fazer chamadas para a função pfnQueryResidencyCb . A função pfnQueryResidencyCb retorna a status de residência de um recurso nos elementos da matriz especificados pelo membro pResidencyStatus da estrutura D3DDDICB_QUERYRESIDENCY. Se pfnQueryResidencyCb retornar D3DDDI_RESIDENCYSTATUS_NOTRESIDENT para qualquer consulta, QueryResourceResidency deverá retornar S_NOT_RESIDENT. Se pfnQueryResidencyCb retornar D3DDDI_RESIDENCYSTATUS_RESIDENTINSHAREDMEMORY para qualquer consulta e não retornar D3DDDI_RESIDENCYSTATUS_NOTRESIDENT para qualquer consulta, QueryResourceResidency deverá retornar S_RESIDENT_IN_SHARED_MEMORY. QueryResourceResidency só deverá retornar S_OK se todas as chamadas para pfnQueryResidencyCb para todas as consultas retornarem D3DDDI_RESIDENCYSTATUS_RESIDENTINGPUMEMORY.
Para cada recurso que o runtime consulta por meio de uma chamada para QueryResourceResidency, o driver de exibição do modo de usuário deve determinar quais alocações pertencem ao recurso a serem consultadas por meio de uma chamada para pfnQueryResidencyCb. Para um recurso que possui uma única alocação, a determinação é simples– o driver consultará essa alocação. No entanto, se um recurso possui várias alocações, a determinação é mais difícil. O driver deve determinar quais alocações um aplicativo provavelmente usará para renderização e o driver deve consultar apenas essas alocações. Por exemplo, se um recurso possui uma alocação usada para renderização e uma alocação de zero que manipula uma operação de bloqueio, o driver deve consultar apenas a residência da primeira alocação, pois um aplicativo provavelmente não usará a segunda alocação para renderização.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows. |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | d3dumddi.h (inclua D3dumddi.h) |