Pular para o conteúdo principal
Obtém informações detalhadas sobre o tamanho e o alinhamento da memória necessária para uma coleção de recursos neste adaptador. Consulte também ID3D12Device::GetResourceAllocationInfo. Além da D3D12_RESOURCE_ALLOCATION_INFO retornada pelo método, esta versão também retorna uma matriz de estruturas D3D12_RESOURCE_ALLOCATION_INFO1, que fornecem detalhes adicionais para cada descrição de recurso passada como entrada. Consulte o parâmetro pResourceAllocationInfo1.

Sintaxe

Parâmetros

visibleMask [in]
Tipo: UINT
Para operação com uma única GPU, defina como zero. Se houver vários nós de GPU, defina bits para identificar os nós (os adaptadores físicos do dispositivo). Cada bit na máscara corresponde a um único nó. Consulte também Sistemas com vários adaptadores. numResourceDescs [in]
Tipo: UINT
O número de descritores de recurso na matriz pResourceDescs. Esse também é o tamanho (o número de elementos) de pResourceAllocationInfo1. pResourceDescs [in]
Tipo: const D3D12_RESOURCE_DESC *
Uma matriz de estruturas D3D12_RESOURCE_DESC que descrevem os recursos sobre os quais obter informações. pResourceAllocationInfo1 [out]
Tipo: D3D12_RESOURCE_ALLOCATION_INFO1 *
Uma matriz de estruturas D3D12_RESOURCE_ALLOCATION_INFO1 que contém detalhes adicionais para cada descrição de recurso passada como entrada. Isso facilita para seu aplicativo alocar um heap para vários recursos, sem precisar calcular manualmente os deslocamentos de onde cada recurso deve ser posicionado.

Valor retornado

Tipo: D3D12_RESOURCE_ALLOCATION_INFO Uma estrutura D3D12_RESOURCE_ALLOCATION_INFO que fornece informações sobre a memória de vídeo alocada para a matriz de recursos especificada.

Comentários

Ao usar CreatePlacedResource, seu aplicativo deve usar GetResourceAllocationInfo para entender as características de tamanho e alinhamento dos recursos de textura. Os resultados deste método variam de acordo com o adaptador específico e devem ser tratados como exclusivos deste adaptador e desta versão do driver. Seu aplicativo não pode usar a saída de GetResourceAllocationInfo para entender as propriedades de mips empacotados das texturas. Para entender as propriedades de mips empacotados das texturas, seu aplicativo deve usar GetResourceTiling. Os tamanhos dos recursos de textura diferem significativamente das informações retornadas por GetResourceTiling, porque algumas arquiteturas de adaptador alocam memória extra para texturas a fim de reduzir a largura de banda efetiva em cenários de renderização comuns. Isso inclui até mesmo texturas que têm restrições em seus layouts de textura ou que têm layouts de textura padronizados. Essa memória extra não pode ser mapeada de forma esparsa nem remapeada por um aplicativo usando CreateReservedResource e UpdateTileMappings, portanto, ela não é informada por GetResourceTiling. Seu aplicativo pode deixar de usar GetResourceAllocationInfo para recursos de buffer (D3D12_RESOURCE_DIMENSION_BUFFER). Os buffers têm o mesmo tamanho em todos os adaptadores, que é simplesmente o menor múltiplo de 64 KB maior ou igual a D3D12_RESOURCE_DESC::Width. Quando várias descrições de recurso são passadas, é usado o algoritmo C++ para calcular o tamanho e o alinhamento de uma estrutura. Por exemplo, uma matriz de três elementos com dois recursos minúsculos alinhados a 64 KB e um recurso minúsculo alinhado a 4 MB informa tamanhos diferentes com base na ordem da matriz. Se o recurso alinhado a 4 MB estiver no meio, o Size resultante será de 12 MB. Caso contrário, o Size resultante será de 8 MB. O Alignment retornado sempre seria de 4 MB, porque é o superconjunto de todos os alinhamentos na matriz de recursos.

Requisitos

Cabeçalho: d3d12_xs.h
Biblioteca: d3d12_xs.lib
Plataformas com suporte: consoles XBOX Series

Consulte também

ID3D12Device4
Última modificação em 6 de outubro de 2026