Sintaxe
Parâmetros
NumObjectsTipo: UINT O número de objetos na matriz ppObjects a serem tornados residentes para o dispositivo. ppObjects [in]
Tipo: ID3D12Pageable *const * Um ponteiro para um bloco de memória que contém uma matriz de ponteiros de interface ID3D12Pageable para os objetos. Embora a maioria dos objetos D3D12 herde de ID3D12Pageable, as alterações de residência só têm suporte nos seguintes objetos: heaps de descritores, heaps, recursos confirmados e heaps de consulta
Valor retornado
Tipo: HRESULT Este método retorna um dos Códigos de retorno do Direct3D 12.Comentários
MakeResident carrega do disco os dados associados a um recurso e realoca a memória do pool de memória apropriado do recurso. Este método deve ser chamado no objeto que possui a memória física. Use este método e Evict para gerenciar a memória de vídeo da GPU, observando que isso era feito automaticamente no D3D11, mas agora precisa ser feito pelo aplicativo no D3D12. MakeResident e Evict podem ajudar os aplicativos a gerenciar o orçamento de residência em muitos adaptadores. MakeResident pagina explicitamente os dados para a memória e, em seguida, impede a remoção da página para que a GPU possa acessar os dados. Evict permite a remoção da página. Algumas arquiteturas de GPU não se beneficiam da manipulação de residência devido à falta de espaço de endereço virtual de GPU suficiente. Use D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT e IDXGIAdapter3::QueryVideoMemoryInfo para reconhecer quando o espaço máximo de VA da GPU por processo é pequeno demais ou aproximadamente do mesmo tamanho do orçamento de residência. Para essas arquiteturas, o orçamento de residência será sempre limitado pela quantidade de espaço de endereço virtual da GPU. Evict não liberará nenhum orçamento de residência nesses sistemas. Os aplicativos devem lidar com falhas de MakeResident, mesmo que pareça haver orçamento de residência suficiente disponível. A fragmentação da memória física e as peculiaridades da arquitetura do adaptador podem impedir a utilização de grandes intervalos contíguos. Os aplicativos devem liberar mais orçamento de residência antes de tentar novamente. MakeResident tem contagem de referências, de modo que Evict deve ser chamado a mesma quantidade de vezes que MakeResident antes que Evict entre em vigor. Objetos que dão suporte à residência são tornados residentes durante a criação, portanto, uma única chamada de Evict removerá de fato o objeto. Os aplicativos devem usar fences para garantir que a GPU não use objetos não residentes. MakeResident deve retornar antes que a GPU execute uma lista de comandos que faça referência ao objeto. Evict deve ser chamado depois que a GPU terminar de executar uma lista de comandos que faça referência ao objeto. Objetos removidos ainda consomem o mesmo endereço virtual de GPU e a mesma quantidade de espaço de endereço virtual de GPU. Portanto, os descritores de recursos e outras referências de endereço virtual de GPU não são invalidados após Evict.Requisitos
Cabeçalho: d3d12_xs.h ou d3d12_x.hBiblioteca: d3d12_xs.lib ou d3d12_x.lib
Plataformas com suporte: consoles XBOX Series e família XBOX One
