Método ID3D12Device4::GetResourceAllocationInfo1(UINT,UINT,constD3D12_RESOURCE_DESC*,D3D12_RESOURCE_ALLOCATION_INFO1*) (d3d12.h)
Obtém informações avançadas sobre o tamanho e o alinhamento da memória necessários para uma coleção de recursos neste adaptador. Consulte também ID3D12Device::GetResourceAllocationInfo.
Além do D3D12_RESOURCE_ALLOCATION_INFO retornado do método, essa versão também retorna uma matriz de estruturas de D3D12_RESOURCE_ALLOCATION_INFO1, que fornecem detalhes adicionais para cada descrição de recurso passada como entrada. Consulte o parâmetro pResourceAllocationInfo1
Sintaxe
D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo1(
[in] UINT visibleMask,
[in] UINT numResourceDescs,
[in] const D3D12_RESOURCE_DESC *pResourceDescs,
[out] D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1
);
Parâmetros
[in] visibleMask
Para a operação de GPU única, defina isso como zero. Se houver vários nós de GPU, defina bits para identificar os nós (adaptadores físicos do dispositivo). Cada bit na máscara corresponde a um único nó. Consulte também sistemas multisse adaptáveis.
[in] numResourceDescs
O número de descritores de recursos na matriz de pResourceDescs
[in] pResourceDescs
Tipo: const D3D12_RESOURCE_DESC*
Uma matriz de estruturas de D3D12_RESOURCE_DESC que descreveu os recursos sobre os quais obter informações.
[out] pResourceAllocationInfo1
Tipo: D3D12_RESOURCE_ALLOCATION_INFO1*
Uma matriz de estruturas de D3D12_RESOURCE_ALLOCATION_INFO1, contendo detalhes adicionais para cada descrição de recurso passada como entrada. Isso torna mais simples para seu aplicativo alocar um heap para vários recursos e sem computar manualmente deslocamentos para onde cada recurso deve ser colocado.
Valor de retorno
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.
Observações
Quando você estiver usando CreatePlacedResource, seu aplicativo deverá usar GetResourceAllocationInfo para entender as características de tamanho e alinhamento dos recursos de textura. Os resultados desse método variam dependendo do adaptador específico e devem ser tratados como exclusivos para essa versão do adaptador e do driver.
Seu aplicativo não pode usar a saída de GetResourceAllocationInfo para entender as propriedades de mip empacotadas de texturas. Para entender as propriedades de mip empacotadas de texturas, seu aplicativo deve usar GetResourceTiling.
Os tamanhos dos recursos de textura diferem significativamente das informações retornadas por GetResourceTiling, pois algumas arquiteturas de adaptador alocam memória extra para texturas para reduzir a largura de banda efetiva durante cenários comuns de renderização. Isso inclui até texturas que têm restrições em seus layouts de textura ou têm layouts de textura padronizados. Essa memória extra não pode ser mapeada esparsamente nem remapeada por um aplicativo usando CreateReservedResource e UpdateTileMappings, portanto, não é relatada pelo GetResourceTiling.
Seu aplicativo pode renunciar ao uso GetResourceAllocationInfo para recursos de buffer (D3D12_RESOURCE_DIMENSION_BUFFER). Os buffers têm o mesmo tamanho em todos os adaptadores, que é apenas o menor múltiplo de 64 KB maior ou igual a D3D12_RESOURCE_DESC::Width.
Quando várias descrições de recursos são passadas, o algoritmo C++ para calcular o tamanho e o alinhamento de uma estrutura são usados. Por exemplo, uma matriz de três elementos com dois pequenos recursos alinhados a 64KB e um pequeno recurso alinhado a 4 MB, relata tamanhos diferentes com base na ordem da matriz. Se o recurso alinhado de 4 MB estiver no meio, o de Tamanho
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 10 Build 20348 |
servidor com suporte mínimo | Windows 10 Build 20348 |
da Plataforma de Destino |
Windows |
cabeçalho | d3d12.h |
biblioteca | d3d12.lib |
de DLL |
d3d12.dll |
Consulte também
ID3D12Device4