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 D3DDDIARG_QUERYRESOURCERESIDENCY que descreve uma lista de recursos nos quais a residência é verificada.
Valor de retorno
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. |
Observações
O runtime do Microsoft Direct3D chama a função queryResourceResidency do driver de exibição do 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 é 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 do modo de usuário deve fazer chamadas para a função pfnQueryResidencyCb. A função pfnQueryResidencyCb retorna o status de residência de um recurso nos elementos da matriz especificada 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 deve retornar S_OK somente 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 no 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 que é 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 provavelmente um aplicativo não usará a segunda alocação para renderização.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows. |
da Plataforma de Destino | Área de trabalho |
cabeçalho | d3dumddi.h (inclua D3dumddi.h) |