Compartilhar via


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

Tipo: UINT

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

Tipo: UINT

O número de descritores de recursos na matriz de pResourceDescs . Esse também é o tamanho (o número de elementos em) pResourceAllocationInfo1.

[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 resultante será de 12 MB. Caso contrário, o de tamanho de resultante é de 8 MB. O Alinhamento retornado sempre seria de 4 MB, pois é o superconjunto de todos os alinhamentos na matriz de recursos.

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